This article is made by use of a nightly build! It is expected that later nightly builds and by extension the stable version 6 are similar to how it is described in this article but there can be small differences.
The nightly build used for this tutorial is from
May 22 2021 with git hash
This tutorial will first give a general introduction followed by two different workflows of how to use KiCad to check if a footprint fits your component.
What to Check?
The first and most important part to check is if the pads are at the correct place and have the correct size for your personal requirements.
You will most likely also want to check if graphical layers follow your personal rules and therefore fit into your project.
And of course you might want to ensure any metadata is correct (most likely the footprint description).
Of general help especially for enforcing a consistent look and feel can be verification scripts like the one developed for checking contributions to the official library. Feel free to adapt it to your personal needs.
What Should be Dimensioned
Dimension the footprint as closely as possible to how your reference drawing is made. That way you do not need to make too many calculations which reduces sources for errors.
Where to get Reference Measurements
To check a footprint you will need to use the dimensions given in the datasheet. These drawings are typically found near the end of datasheets. However, they can be anywhere, including in separate documents.
Pad Sizes and Positions
If you are lucky then there might even be a suggested footprint to be found in the datasheet. This is definitely a good starting point. However, keep in mind that you might want to choose to have differently sized pads to better fit your production process. For example, you might want to increase pad sizes if you will hand solder your PCB.
You might also opt to use an industry standard like IPC-7351B to calculate a footprint better fitting your production parameters than the one suggested in the datasheet. This can also be used if the datasheet gives no suggestion for a footprint. More details on that can be found in the how to make a footprint tutorial.
In any case you will want to have some drawing that constrains the position and size of all pads. In this tutorial we will use the suggested footprint as given in the datasheet.
Graphical Outlines and Courtyard
You will want to have some outline to indicate the body size on for example the Fab and Silk layers. As these are not mission critical, you have a lot more freedoms. You might however find that it helps to have the nominal body size on some layer as it is often used as a reference to constrain pads. The official library requires the nominal body outline to be on the Fab layer (and this must be exact).
As shown in the next section, you might not directly find the nominal dimension in the datasheet. It could be that you need to calculate it from the minimum and maximum values. (Assuming you care about the exact outline. You can of course decide that it just needs to be close enough for your personal needs.)
The courtyard outline is intended to help ensure that you have enough space for tooling. This should take into account any tooling needed for populating the board, for soldering it and potentially to rework the board. It is up to you to decide what clearances to use (and therefore how to check that a given footprint fits your needs). The official lib specifies component specific rules see https://klc.kicad.org/footprint/f5/f5.3/
How to read dimensioned drawings?
Reading dimensioned drawings is a skill that needs a bit of knowledge. There are a lot of differing standards how such drawings should look like. And some organizations do not even follow an official standard. So it will need a bit of common sense to be able to read datasheets.
In this section a short basic introduction into reading drawings is made. For more details refer to either a standards book or a tutorial for mechanical engineering. A few examples are
Be aware that datasheets are sometimes so badly made that it is basically impossible to tell what the designer wants to specify. In such cases one might need to contact the manufacturer or buy a part and measure the dimensions that are left unclear (the latter might not be an option for somebody producing at large scales as tolerance ranges can not be determined this way, while the former might be an unfruitful exercise for somebody working with low production volumes as one might be ignored by the manufacturers customer support).
The Dimension Object
A dimension consists of the size specification, a line parallel to the measured direction with some end markers (typically arrows) and potentially helper lines orthogonal to the measured direction connecting the measurement to the object feature.
This is best shown with examples. Note that these examples do not conform to any standard! (The arrow shapes are wrong). Nor are the drawings to any scale.
Simple example to introduce the dimension object.
The measurement line specifies the direction of measurement. Both of these dimensions are therefore communicating the horizontal size of the object.
Dimensions can be aligned to any direction. The left dimension specifies that this slanted line is 12 long while the right gives the vertical dimension as 5.
The arrows as well as the size specifier can be moved outside the helper lines for short dimensions. In this case the horizontal dimension of this rectangle is specified as having size 1.
Tolerance Specification for Dimensions
The dimensions will typically not be given as a single number but with a tolerance range. These ranges can be specified as follows:
- Nominal value plus symmetrical tolerance range. This is typically written with the syntax “nominal value” ± “tolerance”. (the separator can also be written as +/- or ∓depending on what tool was used to create the drawing)
- Nominal value plus asymmetrical tolerance range. This is typically written with positive and negative tolerances prefixed with their sign and placed on top of each other after the nominal value (in smaller font). But there are also datasheets that place the tolerances just one after the other.
- Minimum and maximum value. This is often used for tabular communication but can also be done in the drawing directly. For the latter it is common that the maximum value is placed above the minimum value with a horizontal line between them. But they can also be on the same line separated with some character (I have seen “…”, “-”, “/” in different datasheets)
- Minimum and maximum plus nominal. Similar to only minimum plus maximum but with nominal added (basically the same syntax used with nominal sandwiched between the other two).
- Tolerances drawing global In some drawing styles the tolerances are not added to single measurements but are defined global to the drawing itself. Either via a single note that binds the tolerance to the significant digits or by giving some indicator pointing to a tabular tolerance specification.
Both the imperial and metric system are in use for dimensioned drawings within datasheets. It depends heavily on the organization creating the datasheet which measurement system is used in the drawing or if both of them are given. In all cases this is always specified somewhere within the drawing itself.
Datasheets for Multiple Components
Some datasheets define dimensions for a full series of components. A typical example is the datasheet for connectors available for many pin counts. In such documents, dimensions that differ between the described parts are typically marked with a letter in the drawing and specified in a table. An alternative is that a specific dimension is given as an equation (example
(pincount - 1) * pin pitch to describe the distance between the outermost pins)
The Example Component for this Tutorial Series
In this tutorial we will be checking the following footprint for correctness (it can be found in the official library since version 5).
Molex_Micro-Fit_3.0_43045-1215_2x06_P3.00mm_Vertical.kicad_mod (5.2 KB)
For convenience here a simplified drawing from the datasheet (removed unnecessary stuff to reduce clutter for this tutorial) with highlighted dimensions.