Fiducial Footprints

I’ve been looking at the fiducial footprints in Fiducials.pretty, and comparing them to the fiducials in MacroFab’s library.

Some questions:

  • Why are the fiducials in the KiCad library so much bigger than the fiducials in MacroFab’s library?
  • Am I correct in thinking it’s weird that MacroFab’s fiducials have paste on them? A fiducial doesn’t connect to anything, so why would it need paste?
  • How do I determine which fiducial to use?

I’m making an open-source design, so I want fiducials that will be broadly useful, regardless of the assembly house used.

My current inclination is to use the MacroFab MF_Aesthetics-FIDUCIAL_0.5MM because it’s the smallest, but then remove the paste from it because that seems weird. However, I wanted to see what someone more experienced thinks, since I really know nothing about this subject.

IPC7351: Size and Shape of Fiducial: The optimum fiducial mark is a solid filled circle.The preferred diameter of the fiducial mark is 1.0 mm. The maximum diameter of the mark is 3.0 mm. Fiducial marks should not vary in size on the same PCB more than 25 μm. A clear area devoid of any other circuit features or markings shall exist around the fiducial mark. The minimum size of the clear area shall be equal to twice the radius of the mark. Material: The fiducial mark may be bare copper, bare copper protected by organic coating or metal plating. If solder mask is used, it should not cover the fiducial mark or the clearance area. It should be noted that excessive oxidation of a fiducial mark’s surface may degrade its readability.

IPC7351C defines fiducial sizes for all three tiers:

Level A (Most) = 40 mil (1.0 mm) with 80 mil (2.0 mm) solder mask & keep-out
Level B (Nominal) = 30 mil (0.75 mm) with 60 (1.5 mm) solder mask & keep-out
Level C (Least) = 20 mil (0.5 mm) with 40 mil (1.0 mm) solder mask & keep-out

It is not uncommon these days for fiducials to be solder coated (HASL).


I don’t know how are set the fiducials in the Kicad library or MacroFab.

Fiducials don’t need paste in my opinion too.

My fiducials are 0.8 mm, 1.0 mm and 1.27 mm depending on the assemblers’ requirements. My “standard” is 1.0 mm if there isn’t a specific assembler.

Thanks! That’s very helpful.

However, it would seem then that most of the fiducials in the KiCad library (with the exception of Fiducial_1mm_Dia_2.54mm_Outer_CopperTop) are not compliant since they are not solid filled circles (the “modern” fiducials are outline circles, and the “classic” fiducials are a crosshair pattern). Also, the “modern” and “classic small” fiducials are just a tad bigger than 3.0mm, and the “classic big” fiducials are over 10.0mm!

So to be clear, that means the fiducial should include the F.Paste layer?

Oh, one more question: the fiducials in the KiCad library include both a “top” and “bottom” version of each fiducial. Is there a reason for this, rather than just having the footprint on F.Cu and having the user “flip” it if they want it on B.Cu?

The kicad fiducial lib has not been touched in the last 3 years. This means the footprints in there are unchanged since the first v4 release. (Before v4 the libs have not been on github. So i can’t really tell how old these footprints really are.)

If you are motivated you could rework this lib and bring it up do date.

1 Like

Sure, I can do that. I’d just been hesitant to do that without understanding the subject better, but @1.21Gigawatts’s quotes from IPC7351 have come a long way to bringing me up to speed.

1 Like

It seems like Fiducial_1mm_Dia_2.54mm_Outer_CopperTop is very close to what we want, and perhaps I should make three variants, to cover levels A, B, and C:

  • Fiducial_1mm_Dia_2mm_Outer
  • Fiducial_0.75mm_Dia_1.5mm_Outer
  • Fiducial_0.5mm_Dia_1.0mm_Outer

I’m inclined to just create them on F.Cu and let the user “flip” it if they want the fiducial on the bottom.

I’m still not sure whether to include F.Paste or not. Or should I create a version with and without paste for each of the three sizes?

I think the best option might be to simply make one with and one without paste. Then the user can choose which ones they want based on manufacturer requirements.


To get the 2mm circle free of soldermask, should I do what Fiducial_1mm_Dia_2.54mm_Outer_CopperTop does, and use the “Solder mask clearance” in the “Local Clearance and Settings” tab of “Pad Properties?” Or should I create two pads: a 1mm pad on F.Cu, and a 2mm pad on F.Mask?

The KLC scripts don’t like either of these approaches, so I was wondering which was preferred?

1 Like

This text confused me.

A fiducial must be created in the top copper layer.

All of the exposed copper (including the fiducial) will end up being coated to the board surface specifications; either HASL (and Lead Free HASL), OSP, ISn (Immersion Tin), IAg Immersion Silver), and ENIG (Electroless Nickel Immersion Gold).

Also, from what I have read, the fiducial should not have solder paste, and should be on both sides of the board.

One additional requirement is that the fiducials not have an even number of them, and be placed on an uneven grid. This allows the machine to know what side of the board it is working on.

For accuracy fiducials must be on a copper layer to ensure alignment between the fiducials and the pads that are also on that copper layer. Fiducials on a silkscreen layer would be useless, as would fiducials on an inner copper layer. If you do not have any smd components on the top layer then there is no need for fiducials on the top layer. If you have smd components on the bottom layer then you need fiducials on the bottom layer, otherwise fiducials on the bottom layer serve no purpose.

This is something you can discuss with your fab and should be inline with the requirements of the equipment that will be assembling the boards. But all of these surface treatments are acceptable according to IPC7351.

There is obviously no need for solder paste. See above regarding both sides of the board.

An even number would be fine so long as the pattern is not reversible. Three global fiducials, spaced as far apart as possible, are usually preferred. The grid is irrelevant.

There are global and local fiducials, you should be aware of how and when to use both.

So where lies the source of your confusion?

1 Like

My proto boards are ENIG finish on copper, and you stated that:

Your text implies that if I add a fiducial on my copper layer, that will be finished ENIG, that the fiducial copper will be plated other then then the rest of the board.

No such implication was intended. It used to be that bare copper fiducials were preferred regardless of surface treatment. Plated fiducials are less of a problem these days. I mentioned HASL to differentiate between solder coated due to solder paste and surface treatment.

1 Like

That’s what I would’ve thought, so I’m puzzled why the MacroFab fiducials include the F.Paste layer.

It’s probably a mistake. Why not ask MacroFab?

Either way, it doesn’t matter, since the fiducial is only used for P&P.

I’ve submitted a PR for three new IPC7351-compliant fiducial footprints.

Based on the comments from @1.21Gigawatts and others, it sounds like there is no need for paste, so I created the footprints without paste.

I went with a single pad with nonzero “Solder mask clearance.”

1 Like