Robin Whittle email@example.com [kicad-users]
2016-02-23 14:52:58 UTC
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
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
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
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:
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):
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"
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:
(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:
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
"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) ï¬le format for the library. Also it seems
that it already uses the yet-to-be-published C revision of the
This may explain why the program presents rounded rectangle pads.
However, the download page:
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:
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:
Resistor, chip; 3.20mm length, 1.60mm width, 0.63mm high
Inch 1206, Metric 3216
Two other footprints are for resistors both with a greater height of 0.76mm:
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
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:
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
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
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:
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
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
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.