Discussion:
[kicad-users] SMT footprints, IPC-7351B software etc. - what I learned so far
Robin Whittle rw@firstpr.com.au [kicad-users]
2016-02-23 14:52:58 UTC
Permalink
This is a long message in which I explore using a freely available
footprint viewer program to find out the pad dimensions for various SMT
devices, according to IPC-7351B (or perhaps C). In principle I can use
this information to set the pad dimensions of my Kicad footprints
according to this standard, using one of the three density options, and
using rectangular pads. The program can specify rounded rectangle pads,
but Kicad does not support these. It can also specify "oblong" pads
which seem to be the same as Kicad's "oval" pads.


I am learning Kicad and SMT. I printed, read and annotated the manuals.
I have played with toy schematics and PCB designs and made or modified
my own schematic components and PCB footprints - in my own libraries (my
schematics and PCBs will use components and footprints exclusively from
my own libraries, as is frequently advised on this list). I have not
yet made a real schematic or board design.

Tact switches typically have four pins, where 1 and 2 are connected
electrically as are 3 and 4. I found by experiment (and I read it
somewhere in a manual) that if two or more pins in a footprint have the
same number, then they are considered to be electrically connected. I
tried this out with a TO3 component and footprint I found in the
libraries and was able to create a board design where connecting to
either of the pin 3 pads (most importantly one resistor to one and the
other resistor to the other), which are the mounting screws with a
collector connection, worked fine in terms of ratsnest lines and the
final DRC.

Now I want to create, or rather modify to make my own, footprints for
the SMT devices I plan to use (I am using common imperial footprint
names here), starting with:

Resistors and multilayer capacitors in 0805 and 1206.

SOIC 8 and 16.

I soon learned that there is no such thing as a "standard" (meaning
foolproof = will always work) 0805 footprint (AKA "SMT land pattern").

I also learned that whenever footprints for chip two terminal components
are discussed, there are numerous ways of referring to the pad
dimensions and spacing. In Kicad's Footprint Editor, it is convenient
to think of X and Y as pad dimensions and with a third value for how
much left or right of centre (- or + X) each pad's centre is. Many
footprint specifications in datasheets use X for Kicad's Y and vice
versa, and specify the gap between the pads.

As best I understand it, here is how I might go about deciding on a
footprint for a 1206 resistor, unless I had guidance (which I may
receive) from the PCB assembly company.

I found an early standards document on the Net: IPC-SM-782A, with
amendments 1 and 2 from April 1999. I used a program called A-PDF
Restrictions Remover to make it printable. I found this useful
regarding fiducial marks and separating boards in a panel with routing
and breakaway tabs, with "mouse bites" non-plated holes to create a
clean break.

The section on chip resistors gives the dimensions of the 0805 and 1206
devices and recommends pad dimensions and spacing for them. The rest of
the document does the same thing for all the other types of SMT package,
including SOIC, which I am interested in.

However, these recommendations are the one set of pad dimensions for for
both wave soldering and reflow - and the former usually involves bigger
pads than are optimal for the latter. My boards will be done with
reflow, so I think these recommendations are not what I am looking for.

IPC-SM-782A was replaced in 2005 by IPC-7351. I found a copy on a
Russian site. These standards documents are sold under license and are
not supposed to be freely available to the public.

IPC-7351 doesn't list specific footprint recommendations. For chip
resistors smaller than 1608 (0603 metric) Table 3-6 (page 13) apparently
tells me all I need to know to calculate the pad dimensions and spacing,
together with the courtyard dimensions. I didn't try to figure out how
to do this, since there are now better ways.

IPC-7351 has recommendations for three "density levels": Minimum, Median
(no heroics - I will use this) and Maximum (I guess if the product is a
cellphone or heart pacemaker or for some other reason needs to be as
small as possible). I think this terminology has been revised in later
versions of the standard, and the software mentioned below uses "Least",
"Nominal" and "Most" for the three Density options.

I understand that Minimum density enables greater ease with production,
test probing and rework, while Maximum density may not result in
adequate production yields (due to tombstoning or other problems) unless
higher than normal levels of care are used for all aspects of placement,
reflow soldering etc.

Pages 16 and 17 contain a Land Pattern Naming Convention, by which,
non-polarized chip capacitor footprints (short for "land patterns") are
referred to as "CAPC" followed by the name of the package in metric.
Likewise "RESC" for chip resistors. SOIC footprints are referred to as
"SOIC127P + Lead Span Nominal - Pin Quantity".

This standard has been superseded by IPC-7351A and IPC-7351B. Googling
indicates that IPC-7351C was due for release in 2015, but it is not
available yet. A set of slides (2015-08-05) from the founder or PCB
Libraries Inc.:


http://cskl.de/fileadmin/downloads/PCBLIBRARIES/Documentation/What-is-New-in-IPC-7351C_.pdf

discusses what is new in IPC-7531C. Previously, the recommended pad
shape was "oblong" - the longer sides straight with the shorter sides
being rounded as 180 degree sections of a circle. As far as I know,
this is the same as an "oval" pad in Kicad.

For IPC-7351C, rounded rectangle SMT pads are recommended, where the
corner radius is at most 0.25mm and otherwise is 25% of the width
(shortest side) of the otherwise rectangular pad. So on the shorter
sides, the middle 50% is straight and the end 25% sections are 90 degree
sections of a circle.

There's a way of indicating polarity of two-pin devices and pin 1 of
square devices by specific arrangements of what is printed on the
component legend ("silk-screen", though no-one uses silk).

Slide 28 is interesting. There are two standards for the "zero
rotation" alignment of footprints. This is important since the assembly
machine is programmed to know the alignment of the devices in the tape,
and as PCB designer, I am providing instructions on how to rotate this
to match my board design.

The first standard is from IPC-7351 (2007) with pin 1 in the upper left
corner. This is now "Level A" within IPC-7351C. The second standard,
"Level B" is compatible with IEC 61188-7 (2009) in which pin 1 is to the
lower left. As someone once said: "Standards are good - that's why we
have so many of them."

IPC-7351B is available with a single-user license for USD$148:

https://portal.ipc.org/Purchase/ProductDetail.aspx?Product_code=987caa7f-ff93-df11-9e60-002219545fd5

However, it won't tell me directly what footprint dimensions to use.

I found three IPC / PCB Libraries Inc. programs for Windows PCs
concerning SMT footprints. One, and I guess the other two in some way
enable me to discern the recommended footprint dimensions, at least for
the devices I am interested in at present. I found it impossible to
understand these programs in terms of what they do for free, or with
additional expense and/or licenses, just by reading about them.

The first is the "IPC-7351 Footprint Expert", AKA "IPC-7351B IPC
Calculator", (Library_Expert_IPC-121515.zip, where the numbers are
different for each download):

http://www.ipc.org/ContentPage.aspx?pageid=Land-Pattern-Calculator

which, once installed, is called "PCB Library Expert IPC 2015".

The second program appears to be very similar, and once installed is
called "PCB Library Expert POD 2015"
(Library_Expert_2015-21_POD_6391827.zip):

http://www.pcblibraries.com/LibraryExpert/POD/

As far as I know, this enables the generation of footprints in
particular library formats (Eagle etc. not including Kicad) on a pay-per
part basis, where the minimum expense is USD$50 do create a particular
number (25?) footprints.

Related to these is a third program, "PCB Libraries - Library Expert
2015-21 Lite: (Library_Expert_2015-21_Lite.zip), also Windows only:

http://www.pcblibraries.com
http://www.pcblibraries.com/downloads/LE-Datasheet.pdf
(Suit-and-tie-guy jumping for joy - "CHAOS SIMPLIFIED!".)

As best I understand it, this is a cut-down version of a program which
is available in multiple forms, which automates the generation of
potentially quite large SMT footprint libraries, with direct export of
the entire library in the format of particular PCB design systems,
including Eagle and Altium, but not Kicad. For instance the one for
Eagle costs USD$449 for a single user:

http://www.pcblibraries.com/Products/FPX/EAGLE.asp

This looks similar to the first two, and they all install in the same
C:\Program Files (x86)\PCB Libraries\ directory, and their shortcuts
share a common folder in the Programs hierarchy.

No licensed version of this program will, as far as I know, generate
Kicad footprint libraries. However, perhaps it would be possible to use
the Eagle version, read the Eagle library into the free (2 layer only,
80 x 100mm) program, place an instance of each footprint in a PCB, read
the PCB files into Kicad, and then grab them all in Pcbnew (File >
Archive Footprints) to get them into a Kicad footprint library. I don't
know if these programs involve a license preventing the free
distribution of the footprints they generate, but it wouldn't surprise
me if that is the case.

My needs at present are much more modest, but I want to understand how
all this stuff works and plan my libraries so I can work with many more
SMT footprints in the future.

I haven't tried the second and third programs, but have partially
explored the first: Library Expert for IPC 2015:17. Here is what I found.

On 2013-08-14, writing about this program, or perhaps a forerunner of
it, Lorenzo Marcantonio wrote:

How to Survive IPC-7351B

http://cskl.de/fileadmin/downloads/PCBLIBRARIES/Documentation/What-is-New-in-IPC-7351C_.pdf

"As of 2013 the bundled calculator is not from Mentor, but
instead Foot-print Expert, from PCB Libraries (in fact, they
seem to be the same people). More or less the same, is uses
a different (fpx) file format for the library. Also it seems
that it already uses the yet-to-be-published C revision of the
standard."

This may explain why the program presents rounded rectangle pads.
However, the download page:

http://www.ipc.org/ContentPage.aspx?pageid=Land-Pattern-Calculator

refers to it as the "IPC-7351B IPC Calculator".

I started the program, clicked the "Surface Mount" icon on the top
toolbar, and then clicked the 'Library Editor" icon there too. At the
top right is a list of footprint names, each with a description, case
code, manufacturer and datasheet.

My mission is to create a Kicad footprint for a 1206 resistor. Maybe I
should only think in metric regarding SMT devices and footprints. A
conversion chart is here:

https://wiki.xtronics.com/index.php/SMT_Case_Size_Codes

My mission now is to create a footprint for a (metric) 3216 (AKA 3216M)
resistor, which is the same as an imperial 1206. I select the line:

RESC3216X63L44
Resistor, chip; 3.20mm length, 1.60mm width, 0.63mm high
Inch 1206, Metric 3216
Vishay
http://www.vishay.com/docs/60093/fcseries.pdf


Two other footprints are for resistors both with a greater height of 0.76mm:

RESC3216X76L51
RESC3216X76L57

Google finds no mention of these three footprint names even with the Lxx
trimmed off. There are pages referring to: RESC3216.

I was able to estimate the popularity of various chip resistor packages
from:

http://au.element14.com/chip-smd-resistors

Those with more than 10,000 items were:

0402 1005M 12,324
0603 1608M 19,768
0805 2012M 19,779
1206 3216M 13,139

I read up on tombstoning:

http://metallicresources.com/documents/Tombstoning%20explained.pdf
http://www.solderworld.net/docs/SMT-troubleshooting-guide.pdf

http://www.smtnet.com/index.cfm?fuseaction=search_submit&collection=site_forum&searchstring=tombstone

and concluded that this is primarily a problem for small chip components
(and perhaps three terminal transistors and the like) such as 0402 1005M
and to a lesser extent 0603 1608M, so I probably don't need to be
worried about tombstoning with the 0805 2012M and perhaps 1206 3216M
devices I am planning on using. Ease of manual rework is an argument
for larger pads, and compactness is an argument for smaller pads.

I looked at some 10k 1206 3216M resistors at element14 and picked a few
from major brands to find out their height, not counting any overcoat in
the middle:

Panasonic 0.60mm
Vishay 0.55mm
Bourns 0.60mm
Yageo 0.55mm
TT Welwyn 0.50mm 0.1% precision

I continued with the first of these three footprints: RESC3216X63L44
because its height was the closest of these three to what seems to be
"normal" for mass production resistors. By double-clicking its line,
the left part of the program's window changed to two rows of tabs and
below the list there was a graphic representation of the footprint, with
chip metallic dimensions as white rectangles, solder pads in blue
(rounded rectangles), yellow and white lines and a magenta courtyard
boundary.

Component (top line of tabs) > Dimensions (bottom line of tabs) provides
a diagram at the bottom and dimensions of the device itself.

Terminal > Density Level enables me to select between:

Most (M)
Nominal (N)
Least (L)

I continued with the initial setting of Nominal.

Footprint > Dimensions provides dimensions and spacing of the pads. For
the three density levels they were (fixed width font assumed here):

Most Nominal Least
S = space between pads 1.98 1.98 1.98
L = Length (X in Kicad) 1.27 1.07 0.87
W = Width (Y in Kicad) 1.85 1.75 1.65

Either the Most Dense and Least Dense have been mistakenly reversed or I
have no clue what I am doing.

There are no numeric items regarding the courtyard dimensions. The
courtyard here is a rectangular box, but can be much more complex for
integrated circuits and the like.

Above the graphic display section are buttons which are grayed out:
"Draw", "Print" and "Build Part". I guess this is due to this program
being a free viewer, rather than something which generates output data
to a file. For that, I guess I need another program and to pay for
using it.

To check that the above pad dimensions matched the graphic display, I
took a screenshot of each of the three footprints and measured the
pixels, using the 1.6mm Y dimension of the resistor's terminals as a
reference. The dimensions I measured were:

Most Nominal Least
S = space between pads 1.988 1.989 1.976
L = Length (X in Kicad) 1.276 1.070 0.872
W = Width (Y in Kicad) 1.863 1.756 1.651

So the numbers displayed with Footprint > Dimensions do seem to be a way
of determining pad dimensions from the IPC-7351B or perhaps C standard.

With a little arithmetic, these can be used to adjust the X, Y and
offset of the two pads in an existing 1206 3216M footprint from the
standard Kicad library, with the results being saved to my own library.

Repeating the exercise for a 16 pin SOIC, I chose one of the many lines
starting with footprint SOIC127P1032X265-16L87 (the graphic display
seemed to be the same for all I tried). By selecting Terminal > Density
Level = Nominal (N). Pin 1 is at the lower left and the component
legend has a special line near pin 1, and a dot, to indicate this pin.

For some reason the Print button lit up. However, it would not actually
drive the printer. A message appeared "Only print preview is enabled in
this free software version". This could be expanded to a high enough
resolution image for capture and printing. This doesn't tell me
anything I could not find out from: Footprint > Dimensions:

S (Y dimension in Kicad) gap between the inner edges of
pads, for instance 1 and 16 = 7.06mm

L (Y dimension in Kicad) pad length = 2.35mm

W (X dimension in Kicad) pad width = 0.63mm

Again, with a little arithmetic, I will be able to modify an existing
Kicad library footprint to have pads with these characteristics.

All this is for rounded rectangle pads. I then found that by using
Component > Settings > Default Pad Shape and Pin 1 Pad Shape, setting
both these to Rectangle instead of "Rounded Rectangle" or "Oblong" that
I could do all the above with rectangular pads.

Kicad's SMT pads can be rectangular, oval (apparently the same as
"Oblong" in this program), trapezoidal or circular - but not rounded
rectangle.

The component legend would need to be done by eye, and likewise the
courtyard, but these are not critical.

Assuming this standard and the software provides reliable guidance,
perhaps this is a good way of deciding on SMT pad details without
relying on an arbitrary choice of manufacturer's datasheets (and so
whatever assumptions they made in designing the recommended footprint)
and without trusting anyone else's judgement.

Since I have no experience with SMT assembly (and keen not to learn
about it the hard way) this seems like a good choice for me, unless I
have reason to use dimensions other than what this software recommends
for Normal/Nominal density.

- Robin
Clemens Koller cko@embeon.de [kicad-users]
2016-02-23 16:55:11 UTC
Permalink
This post might be inappropriate. Click to display it.
Robin Whittle rw@firstpr.com.au [kicad-users]
2016-02-24 06:13:22 UTC
Permalink
Hi Clemens,

Thanks for your PDF file with Kicad-friendly pad specifications for
various chip resistors or capacitors.

I guess from this that the higher (thicker) package of many chip
capacitors compared to the heights of chip resistors in the same package
size does not cause you to use a different footprint.

You mentioned that rounded rectangle pads are an "upcoming feature" in
Kicad. I can't see mention of this in the Kicad roadmaps:


http://www.ohwr.org/projects/cern-kicad/wiki/WorkPackages

http://ci.kicad-pcb.org/job/kicad-doxygen/ws/Documentation/doxygen/html/v5_road_map.html

https://github.com/KiCad/kicad-source-mirror/blob/master/Documentation/development/road-map.md

but I found this message which mentions some not yet fully developed
patches:

https://lists.launchpad.net/kicad-developers/msg16765.html

There's no option for rounded rectangles in the Footprint Editor of the
latest nightly (2016-02-22 BZR 6579, Git 8cb1f39).

I used the Library Expert for IPC to display the dimensions of the
rounded rectangle pads of a RESC2012X50L35 (0805 resistor) footprint.
The dimensions did not change when I selected Components > Settings >
Default Pad Shape = Rectangle. So I guess the rounded or not status of
the pad does not have a significant effect on the optimal dimensions of
the pad.

So I think that if and when rounded rectangles become available in
Kicad, it will be a simple matter to convert existing footprints to
using them - without the need to choose new dimensions.

My footprints now follow your naming suggestion:

2012M-0805
3216M-1206

The Library Expert for IPC uses these values:

RESC2012X50L35

Nominal Least (actually highest density)
S = space between pads 1.08 1.08
L = Length (X in Kicad) 0.92 0.72
W = Width (Y in Kicad) 1.42 1.32

RESC3216X63L44 (1206)
Nominal Least (actually highest density)
S = space between pads 1.98 1.98
L = Length (X in Kicad) 1.07 0.87
W = Width (Y in Kicad) 1.75 1.65


Your recommendations are:

Pad size X Y X-offset Therefore, space between

2012M 0805 1.00 1.30 0.90 0.80
3216M 1206 1.20 1.80 1.40 1.60

Combining this info:

2012M 0805
Nominal "Least" CK
S = space between pads 1.08 1.08 0.80
L = Length (X in Kicad) 0.92 0.72 1.00
W = Width (Y in Kicad) 1.42 1.32 1.30

3216M 1206
Nominal "Least" CK
S = space between pads 1.98 1.98 1.60
L = Length (X in Kicad) 1.07 0.87 1.20
W = Width (Y in Kicad) 1.75 1.65 1.80

So your pads have a greater X dimension and a reduce X space between them.

- Robin
Clemens Koller cko@embeon.de [kicad-users]
2016-02-25 00:25:41 UTC
Permalink
Hello, Robin!
Post by Robin Whittle ***@firstpr.com.au [kicad-users]
Thanks for your PDF file with Kicad-friendly pad specifications for
various chip resistors or capacitors.
I guess from this that the higher (thicker) package of many chip
capacitors compared to the heights of chip resistors in the same package
size does not cause you to use a different footprint.
That's true.
For small R L C components in 1005M..3216M I didn't see the necessity
to differentiate the heights yet.
Some inductors (in my table: L3225M, L4532M) might need to be tweaked
depending on the actual shape of the metalization of the components.
Post by Robin Whittle ***@firstpr.com.au [kicad-users]
You mentioned that rounded rectangle pads are an "upcoming feature" in
It's not in the official BZR yet...
I would expect it won't get pushed until it got some seriouse testing.
Unfortunately I was still not able to spend time on this more in detail. :-(
Another issue is that RRs demand some changes in the file format
and might break backward compatibility.
Post by Robin Whittle ***@firstpr.com.au [kicad-users]
I used the Library Expert for IPC to display the dimensions of the
rounded rectangle pads of a RESC2012X50L35 (0805 resistor) footprint.
The dimensions did not change when I selected Components > Settings >
Default Pad Shape = Rectangle. So I guess the rounded or not status of
the pad does not have a significant effect on the optimal dimensions of
the pad.
That's true or that's what I would expect as well.
I wouldn't expect more or less tombstoning when you work with plain
rectangular pads. The RR stuff is more targeted to get better AOI yield
as well as less cleaning cycles for your stencil.
Additionally, in high-density designs, RRs can help to save some board
space to escape a pad shape without creating acid traps (I am nit-picking).
Post by Robin Whittle ***@firstpr.com.au [kicad-users]
So I think that if and when rounded rectangles become available in
Kicad, it will be a simple matter to convert existing footprints to
using them - without the need to choose new dimensions.
Yes. I did so in my commercial tool.
RRs free up a bit of routing space and relax some design rules.
Going back from RRs to rectangles is a bit more difficult.
Post by Robin Whittle ***@firstpr.com.au [kicad-users]
2012M-0805
3216M-1206
I am not using the imperial stuff anymore and I didn't miss them after
two designs in metric world only. ;-) But that's all up to you.
For example, my partnames are called: C-1608M-104-50V-X7R for a 100nF MLCC 50V X7R capacitor
(-5P would be added for a +-5% tolerance when needed).
Whereas the footprint is simply a: C-1608M
The component height is not associated in the footprint/pad shapes in this case.
All the information rests in an SQL database anyway and gets generated to Kicad
world on demand.

I.e. DIO-CGA0402MLC05G (Bourns) is assigned to a bipolar diode footprint DIO-BI-1005M
with obviously no orientation information in the footprint.
DIO-CDSQR4148 (Comchip Tech) gets a polarized footprint DIO-POL-1005M with an
additional bar in the assembly drawings and a polarity dot in the silkscreen.
Post by Robin Whittle ***@firstpr.com.au [kicad-users]
RESC2012X50L35
Nominal Least (actually highest density)
S = space between pads 1.08 1.08
L = Length (X in Kicad) 0.92 0.72
W = Width (Y in Kicad) 1.42 1.32
RESC3216X63L44 (1206)
Nominal Least (actually highest density)
S = space between pads 1.98 1.98
L = Length (X in Kicad) 1.07 0.87
W = Width (Y in Kicad) 1.75 1.65
I am not really giving recommendations... ;-)
My footprints are adjusted to the dimensions where we - my manufacturers and I -
believe is most useful and generic for the manufacturing processes we use, which
is usually regular reflow with/without nitrogen as well as vapour phase soldering
and we are still able to land the flying probes of a Spea 4040 on the component
pads. It is definitely not optimized for manual soldering.
Post by Robin Whittle ***@firstpr.com.au [kicad-users]
Pad size X Y X-offset Therefore, space between
2012M 0805 1.00 1.30 0.90 0.80
3216M 1206 1.20 1.80 1.40 1.60
2012M 0805
Nominal "Least" CK
S = space between pads 1.08 1.08 0.80
L = Length (X in Kicad) 0.92 0.72 1.00
W = Width (Y in Kicad) 1.42 1.32 1.30
3216M 1206
Nominal "Least" CK
S = space between pads 1.98 1.98 1.60
L = Length (X in Kicad) 1.07 0.87 1.20
W = Width (Y in Kicad) 1.75 1.65 1.80
So your pads have a greater X dimension and a reduce X space between them.
I was rounding some dimensions to 0.05mm or 0.025mm to have metric traces in a
metric routing grid easily aligned an centered. But that's mostly cosmetics.
Reducing X space was the main improvement to reduce tombstoning in some processes.
Adding or keeping X length still allows the flying probe tips to land.

Again: talk to your manufacturer... YMMV.

Regards,

Clemens

Loading...