Re: [kicad-users] Re: Solder paste
If it's any help, I just shrink all the pads by 0.04mm (because that's what I was once asked to do in order to prevent the problem you are having). I think the idea is that the shrinkage only becomes significant where it is needed, so there's no need to selectively apply it. I run the Perl script from Cygwin, so it's minimal hassle. It's even less hassle if you're running kicad on Linux :). Regards, Robert. weilu0 wrote: > Thanks for the advice, > > I know that I can always edit the Gerber file or write a program for > it. I was just wandering if I don't have to go with all the hassles > in the design iteration. > > Regards, > > Wei > > > --- In kicad-users@yahoogroups.com, Robert > wrote: >> There is a Perl script available that will shrink the paste on all >> pads (google "shrink_paste.pl" kicad). I guess you could edit it >> if you don't want to shrink all components. >> >> Regards, >> >> Robert. >> >> weilu0 wrote: >>> >>> >>> I have the problem of too wide opening for the stensil made from >>> solder paste layer. Which results in too much solder paste >>> applied for QFN and lots of solder bridges in manufacturing. >>> However reducing the solder paste of specific modules seems to be >>> a challenge in current released version: 20090216. >>> >>> Just wandering when will anything enabling the editing of solder >>> paste opening be available... Or what is the result of those old >>> discussions as below? >>> >>> Regards, >>> >>> Wei >>> >>> >>> >>> >>> --- In kicad-users@yahoogroups.com, "spernecker" >>> wrote: --- In kicad-users@yahoogroups.com, "Dick H." wrote: > --- In kicad-users@yahoogroups.com, Bús József wrote: > >> Hi >> >> >> I made the patch for the SMD pad, to do the reduction of >> Solder > Paste Mask size. >> Uploaded the patch file and pictures the > http://tech.groups.yahoo.com/group/kicad-users/files/busj/ > folder! >> Regards, BusJ > The person who raised the issue wanted module/footprint > specific control. In my mind this means having to add > support in the module editor for setting this into a module. > The module editor could have a default setting which would > defer to the global setting, similar to how default vias > defer to the global hole size. > > I am open to your thoughts on how easy it would be bridge > this gap in concept. However as is, I will not be adding the > patch. More discussion and improvements are needed. > > > Dick > Hello guys, I'm a new Kicad user and I have a problem when I design new module with very small smp pad. It's glue the net togheter. I want maybe try your path but I don't understand what I need to do to apply this. Thank for your help. >>> >>> >>> >>> >>> >>> Please read the Kicad FAQ in the group files section before >>> posting your question. Please post your bug reports here. They >>> will be picked up by the creator of Kicad. Please visit >>> http://www.kicadlib.org for details of how to contribute your >>> symbols/modules to the kicad library. For building Kicad from >>> source and other development questions visit the kicad-devel >>> group at http://groups.yahoo.com/group/kicad-develYahoo! Groups >>> Links >>> >>> >>> >>> >>> >>> >>> >>> >>> No virus found in this incoming message. Checked by AVG - >>> www.avg.com Version: 9.0.709 / Virus Database: 270.14.100/2554 - >>> Release Date: 12/09/09 07:32:00 >>> >> >> No virus found in this outgoing message. Checked by AVG - >> www.avg.com Version: 9.0.709 / Virus Database: 270.14.100/2554 - >> Release Date: 12/09/09 07:32:00 >> > > > > > > > Please read the Kicad FAQ in the group files section before posting > your question. Please post your bug reports here. They will be picked > up by the creator of Kicad. Please visit http://www.kicadlib.org for > details of how to contribute your symbols/modules to the kicad > library. For building Kicad from source and other development > questions visit the kicad-devel group at > http://groups.yahoo.com/group/kicad-develYahoo! Groups Links > > > > > > > No virus found in this incoming message. Checked by AVG - www.avg.com > Version: 9.0.709 / Virus Database: 270.14.102/2556 - Release Date: > 12/10/09 07:36:00 > No virus found in this outgoing message. Checked by AVG - www.avg.com Version: 9.0.709 / Virus Database: 270.14.102/2556 - Release Date: 12/10/09 07:36:00
[kicad-users] Re: Solder paste
Thanks for the advice, I know that I can always edit the Gerber file or write a program for it. I was just wandering if I don't have to go with all the hassles in the design iteration. Regards, Wei --- In kicad-users@yahoogroups.com, Robert wrote: > > There is a Perl script available that will shrink the paste on all pads > (google "shrink_paste.pl" kicad). I guess you could edit it if you > don't want to shrink all components. > > Regards, > > Robert. > > weilu0 wrote: > > > > > > > > I have the problem of too wide opening for the stensil made from solder > > paste layer. Which results in too much solder paste applied for QFN and > > lots of solder bridges in manufacturing. However reducing the solder paste > > of specific modules seems to be a challenge in current released version: > > 20090216. > > > > Just wandering when will anything enabling the editing of solder paste > > opening be available... Or what is the result of those old discussions as > > below? > > > > Regards, > > > > Wei > > > > > > > > > > --- In kicad-users@yahoogroups.com, "spernecker" wrote: > >> --- In kicad-users@yahoogroups.com, "Dick H." wrote: > >>> --- In kicad-users@yahoogroups.com, Bús József wrote: > Hi > > > I made the patch for the SMD pad, to do the reduction of Solder > >>> Paste Mask size. > Uploaded the patch file and pictures the > >>> http://tech.groups.yahoo.com/group/kicad-users/files/busj/ folder! > Regards, > BusJ > >>> The person who raised the issue wanted module/footprint specific > >>> control. In my mind this means having to add support in the module > >>> editor for setting this into a module. The module editor could have a > >>> default setting which would defer to the global setting, similar to > >>> how default vias defer to the global hole size. > >>> > >>> I am open to your thoughts on how easy it would be bridge this gap in > >>> concept. However as is, I will not be adding the patch. More > >>> discussion and improvements are needed. > >>> > >>> > >>> Dick > >>> > >> Hello guys, I'm a new Kicad user and I have a problem when I design new > >> module with very small smp pad. It's glue the net togheter. I want maybe > >> try your path but I don't understand what I need to do to apply this. > >> Thank for your help. > >> > > > > > > > > > > > > > > Please read the Kicad FAQ in the group files section before posting your > > question. > > Please post your bug reports here. They will be picked up by the creator of > > Kicad. > > Please visit http://www.kicadlib.org for details of how to contribute your > > symbols/modules to the kicad library. > > For building Kicad from source and other development questions visit the > > kicad-devel group at http://groups.yahoo.com/group/kicad-develYahoo! Groups > > Links > > > > > > > > > > > > > > > > No virus found in this incoming message. > > Checked by AVG - www.avg.com > > Version: 9.0.709 / Virus Database: 270.14.100/2554 - Release Date: 12/09/09 > > 07:32:00 > > > > > No virus found in this outgoing message. > Checked by AVG - www.avg.com > Version: 9.0.709 / Virus Database: 270.14.100/2554 - Release Date: 12/09/09 > 07:32:00 >
Re: [kicad-users] Re: Solder paste
There is a Perl script available that will shrink the paste on all pads (google "shrink_paste.pl" kicad). I guess you could edit it if you don't want to shrink all components. Regards, Robert. weilu0 wrote: > > > > I have the problem of too wide opening for the stensil made from solder paste > layer. Which results in too much solder paste applied for QFN and lots of > solder bridges in manufacturing. However reducing the solder paste of > specific modules seems to be a challenge in current released version: > 20090216. > > Just wandering when will anything enabling the editing of solder paste > opening be available... Or what is the result of those old discussions as > below? > > Regards, > > Wei > > > > > --- In kicad-users@yahoogroups.com, "spernecker" wrote: >> --- In kicad-users@yahoogroups.com, "Dick H." wrote: >>> --- In kicad-users@yahoogroups.com, Bús József wrote: Hi I made the patch for the SMD pad, to do the reduction of Solder >>> Paste Mask size. Uploaded the patch file and pictures the >>> http://tech.groups.yahoo.com/group/kicad-users/files/busj/ folder! Regards, BusJ >>> The person who raised the issue wanted module/footprint specific >>> control. In my mind this means having to add support in the module >>> editor for setting this into a module. The module editor could have a >>> default setting which would defer to the global setting, similar to >>> how default vias defer to the global hole size. >>> >>> I am open to your thoughts on how easy it would be bridge this gap in >>> concept. However as is, I will not be adding the patch. More >>> discussion and improvements are needed. >>> >>> >>> Dick >>> >> Hello guys, I'm a new Kicad user and I have a problem when I design new >> module with very small smp pad. It's glue the net togheter. I want maybe try >> your path but I don't understand what I need to do to apply this. Thank for >> your help. >> > > > > > > > Please read the Kicad FAQ in the group files section before posting your > question. > Please post your bug reports here. They will be picked up by the creator of > Kicad. > Please visit http://www.kicadlib.org for details of how to contribute your > symbols/modules to the kicad library. > For building Kicad from source and other development questions visit the > kicad-devel group at http://groups.yahoo.com/group/kicad-develYahoo! Groups > Links > > > > > > > > No virus found in this incoming message. > Checked by AVG - www.avg.com > Version: 9.0.709 / Virus Database: 270.14.100/2554 - Release Date: 12/09/09 > 07:32:00 > No virus found in this outgoing message. Checked by AVG - www.avg.com Version: 9.0.709 / Virus Database: 270.14.100/2554 - Release Date: 12/09/09 07:32:00
[kicad-users] Re: Solder paste
I have the problem of too wide opening for the stensil made from solder paste layer. Which results in too much solder paste applied for QFN and lots of solder bridges in manufacturing. However reducing the solder paste of specific modules seems to be a challenge in current released version: 20090216. Just wandering when will anything enabling the editing of solder paste opening be available... Or what is the result of those old discussions as below? Regards, Wei --- In kicad-users@yahoogroups.com, "spernecker" wrote: > > --- In kicad-users@yahoogroups.com, "Dick H." wrote: > > > > --- In kicad-users@yahoogroups.com, Bús József wrote: > > > > > > Hi > > > > > > > > > I made the patch for the SMD pad, to do the reduction of Solder > > Paste Mask size. > > > > > > Uploaded the patch file and pictures the > > http://tech.groups.yahoo.com/group/kicad-users/files/busj/ folder! > > > > > > Regards, > > > BusJ > > > > The person who raised the issue wanted module/footprint specific > > control. In my mind this means having to add support in the module > > editor for setting this into a module. The module editor could have a > > default setting which would defer to the global setting, similar to > > how default vias defer to the global hole size. > > > > I am open to your thoughts on how easy it would be bridge this gap in > > concept. However as is, I will not be adding the patch. More > > discussion and improvements are needed. > > > > > > Dick > > > Hello guys, I'm a new Kicad user and I have a problem when I design new > module with very small smp pad. It's glue the net togheter. I want maybe try > your path but I don't understand what I need to do to apply this. Thank for > your help. >
[kicad-users] Re: Solder Paste
--- In kicad-users@yahoogroups.com, Robert wrote: > > Just an update on this for the record. The modified Gerber produced > using axtz4's script has been accepted by the people that asked for the > solder paste shrink, so that confirms the script does the job. Thanks > again, axtz4. > > Regards, > > Robert. Cool! Good to hear that it worked for y'all.
Re: [kicad-users] Re: Solder Paste
Just an update on this for the record. The modified Gerber produced using axtz4's script has been accepted by the people that asked for the solder paste shrink, so that confirms the script does the job. Thanks again, axtz4. Regards, Robert. Robert wrote: > Oh wow! Did you do this specially? If so I'm really touched - thank > you. I'll take a look at this today. Being a C(++) programmer I was > thinking about doing this in C, but though I've not written any Perl > myself I reckon I should be able to edit this if I need to and post it back. > > I guess the advantage of doing it in C is that it could be added to the > postprocess menu of kicad. Anyone got any thoughts on that? I can > write the code if it's thought worthwhile. > > Regards, > > Robert. > > axtz4 wrote: >> --- In kicad-users@yahoogroups.com, Robert wrote: >>> Hmmm - that would be a lot of manual editing. OK, thanks. At least I >>> can now solve it with a bit of C code if they insist on this one. >> Give this a try (I hope the Y! formatting doesn't totally destroy it.) May >> need to be tweaked for your house Gerber style. >> >> >> #!/usr/bin/perl >> # >> # Usage: perl shrink_paste.pl [input] [shrinkage] {minimum} >> # >> # Define $scale as the factor from the units of the command line shrinkage >> # value to the units in the Gerber. For a command line unit of mm and a >> # Gerber unit of inches, use 25.4. >> # If specified, the minimum dimension will be respected. If not specified, >> # it defaults to 0.0. Units are assumed to be the same as shrinkage and >> # similarly affected by the scale factor. >> >> $scale = 25.4; >> $minimum = 0.0; >> >> $iname = $ARGV[0]; >> if ($iname eq "") { >> print "No input filename\n"; >> exit; >> } >> >> $oname = $iname; >> $bakname = $iname; >> >> $base = rindex($oname, ".pho"); >> if ($base == -1) { >> print "Input not a Gerber? (Not .pho)\n"; >> exit; >> } >> >> $shrinkage = $ARGV[1]; >> >> if ($shrinkage == 0) { >> print "Quitting, no shrinkage spec'd\n"; >> exit; >> } >> >> $shrinkage /= $scale; >> >> $minimum = $ARGV[2]; >> if ($minimum < 0.0) { >> $minimum = 0.0; >> } >> $minimum /= $scale; >> >> substr($oname, $base) = ".tmp"; >> substr($bakname, $base) = ".bak"; >> >> open (IFILE, $iname) or die "$iname: $!"; >> open (OFILE, ">", $oname) or die "$oname: $!"; >> >> $working = 0; >> $x = 0.0; >> $y = 0.0; >> >> while () { >> chomp; >> if (!$working) { >> printf(OFILE "%s\n", $_); >> if (/APERTURE LIST/) { >> $working = 1; >> } >> } elsif ($working) { >> if (/APERTURE END LIST/) { >> $working = 0; >> printf(OFILE "%s\n", $_); >> } else { >> @field = split(/[,X\*]/); >> if ($field[0] =~ /C/) { >> $x = $field[1] - $shrinkage; >> if ($x < $minimum) { >> $x = $minimum; >> } >> printf(OFILE "%s,%.6f*%\n", >> $field[0], $x); >> } elsif ($field[0] =~ /[RO]/) { >> $x = $field[1] - $shrinkage; >> if ($x < $minimum) { >> $x = $minimum; >> } >> $y = $field[2] - $shrinkage; >> if ($y < $minimum) { >> $y = $minimum; >> } >> printf(OFILE "%s,%.6fX%.6f*%\n", >> $field[0], $x, $y); >> } >> } >> } >> } >> >> close(IFILE); >> close(OFILE); >> >> rename($iname, $bakname); >> rename($oname, $iname); >> >> >> >> >> >> >> Please read the Kicad FAQ in the group files section before posting your >> question. >> Please post your bug reports here. They will be picked up by the creator of >> Kicad. >> Please visit http://www.kicadlib.org for details of how to contribute your >> symbols/modules to the kicad library. >> For building Kicad from source and other development questions visit the >> kicad-devel group at http://groups.yahoo.com/group/kicad-develYahoo! Groups >> Links >> >> >> >> >> >> >> >> No virus found in this incoming message. >> Checked by AVG - www.avg.com >> Version: 8.5.283 / Virus Database: 270.11.39/2038 - Release Date: 04/02/09 >> 19:07:00 >> > > > > Please read the Kicad FAQ in the group files section before posting your > question. > Please post your bug reports here. They will be picked up by the creator of > Kicad. > Please visit http://www.kicadlib.org for details of how to contribute your > symbols/modules to the kicad library. > For building Kicad from source and other development questions visit the > kicad-devel group at http://groups.yahoo.com/group/kicad-develYahoo! Groups > Links > > > > > > > > > No virus found in this incoming message. > Checked by AVG - www.avg.com
Re: [kicad-users] Re: Solder Paste
I ran aztz4's Perl script under cygwin, and it seemed to work a treat. I'm just waiting to hear back from the manufacturer that they got what they were expecting, and then I'll report back. Certainly the Perl script is a lot simpler than doing it in C, but C would have the advantage that as an addition to the Postprocess menu it would work without anything else being installed. I'm prepared to write it if the developers would like to incorporate it into kicad, but if not then Perl or awk makes more sense IMHO. Regards, Robert. kajdas wrote: > I was thinking of using awk (tawk) for this. > It can be done in a few lines (5 to 10 maybe) of awk code. > Awk is included on unix/linux and available for windows. > Just another idea but any solution that works is good enough. > Martin > > > On Fri, Apr 3, 2009 at 11:07 AM , Robert wrote: > >> Oh wow! Did you do this specially? If so I'm really touched - >> thank you. I'll take a look at this today. Being a C(++) >> programmer I was thinking about doing this in C, but though I've not >> written any Perl myself I reckon I should be able to edit this if I >> need to and post it back. >> >> I guess the advantage of doing it in C is that it could be added to >> the postprocess menu of kicad. Anyone got any thoughts on that? I >> can write the code if it's thought worthwhile. >> >> Regards, >> >> Robert. >> >> axtz4 wrote: >>> --- In kicad-users@yahoogroups.com, Robert >>> wrote: Hmmm - that would be a lot of manual editing. OK, thanks. At least I can now solve it with a bit of C code if they insist on this one. >>> Give this a try (I hope the Y! formatting doesn't totally destroy >>> it.) May need to be tweaked for your house Gerber style. >>> >>> >>> #!/usr/bin/perl >>> # >>> # Usage: perl shrink_paste.pl [input] [shrinkage] {minimum} >>> # >>> # Define $scale as the factor from the units of the command line >>> shrinkage >>> # value to the units in the Gerber. For a command line unit of mm and >>> a >>> # Gerber unit of inches, use 25.4. >>> # If specified, the minimum dimension will be respected. If not >>> specified, >>> # it defaults to 0.0. Units are assumed to be the same as shrinkage >>> and >>> # similarly affected by the scale factor. >>> >>> $scale = 25.4; >>> $minimum = 0.0; >>> >>> $iname = $ARGV[0]; >>> if ($iname eq "") { >>> print "No input filename\n"; >>> exit; >>> } >>> >>> $oname = $iname; >>> $bakname = $iname; >>> >>> $base = rindex($oname, ".pho"); >>> if ($base == -1) { >>> print "Input not a Gerber? (Not .pho)\n"; >>> exit; >>> } >>> >>> $shrinkage = $ARGV[1]; >>> >>> if ($shrinkage == 0) { >>> print "Quitting, no shrinkage spec'd\n"; >>> exit; >>> } >>> >>> $shrinkage /= $scale; >>> >>> $minimum = $ARGV[2]; >>> if ($minimum < 0.0) { >>> $minimum = 0.0; >>> } >>> $minimum /= $scale; >>> >>> substr($oname, $base) = ".tmp"; >>> substr($bakname, $base) = ".bak"; >>> >>> open (IFILE, $iname) or die "$iname: $!"; >>> open (OFILE, ">", $oname) or die "$oname: $!"; >>> >>> $working = 0; >>> $x = 0.0; >>> $y = 0.0; >>> >>> while () { >>> chomp; >>> if (!$working) { >>> printf(OFILE "%s\n", $_); >>> if (/APERTURE LIST/) { >>> $working = 1; >>> } >>> } elsif ($working) { >>> if (/APERTURE END LIST/) { >>> $working = 0; >>> printf(OFILE "%s\n", $_); >>> } else { >>> @field = split(/[,X\*]/); >>> if ($field[0] =~ /C/) { >>> $x = $field[1] - $shrinkage; >>> if ($x < $minimum) { >>> $x = $minimum; >>> } >>> printf(OFILE "%s,%.6f*%\n", >>> $field[0], $x); >>> } elsif ($field[0] =~ /[RO]/) { >>> $x = $field[1] - $shrinkage; >>> if ($x < $minimum) { >>> $x = $minimum; >>> } >>> $y = $field[2] - $shrinkage; >>> if ($y < $minimum) { >>> $y = $minimum; >>> } >>> printf(OFILE "%s,%.6fX%.6f*%\n", >>> $field[0], $x, $y); >>> } >>> } >>> } >>> } >>> >>> close(IFILE); >>> close(OFILE); >>> >>> rename($iname, $bakname); >>> rename($oname, $iname); >>> >>> >>> >>> >>> >>> >>> Please read the Kicad FAQ in the group files section before posting >>> your question. >>> Please post your bug reports here. They will be picked up by the >>> creator of Kicad. >>> Please visit http://www.kicadlib.org for details of how to contribute >>> your symbols/modules to the kicad library. >>> For building Kicad from source and other development questions visit >>> the kicad-devel group at >>> http://groups.yahoo.com/group/kicad-develYahoo! Groups Links >>> >>> >>> >>> >>> >>> >>> >>> >>> No virus found in this incoming message. >>> Checked by AVG - www.avg.com Version: 8.5.283 / Virus
Re: [kicad-users] Re: Solder Paste
I was thinking of using awk (tawk) for this. It can be done in a few lines (5 to 10 maybe) of awk code. Awk is included on unix/linux and available for windows. Just another idea but any solution that works is good enough. Martin On Fri, Apr 3, 2009 at 11:07 AM , Robert wrote: > Oh wow! Did you do this specially? If so I'm really touched - > thank you. I'll take a look at this today. Being a C(++) > programmer I was thinking about doing this in C, but though I've not > written any Perl myself I reckon I should be able to edit this if I > need to and post it back. > > I guess the advantage of doing it in C is that it could be added to > the postprocess menu of kicad. Anyone got any thoughts on that? I > can write the code if it's thought worthwhile. > > Regards, > > Robert. > > axtz4 wrote: >> --- In kicad-users@yahoogroups.com, Robert >> wrote: >>> Hmmm - that would be a lot of manual editing. OK, thanks. At >>> least I can now solve it with a bit of C code if they insist on this >>> one. >> >> Give this a try (I hope the Y! formatting doesn't totally destroy >> it.) May need to be tweaked for your house Gerber style. >> >> >> #!/usr/bin/perl >> # >> # Usage: perl shrink_paste.pl [input] [shrinkage] {minimum} >> # >> # Define $scale as the factor from the units of the command line >> shrinkage >> # value to the units in the Gerber. For a command line unit of mm and >> a >> # Gerber unit of inches, use 25.4. >> # If specified, the minimum dimension will be respected. If not >> specified, >> # it defaults to 0.0. Units are assumed to be the same as shrinkage >> and >> # similarly affected by the scale factor. >> >> $scale = 25.4; >> $minimum = 0.0; >> >> $iname = $ARGV[0]; >> if ($iname eq "") { >> print "No input filename\n"; >> exit; >> } >> >> $oname = $iname; >> $bakname = $iname; >> >> $base = rindex($oname, ".pho"); >> if ($base == -1) { >> print "Input not a Gerber? (Not .pho)\n"; >> exit; >> } >> >> $shrinkage = $ARGV[1]; >> >> if ($shrinkage == 0) { >> print "Quitting, no shrinkage spec'd\n"; >> exit; >> } >> >> $shrinkage /= $scale; >> >> $minimum = $ARGV[2]; >> if ($minimum < 0.0) { >> $minimum = 0.0; >> } >> $minimum /= $scale; >> >> substr($oname, $base) = ".tmp"; >> substr($bakname, $base) = ".bak"; >> >> open (IFILE, $iname) or die "$iname: $!"; >> open (OFILE, ">", $oname) or die "$oname: $!"; >> >> $working = 0; >> $x = 0.0; >> $y = 0.0; >> >> while () { >> chomp; >> if (!$working) { >> printf(OFILE "%s\n", $_); >> if (/APERTURE LIST/) { >> $working = 1; >> } >> } elsif ($working) { >> if (/APERTURE END LIST/) { >> $working = 0; >> printf(OFILE "%s\n", $_); >> } else { >> @field = split(/[,X\*]/); >> if ($field[0] =~ /C/) { >> $x = $field[1] - $shrinkage; >> if ($x < $minimum) { >> $x = $minimum; >> } >> printf(OFILE "%s,%.6f*%\n", >> $field[0], $x); >> } elsif ($field[0] =~ /[RO]/) { >> $x = $field[1] - $shrinkage; >> if ($x < $minimum) { >> $x = $minimum; >> } >> $y = $field[2] - $shrinkage; >> if ($y < $minimum) { >> $y = $minimum; >> } >> printf(OFILE "%s,%.6fX%.6f*%\n", >> $field[0], $x, $y); >> } >> } >> } >> } >> >> close(IFILE); >> close(OFILE); >> >> rename($iname, $bakname); >> rename($oname, $iname); >> >> >> >> >> >> >> Please read the Kicad FAQ in the group files section before posting >> your question. >> Please post your bug reports here. They will be picked up by the >> creator of Kicad. >> Please visit http://www.kicadlib.org for details of how to contribute >> your symbols/modules to the kicad library. >> For building Kicad from source and other development questions visit >> the kicad-devel group at >> http://groups.yahoo.com/group/kicad-develYahoo! Groups Links >> >> >> >> >> >> >> >> >> No virus found in this incoming message. >> Checked by AVG - www.avg.com Version: 8.5.283 / Virus Database: >> 270.11.39/2038 - Release Date: 04/02/09 19:07:00 >>
Re: [kicad-users] Re: Solder Paste
> Interesting manufacturer you've got there. No, Kicad does not have > the ability to shrink the solder past pads as it can increase pad > sizes on solder resist layer. I myself just finished a PCB where I It was a new one to me. The reasoning is that it reduces the risk of solder shorting across adjacent pads of fine pitch components, a problem which cannot be solve by reducing the mask clearance because the mask can't be aligned accurately enough. This particular manufacturer finds that reducing the solder paste windows by 0.04mm helps to reduce the number of failures due to inter-pad shorts. Worth knowing, though from what you say it sounds like it's process-dependent to some (unknown to me) degree. With fine-pitch components only likely to become more common, IMHO adding solder paste shrink to the postprocess menu of kicad would be worthwhile, and axtz4 has demonstrated it shouldn't require much coding. Apparently the feature is common in high-end packages, and it's nice to see the kicad community kicking a bit of diamond-encrusted high-end ass :). > for each pad. Man, that was a lot of work, the connector has 60 pins. LOL. Poor you! Why do these manual edits always involve something with lots and lots of pins? > On the standard components, the manufacturer said it's ok to leave > it 1:1. Aparently, the needed shrinkage depends on pad size and how > the stencil is manufactures (etched, lasered, electro-polished) but > also on the thickness of the stencil. Maybe going to a thinner > stencil might be a solution for you, they are usually available down > to 100um/4mil. Thanks - I didn't know that. Regards, Robert.
Re: [kicad-users] Re: Solder Paste
Oh wow! Did you do this specially? If so I'm really touched - thank you. I'll take a look at this today. Being a C(++) programmer I was thinking about doing this in C, but though I've not written any Perl myself I reckon I should be able to edit this if I need to and post it back. I guess the advantage of doing it in C is that it could be added to the postprocess menu of kicad. Anyone got any thoughts on that? I can write the code if it's thought worthwhile. Regards, Robert. axtz4 wrote: > --- In kicad-users@yahoogroups.com, Robert wrote: >> Hmmm - that would be a lot of manual editing. OK, thanks. At least I >> can now solve it with a bit of C code if they insist on this one. > > Give this a try (I hope the Y! formatting doesn't totally destroy it.) May > need to be tweaked for your house Gerber style. > > > #!/usr/bin/perl > # > # Usage: perl shrink_paste.pl [input] [shrinkage] {minimum} > # > # Define $scale as the factor from the units of the command line shrinkage > # value to the units in the Gerber. For a command line unit of mm and a > # Gerber unit of inches, use 25.4. > # If specified, the minimum dimension will be respected. If not specified, > # it defaults to 0.0. Units are assumed to be the same as shrinkage and > # similarly affected by the scale factor. > > $scale = 25.4; > $minimum = 0.0; > > $iname = $ARGV[0]; > if ($iname eq "") { > print "No input filename\n"; > exit; > } > > $oname = $iname; > $bakname = $iname; > > $base = rindex($oname, ".pho"); > if ($base == -1) { > print "Input not a Gerber? (Not .pho)\n"; > exit; > } > > $shrinkage = $ARGV[1]; > > if ($shrinkage == 0) { > print "Quitting, no shrinkage spec'd\n"; > exit; > } > > $shrinkage /= $scale; > > $minimum = $ARGV[2]; > if ($minimum < 0.0) { > $minimum = 0.0; > } > $minimum /= $scale; > > substr($oname, $base) = ".tmp"; > substr($bakname, $base) = ".bak"; > > open (IFILE, $iname) or die "$iname: $!"; > open (OFILE, ">", $oname) or die "$oname: $!"; > > $working = 0; > $x = 0.0; > $y = 0.0; > > while () { > chomp; > if (!$working) { > printf(OFILE "%s\n", $_); > if (/APERTURE LIST/) { > $working = 1; > } > } elsif ($working) { > if (/APERTURE END LIST/) { > $working = 0; > printf(OFILE "%s\n", $_); > } else { > @field = split(/[,X\*]/); > if ($field[0] =~ /C/) { > $x = $field[1] - $shrinkage; > if ($x < $minimum) { > $x = $minimum; > } > printf(OFILE "%s,%.6f*%\n", > $field[0], $x); > } elsif ($field[0] =~ /[RO]/) { > $x = $field[1] - $shrinkage; > if ($x < $minimum) { > $x = $minimum; > } > $y = $field[2] - $shrinkage; > if ($y < $minimum) { > $y = $minimum; > } > printf(OFILE "%s,%.6fX%.6f*%\n", > $field[0], $x, $y); > } > } > } > } > > close(IFILE); > close(OFILE); > > rename($iname, $bakname); > rename($oname, $iname); > > > > > > > Please read the Kicad FAQ in the group files section before posting your > question. > Please post your bug reports here. They will be picked up by the creator of > Kicad. > Please visit http://www.kicadlib.org for details of how to contribute your > symbols/modules to the kicad library. > For building Kicad from source and other development questions visit the > kicad-devel group at http://groups.yahoo.com/group/kicad-develYahoo! Groups > Links > > > > > > > > No virus found in this incoming message. > Checked by AVG - www.avg.com > Version: 8.5.283 / Virus Database: 270.11.39/2038 - Release Date: 04/02/09 > 19:07:00 >
[kicad-users] Re: Solder Paste
Hi Robert, Interesting manufacturer you've got there. No, Kicad does not have the ability to shrink the solder past pads as it can increase pad sizes on solder resist layer. I myself just finished a PCB where I only had to shrink solder paste for 2 fine-pitch connectors. I did it by not using the original pad for paste but added a smaler drawing for each pad. Man, that was a lot of work, the connector has 60 pins. On the standard components, the manufacturer said it's ok to leave it 1:1. Aparently, the needed shrinkage depends on pad size and how the stencil is manufactures (etched, lasered, electro-polished) but also on the thickness of the stencil. Maybe going to a thinner stencil might be a solution for you, they are usually available down to 100um/4mil. Cheers, Heiko --- In kicad-users@yahoogroups.com, Robert wrote: > > Hi all, > > I've been asked to shrink the size of the solder paste windows relative > to the pads by 0.04mm, ie if a pad is a 1mm diameter circle, I've been > asked to make the solder paste window 0.96mm in diameter. Does anyone > know how I might achieve this please, either with kicad or via some > post-processing stage? > > Regards, > > Robert. >
[kicad-users] Re: Solder Paste
--- In kicad-users@yahoogroups.com, Robert wrote: > > Hmmm - that would be a lot of manual editing. OK, thanks. At least I > can now solve it with a bit of C code if they insist on this one. Give this a try (I hope the Y! formatting doesn't totally destroy it.) May need to be tweaked for your house Gerber style. #!/usr/bin/perl # # Usage: perl shrink_paste.pl [input] [shrinkage] {minimum} # # Define $scale as the factor from the units of the command line shrinkage # value to the units in the Gerber. For a command line unit of mm and a # Gerber unit of inches, use 25.4. # If specified, the minimum dimension will be respected. If not specified, # it defaults to 0.0. Units are assumed to be the same as shrinkage and # similarly affected by the scale factor. $scale = 25.4; $minimum = 0.0; $iname = $ARGV[0]; if ($iname eq "") { print "No input filename\n"; exit; } $oname = $iname; $bakname = $iname; $base = rindex($oname, ".pho"); if ($base == -1) { print "Input not a Gerber? (Not .pho)\n"; exit; } $shrinkage = $ARGV[1]; if ($shrinkage == 0) { print "Quitting, no shrinkage spec'd\n"; exit; } $shrinkage /= $scale; $minimum = $ARGV[2]; if ($minimum < 0.0) { $minimum = 0.0; } $minimum /= $scale; substr($oname, $base) = ".tmp"; substr($bakname, $base) = ".bak"; open (IFILE, $iname) or die "$iname: $!"; open (OFILE, ">", $oname) or die "$oname: $!"; $working = 0; $x = 0.0; $y = 0.0; while () { chomp; if (!$working) { printf(OFILE "%s\n", $_); if (/APERTURE LIST/) { $working = 1; } } elsif ($working) { if (/APERTURE END LIST/) { $working = 0; printf(OFILE "%s\n", $_); } else { @field = split(/[,X\*]/); if ($field[0] =~ /C/) { $x = $field[1] - $shrinkage; if ($x < $minimum) { $x = $minimum; } printf(OFILE "%s,%.6f*%\n", $field[0], $x); } elsif ($field[0] =~ /[RO]/) { $x = $field[1] - $shrinkage; if ($x < $minimum) { $x = $minimum; } $y = $field[2] - $shrinkage; if ($y < $minimum) { $y = $minimum; } printf(OFILE "%s,%.6fX%.6f*%\n", $field[0], $x, $y); } } } } close(IFILE); close(OFILE); rename($iname, $bakname); rename($oname, $iname);
Re: [kicad-users] Re: Solder Paste
Hmmm - that would be a lot of manual editing. OK, thanks. At least I can now solve it with a bit of C code if they insist on this one. Regards, Robert. axtz4 wrote: > --- In kicad-users@yahoogroups.com, Robert > wrote: >> Thanks. I should add that they want the solder mask to be >> positive (ie the solder mask clearance is supposed to be 0.4mm), so >> your cunning idea can't be applied in this case. > > [sound of planting face in hand] D'oh! Yes, I was thinking solder > masks and not the paste tool. > > Well, one sure way to do this is to edit the *SoldP_Cmp.pho (and > similar) file and mod the appertures. E.g., if the original apperture > for an 0804 was D23 and it was listed as %ADD23R,0.055000X0.035000*% > (1.4 mm x 0.9 mm) in the Gerber, changing it to 1 mm x 0.5 mm would > be %ADD23R,0.04X0.02*%, more or less. > > > > > > Please read the Kicad FAQ in the group files section before posting > your question. Please post your bug reports here. They will be picked > up by the creator of Kicad. Please visit http://www.kicadlib.org for > details of how to contribute your symbols/modules to the kicad > library. For building Kicad from source and other development > questions visit the kicad-devel group at > http://groups.yahoo.com/group/kicad-develYahoo! Groups Links > > > > > > > > No virus found in this incoming message. Checked by AVG - www.avg.com > Version: 8.5.283 / Virus Database: 270.11.38/2037 - Release Date: > 04/02/09 06:09:00 >
[kicad-users] Re: Solder Paste
--- In kicad-users@yahoogroups.com, Robert wrote: > > Thanks. I should add that they want the solder mask to be positive (ie > the solder mask clearance is supposed to be 0.4mm), so your cunning idea > can't be applied in this case. [sound of planting face in hand] D'oh! Yes, I was thinking solder masks and not the paste tool. Well, one sure way to do this is to edit the *SoldP_Cmp.pho (and similar) file and mod the appertures. E.g., if the original apperture for an 0804 was D23 and it was listed as %ADD23R,0.055000X0.035000*% (1.4 mm x 0.9 mm) in the Gerber, changing it to 1 mm x 0.5 mm would be %ADD23R,0.04X0.02*%, more or less.
Re: [kicad-users] Re: Solder Paste
Thanks. I should add that they want the solder mask to be positive (ie the solder mask clearance is supposed to be 0.4mm), so your cunning idea can't be applied in this case. Regards, Robert. axtz4 wrote: > --- In kicad-users@yahoogroups.com, Robert wrote: >> Hi all, >> >> I've been asked to shrink the size of the solder paste windows relative >> to the pads by 0.04mm, ie if a pad is a 1mm diameter circle, I've been >> asked to make the solder paste window 0.96mm in diameter. Does anyone >> know how I might achieve this please, either with kicad or via some >> post-processing stage? > > In the board editor, select the menu Dimensions | Tracks and Vias. From that > dialog, you can set the global mask clearance. A negative clearance does seem > to work okay, though a verification pass through a Gerber viewer is always a > good idea ... > > > > > > Please read the Kicad FAQ in the group files section before posting your > question. > Please post your bug reports here. They will be picked up by the creator of > Kicad. > Please visit http://www.kicadlib.org for details of how to contribute your > symbols/modules to the kicad library. > For building Kicad from source and other development questions visit the > kicad-devel group at http://groups.yahoo.com/group/kicad-develYahoo! Groups > Links > > > > > > > > No virus found in this incoming message. > Checked by AVG - www.avg.com > Version: 8.5.283 / Virus Database: 270.11.35/2034 - Release Date: 04/01/09 > 06:06:00 >
[kicad-users] Re: Solder Paste
--- In kicad-users@yahoogroups.com, Robert wrote: > > Hi all, > > I've been asked to shrink the size of the solder paste windows relative > to the pads by 0.04mm, ie if a pad is a 1mm diameter circle, I've been > asked to make the solder paste window 0.96mm in diameter. Does anyone > know how I might achieve this please, either with kicad or via some > post-processing stage? In the board editor, select the menu Dimensions | Tracks and Vias. From that dialog, you can set the global mask clearance. A negative clearance does seem to work okay, though a verification pass through a Gerber viewer is always a good idea ...