Librarians: school me on fiducials

Some have pins, some don’t. Some fiducial footprints have pads, some don’t.

Is there a rhyme or reason here? When you insert a symbol KiCad uses the pin/pad counts to offer up footprint assignments. If these don’t match between the fiducial symbol and footprint, then the footprint won’t get offered up.

So are the pin/pad counts used to provide better matches, or are they used for something else and should be ignored by the footprint selector?

cc: @wykys (and a bunch more chars to keep the bot happy)

Not a librarian here, but in my experience fiducials are for optically aligning layers or locating an origin for part placement.

If the fiducial in question’s purpose is to assist optically aligning layers then a simple crosshair graphic on all layers should suffice. If it makes it easier (for drawing the fiducial or DRC) to use a custom cross-shaped pad on all the copper layers (or even all layers) then I would think for the way KiCad works it would be best to have a single no-connect pin on the schematic. Though this might make it hard to have the fiducial on the silkscreen layers if one outputs to Gerber with the “remove silkscreen from pads” flag turned on. So maybe for these fiducials it would be best to not have pins and pads.

If the fiducial in question’s purpose is to provide an origin for part placement then AFAIK pick and place machines will be looking for a small, round, exposed pad. Again, for the way KiCad works, one would want a single no-connect pin on the schematic.

For footprint assignments, I would think a combination of pin/pad count and keyword would be helpful for choosing the correct footprint depending on the intended purpose of the fiducial.

1 Like

AFAIK symbol pins are taken into account for selecting a correct fooprint, only when using footprint assignment tool from schematic editor.

Symbol pin count number is omitted from symbol footprint filters because of that.
Currently there is one fiducial symbol in the libraries with no pins at all and Fiducial* as its footprint filter.

About footprint side,

currently there are 8 footprints for fiducial use:

with one no numbered pad.

I suspect a confusion with mounting holes if a fiducial symbol has a pin…

I hope this helps!!

(All the above info are about current master branch)

I was unable to find something with no pad at all, @JeffYoung are those footprints from the official repos?

@Aris_Kimi in your second graphic, the dropdown that currently reads “No default footprint” will be populated based on the symbol’s pin count and footprint filter. This is what I’m trying to figure out whether or not it’s reasonable.

(In CvPcb we give the user the option of which filters they want to use, so we don’t have to worry about what’s reasonable.)

which ones? every single fiducial I have ever used, seen and requested to place has been an exposed copper pad with exposed substrate.
I am also sure this is captured in the IPC documents w.r.t. what a fiducial is.

1 Like

It’s possible this was changed at some point. My libraries (which have some fiducials without pins and pads) are from 4.0.

Here it is expanded:

I believe it is reasonable…

Ahh… OK, so the footprints have un-numbered pads. These are not counted when doing the pin/pad count compare (as they’re assumed to be heat-sink pads or the like).

1 Like

I tried to add a number(or text) in one pad on one of those footprints, save the library and restart KiCad, but still all of them 8 were still there in the dropdown… Could this be a bug?

I haven’t checked CvPcb TBH…

Sort of, but known. If the symbol has no pins then we ignore the pin filter.

(It’s the opposite that will get you in to trouble: add a pin to the symbol but don’t give the pad a number.)

1 Like

Thank you once again… The need for a new issue has now been eliminated :slight_smile:

The goal of fiducials is indeed as placement references for footprints during the Pick and place process, and for this reason they are always exposed copper, because placement of different layers have production tolerances, and the footprints have to be aligned with the copper layer for proper soldering.

Normally fiducials are recognized by cameras and corrections are automatically calculated by a PC. But it’s also possible that a camera is put in a fixed position and a PCB is moved manually by tweaking a knob. fiducials are usually placed near at least 3 corners of the PCB, because with more room between the fiducials, rotation of the PCB in the PnP machine can be calculated more accurately. Fiducials should not be placed in a perfect rectangle or square, because then a rotated PCB is not detected.

PCB’s are also not perfectly uniform. The end result is quite stable, but during the production process the PCB’s can deform a bit, and fiducials are a way to compensate for this. For fine pitch footprints, especially when they are big, often extra fiducials are placed near the footprint to more easily measure and correct for local deformation of the PCB.

In KiCad, pads without a pin number are sometimes called “aperture pads”, and these are not restricted to fiducials. These are for example also used in some of the footprints with thermal via’s, and also for footprints with big exposed GND pads. For these, it is common that there is a big pad on a copper layer for GND, but this pad does not have anything on the solder paste layer. The solder paste layer can then have 4 aperture pads in the corners, so the right amount of solder for that pad is deposited.


We have two different pick and place machines at work. Both require manual focusing of the fiducials, using a camera. In the utility, a crosshair is displayed over the camera images. That’s why I have a fiduciary containing both a round surface and a cross, this variant worked best for us to target. We also have gravure printing at work, for applying solder paste using stencils. We use fiducial round pads to align the templates, which also have a layer of paste.

Unfortunately, since my fiducial is made up of multiple pads having the number 1, the eeschema filter housings do not work properly in this case. The official symbol does not show my footprints because they have numbers. My symbol does not show official footprints because they do not have pad numbers.

Demonstration of fiducial mixes on a machine-mounted board:

Example of filter function:

1 Like

I think you should just have to remove that nc pin entirely from your symbol…and also the pin NUMBERS (Edited) from the footprints. In order to mimic fiducials as in the official repos. There is no need for a connection, so neither for a pin.

I’ve not used fiducials on any of my hobby boards. I’ve purchased boards from JPLPCB and OSHPark with no issues. Always 2 layer.

I know our boards laid out by PCB designers (pre-Kicad) always have fiducials.

So my questions is: Are fiducial still useful in todays world of automated board mfg?

It depends on the application, and the accuracy required.

From a minimal relevant experience I had, I concluded that,
If the PnP error for a long travel distance can cause a problem later (small misplacement can cause paste shorts etc…) the use of fiducials near “sensitive” components almost eliminates this risk.

There is a whole different set of parameters if a hobby turns into a profession.

Short answer, yes…

Actually in my case a profession to a Hobby.

I realize as time goes on things that were difficult are not easy. However it would have been soooo much easier if present day Kicad and fast turn around boards were available when I was designing products.

First, just to be clear:
Fiducials have no function whatsoever during the manufacturing process of the bare PCB itself. Their sole purpose is to measure the location of the PCB inside the Pick and Place machine for placement of the parts on the footprints.

Because of the many dialects in gerber files and different programs and people who make those files, the people (and software) who do the fine tuning of the PnP machines have gotten used to sloppy data, and good at guesswork.

Any (exposed) pad can be photographed and it’s location used to fine adjust PnP data. But if you want to verify the PCB location inside the PnP machine (after the transport belt has stopped) and after the solder paste has been printed, the pads are no longer visible, but the fiducials still are.

In the Gerber X2 format, pads can be marked as being a fiducial. This is yet another step to make Gerber files more robust. Instead of guessing (or human intervention) where the fiducials are, the PnP machine can know it from reading the Gerber data.