Skip to content | Skip to navigation
Powered by RSPowered by RSPowered by RS

Designspark PCB -- Bug in SOIC PCB footprint wizard -- pad length dictates pad width; fix / workaround?

ds929

United States

I'm designing a footprint for a JEDEC MO-153 type 38 pin TSSOP package of TI type "DBT". I started using the SOIC PCB footprint wizard to make the footprint for it, and I've found what seems like a bug although it is possible that I should be using a different wizard for this and maybe the restriction is intentional (though if so, I don't understand the design rule or notice which alternative I should be using that gives the required flexibility).

In the "PADS" section of the wizard, you can specify "L" for pad length, "T" for the pad 'toe' length in front of the lead, "H" for the pad 'heel' length behind the lead, and those are sufficient to determine the pad length calculated value "PL".

However when you want to control the "PW" pad width parameter, you can specify the lead width "b", but you have no independent parameter to specify the PAD left+right WIDTH which would have to fit within the lead pitch constraint "e".
Instead, possibly erroneously, the "H" parameter is also controlling the width between the pad edge and the lead edge, and "H" is also the same parameter that controls the "heel" LENGTH, so the width and length are NOT independently adjustable.

For instance for this particular part, the IPC-7351 LP-Calculator program using certain settings suggests a "T" toe of 0.35mm, a "H" heel of 0.35mm, a "PW" of 0.30mm, a "PL" of 1.50mm, given the specified actual JEDEC package type and dimension inputs and the IPC-7351 data. Due to "H" controlling "PW" it is not possible to set the pad size to those parameters since increasing the T-top and H-heel sizes makes the PW larger than the lead pitch, and not possibly the correct/desired value.

I suppose I could (I haven't checked yet) set the actual pad dimensions in the manual design mode, but it is puzzling that the "wizard" should have such a constraint that makes PW and PL impossible to correctly set in this typical sort of use case.

Also I would suggest having:
A -- an error indication flag that makes it more clear that your PW may be larger than or equal to the lead pitch "e" which I accidentally did while trying to set "H" to the desired heel length.
B -- a calculated value field that shows what the current non-copper width dimension "(e-PW)" would be given the "PW" and "e" settings.

Perhaps I'll find a different wizard or option to resolve this, but in case not, I'd appreciate any thoughts / feedback as to whether this is a bug or a feature and what the suggested design flow ought to be in this case.

Thanks!

Replies

Martin Keenan

United Kingdom

1 year ago

Thanks DS292, we will carefully review these suggestions for improvements.  Also many thanks for your suggested tips for when you have slightly unusual requirements for the footprints.  As you suggest the Wizards are seen as an improvement over the approach taken elsewhere, but we can certainly improve upon them - and we are always adding to the requests for new features that we can add for future versions of the software to make it even more powerful and easy to get along with!

Martin

ds929

United States

1 year ago

Martin, thank you for checking into this issue for me.  Pragmatically, I agree with your suggestion to partially use the wizard to help get the parameters of the footprint shape designed, but to manually specify the pad size to bypass using the 'T', 'H' et. al. parameters in the pad shape calculator aspect of the wizard.  I have found two approaches that seem to more or less work:

A) Use the PCB footprint design wizard to generate the basic shape / pin configuration of the part, but when asked for the pad/pin dimensions, just enter b=total desired width of PAD (not pin), L=total desired length of PAD (not pin),  T=0, H=0, and so just 'lie' to the pad generation wizard so that it will calculate PW=b, PL=L without any contribution from 'H', 'T'.  This seems to work though the idea made me uneasy not knowing if it would mess up the generated solder mask / paste mask / whatever that might depend on the actual pin and pad parameters and other design rules et. al.  But as far as I've seen the 'T', 'H' data may not really be used for anything but to calculate 'PW,PL' at that one point in the foot print wizard.  If so it would seem simpler to just let the user enter PW,PL directly if they prefer that over L,T,H,b.

B) An alternative and superior in some ways approach occured to me as I learned more about the technology files and their capability for specifying pad styles.  First I defined a technology file to suit the board design rules I wanted, then I edited that technology file to add in pad styles such as "TI_DBT_PAD" for each of the pad types relating to packages I was to use in my design.  I would in the pad style section of the technology file enter the desired total pad length and width and shape data corresponding to that named style/type of pad.  Then I would save the technology file and enter the PCB footprint wizard in the library editor and start to define the footprint I wanted by package type, et. al.  At the dialog box where it asks you to specify pads for your SOIC (for instance) package being created, it does have a drop down list box for 'Style' and if you've already created a style for the pad type that is relevant (as before), you can just select that pad style at that time and have it apply to the pad geometry / shape being defined.  This sort of works, but there are a few bugs between the pad wizard dialog box and the pad style selection that make it so you have to be a little careful about a couple of things but I won't go into that here for brevity, anyway, it is a good way to do it if you've experimented with it a couple of times and know how to do it and will go into the editor after the wizard and verify that all pad properties / styles were set as expected.

C) Actually I also found that if you launch the editor after you define the pad parameters (correct or not) via the footprint pad wizard you can group select a bunch of the pads and then edit their properties and as a group change their style or some other dimensional properties of them to suit your intentions.  I find it best to use styles and name them after the package type name and pad type within that package and thus have them all just moved over to a single style that the group is to use. 

Anyway those seem to be good work-arounds to having the pad wizard being a bit more flexible about defining geometry / styles right in the dialog window.  Usually I have seen most vendors give actual recommended dimensions for the PCB pads and sometimes also the solder mask too, though I am aware that some vendors do not do this.  Alternatively I find that the IPC-7351 based land pattern calculator  or similar reference materials are good for finding out what I should set the actual pad geometry to based upon the vendor / JEDEC package type even if the part vendor doesn't recommend these data in the data sheet.

So far I think the biggest limitation with the pcb footprint wizard relates to the following --

a) SON/QFN package editing doesn't give you really any detailed options about how to refine the shape of the thermal / center  pad in the IC.  Often vendors will suggest subdividing the thermal area into multiple zones or using cross-hatched copper pour over the zone or having some periphery or crosshatched areas of the thermal pad area solder masked off even where there is underlying copper et. al.  Also very commonly a particular pattern of thermal / signal vias are suggested by the vendor to be placed within the thermal pad area, and for these to be of a particular size / design.  It doesn't seem like it is that easy to predefine a PCB package footprint with such complex solder masking or copper patterning or included vias either using the SON/QFN wizard or by manual editing.  But I haven't spent too much time looking into it, so maybe there are ways to do it even if a bit more manually than I might wish.  I know you can specify through hole pads within a package like a DIP, though I'm not sure you can do that for vias, especially ones that are all supposed to reside within a copper poured thermal pad area within a footprint.

b) When defining footprints other than the basic types the footprint wizard supports, I found it a bit hard to do manually in the sense that I thought that a more flexible sort of 'wizard' could help automate some of the footprint definition process for other package / part types than those currently supported.  For instance something like a through hole DVI connector where part of it is an X,Y array of through hole pads of a particular shape / style, but also there are a couple of through holes for mounting pegs/studs that are not pads but which must be drilled holes offset at a particular location, then there are a few groups of more pads of different sizes at particular offsets relative to some particular reference point that also must be defined.   So if there was some particular kind of footprint wizard mode that acted more like a 2D / parametric mechanical CAD program where you could define something like multiple origins and then specify geometric dimensioned / toleranced offsets from those points to be the locations of other features like silkscreen lines, assembly drawing lines, pad locations, non-pad hole locations, et. al it would certainly be wonderful.  Obviously you can do that all manually by calculating the offsets on paper on in a distinct CAD program and then specifying to move a given pad to a given absolute / relative location in DesignSpark, but that is difficult in various ways, and it doesn't give one a very good confidence of a correct result since there is no in program way to see the actual positioning dimensioning that applies from one feature to another like a dimensioned mechanical drawing (of the sort in datasheets) has -- the best you can do is inquire as to a particular item's coordinates and measure it relative to a selected item, but this does not show up in the CAD drawing.  Maybe there could be something like a GDT 2D CAD drawing "layer" that you could use to generate a dimensioned parametric drawing of how the features of a footprint or parts on a PCB are defined relative to a 2D MCAD drawing, and then be able to align / snap / define PCB features like silkscreen / assembly coordinates / pad / drill coordinates relative to this proposed dimensioned MCAD drawing / layer.  It wouldn't even have to be a "wizard" so much as a UI mode for editing a particular "layer" of the PCB.

c) Not really related to the footprint wizard but still a 'wizard' in a way I think it would also be awesome to see some kinds of 'wizards' or 'calculators' or facilitators to be able to do things like make features like traces according to certain parameters such as a transmission line of X impedance, or equalizing the length of trace A, to trace B or to a specified total length by generating meandering routing as needed to achieve a specified / matching length for timing purposes, or being able to design particular features like a given type of PCB integrated RF stub or coupled line or matching network or whatever based on your specified PCB layer stackup and material type, or a matching section of a particular impedance, etc..  Sometimes these kinds of things are a little tedious to calculate manually or draw manually on a PCB using areas / zones / track segments, though usually they are very easy to generate using cookbook formulas that dictate the proper shapes / lengths / widths etc.   Also applicable for things like semi-automatically generating test points, fiducial marks for placement / test, etc.

Anyway I really do appreciate DesignSpark, so far I think it is the best free PCB CAD package I've used, and I've used quite a few different ones over the years!  Thanks for making a great product like this available to the communities and market segments that this would be appropriate for.  Despite the limitations I think having the footprint / package wizards that it does have is certainly a leap better than what you usually see though it has long seemed like the most obvious/necessary sort of thing for more free / low cost packages to adopt given how useful and yet simple it is as a resource within a program!

Thanks again for providing a great resource and program and for the helpful support and forum et. al. as well!

I look forward to learning more about the best tips and techniques to use this program for various sorts of design activities.  Already I have started to move some library items I've made from other tools like KICAD to DesignSpark to better appreciate the design flow and possibilities with DS.

 

Martin Keenan

United Kingdom

1 year ago

Hi DS929,This is not a bug but you make some nice suggestions.  PW and PL are deliberately derived from the other measurements as these are the two values (the actual size of the pad land) which are hardly ever given on manufacturer's datasheets.   This particular footprint you are trying to make appears not to be achievable due to the fact that we use H not only for the heel but also for the sides of the pad land (as indicated in the little diagram on the dialog).
  The workaround is to use the wizard anyway to achieve the desired pin- and row-pitch and pad length, then adjust the pad width interactively once the basic footprint has been generated. Thus you benefit from the help the wizard gives you in arranging the pads in the right positions, which makes it a lot easier than doing it all by hand.Thanks,Martin

Martin Keenan

United Kingdom

1 year ago

Thanks for the feedback ds, will investigate now for you!

Martin