Closed antoniovazquezblanco closed 5 years ago
These might simply be there for legacy reasons. I would suspect that they where unchanged in the lib for a very long time. So if you have the time to update them to better standards go ahead.
As far as i am aware it is kind of untypical in todays environment to include them at all. At least on the user side. The fabs might add them outside of the board area. (They will however use their own tools and specialized "footprints" for this.)
I just want to chime in on the use of fiducials: I am currently in the process of getting a board of mine fitted in a fab.
Most fabs I spoke to and that sent me their guidelines prefer and often demand fiducials.
Also look into projects like: https://github.com/openpnp/openpnp Optical recognition and recalibration is an important step and fiducials are used.
Could you please collaborate with us and comment on the state of existing fiducials?
If you, @herostrat, would be able to answer any of the questions above it would be useful for us. If you are able to gather any information on the latest standard practices for fiducials and you comment here I may be able to update existing ones to be of better quality.
It would be even better if you could open a PR to do this haha.
Yeah no problem, would love to help out. I was a quite busy the last months with my masters so my contributions were not as much as I hoped. Currently there is a bit of downtime to help out.
One important addition for me was already added from someone else (https://github.com/KiCad/kicad-symbols/pull/1131). With it you don't need to fix the footprint in order to get a correct POS file as you all correctly found out in https://github.com/KiCad/kicad-footprints/issues/1045.
Firstly let's check on the standard. Fiducial marks are defined in a SMEMA standard. I could not find a original document I could link to but:
ohm.bu.edu/trac/edf/raw-attachment/wiki/DFM/PCA_Guide.pdf p.25:
1). Shape: The optimum fiducial is a solid filled circle. 2). Size: The minimum diameter of the fiducial mark is 0.040” (1mm). The maximum diameter of the mark is 0.060” (1.5mm). 1 mm is preferred. Fiducial marks should not vary in size on the same PCB more than 0.001” (0.025mm) 3). Clearance: A clear area devoid of any other circuit features or markings shall exist around the fiducial mark. The size of the clear area shall be equal to the radius of the mark. A preferred clearance around the mark is equal to the mark diameter. 4). Material: The fiducial mark may be bare copper, gold, bare copper protected by a clear anti-oxidant, nickel or tin plated, or solder coated (HASL). The preferred thickness of plating or solder coating it 0.0002” to 0.0004” (0.0005 to 0.0010mm). Solder coating should never exceed 0.001” (0.025mm). If solder mask is used, it should never cover the fiducial mark or the clearance area. It should be noted that oxidation of a fiducial mark’s surface may degrade its readability. 5). Flatness: The flatness of the surface of the fiducial mark should be within 0.0006” (0.015mm). 6). Edge Clearance: The fiducial shall be located no closer to the PCB edge than the sum of 0.200” (5mm) (SMEMA Standard Transport Clearance) and the minimum fiducial clearance required. 7). Contrast: Best performance is achieved when high contrast is present between the fiducial mark and the PCB base material.
This gets verified by a bunch of fabs that post guidelines online for their workflow: www.accutroninc.com/pdf/download/fiducial.pdf https://www.dischereit.de/tipps/faq/passermarken-fiducials http://www.denatechnologies.com/capabilities/pcb-fiducial-guidelines/
Although I am not allowed to link or copy from documents I got from the fabs I communicated with, they all basically say the exact same thing.
Interestingly there are more "allowed" shapes fiducials can exist. Examples are:
Unfortunately I could not find a concrete specification on the sizes and materials needed for them. The should be used if the traces/footprints on the PCB could be confused with the fiducial.
I think the best step is to include only what we know for sure (and what seems to be the accepted and used standard in the industry).
Two fiducials for the standard way:
The fiducial_classic in need to look into a bit more. I will check with one of the fabs if they can point me to a specification, although imho they are not really needed.
Sidenote: Here is an article on are fiducial markers necessary (if you cannot take my word on the requirements of fabs alone :D) https://resources.altium.com/pcb-design-blog/are-fiducial-marker-placements-on-pcbs-still-necessary-with-modern-manufacturing-capabilities
and a bit more detail on the why: https://en.wikipedia.org/wiki/Fiducial_marker#Printed_circuit_boards
Update: I found a more detailed specification in the IPC-SM 782 https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf
Also I found this forum post: https://forum.kicad.info/t/fiducial-footprints/8369/15 which resulted in this PR: https://github.com/KiCad/Fiducials.pretty/pull/2
I will try to fix the rest of the exisiting fiducials according to this standard and submit a PR.
Is it ok if I delete the fiducials that do not seem to be correct? I think having only the "standard" ones is good enough, because if a user wants to have different ones or a specific fab wants to deviate from them, it is easy enough to design your own.
I just called two fabs.
The unanimous assertion is that for nearly all cases they prefer and want round fiducials in the dimension of which I wrote/the forum post produced.
Silkscreen marks are not recommended at all and should not be used.
There are a view cases in which the soldermask opening can and should be different (in most cases quadratic) if otherwise the orientation of the board is not discernible because of symmetry.
I do not think bottom layer fiducials are needed at all.
I propose to delete all fiducials except:
I do not know how you guys handle backwards compatibility? No symbol has an atomic footprint to any fiducials associated to it.
If it is ok for, I will create a PR removing the other fiducials.
@KiCad/librarians What do you think about the proposal?
Thanks!
@herostrat This is great research! Thanks for pulling this all together.
Note that Figure 3-13 of IPC-SM-782 shows some other fiducial styles and their sizes. I've never seen it used and am OK removing them, though.
I've typically used a 1mm fiducial everywhere but have been asked by some CMs to use a 1.5mm fiducial (and it's referenced in several of the documents/sites above), so I'd also include that pad size.
Also, should we include the 3R mask diameter instead of just 2R? My own experience is that using the smaller size is probably the most common by far, and if it's requested we could add it later.
Lastly, I think the naming could even be simplified a bit. How about this (adding the one I suggested):
Fiducial_0.5mm_Mask1mm
Fiducial_0.75mm_Mask1.5mm
Fiducial_1mm_Mask2mm
Fiducial_1.5mm_Mask3mm
With regards to deleting them, I would think perhaps they get moved to an obsolete folder (it doesn't yet exist for footprints) for 5.1 (unless we decide to push that back to v6). That gives us a chance to get feedback from users that are impacted and tweak our process.
moving them to obsolete might indeed be the best option. This allows users who want them to easily get them (getting them from git might be a bit too much for some of our userbase)
I like the idea of also including the 3R variants. I personally prefer them if there is enough space.
That would give us:
The description would be something like this: Circular Fiducial, %f bare copper, %f soldermask opening; (additional note)
With additional note beeing for:
The updated fiducials are now merged.
Thanks for the fast responses!
Thank you!
Some of those fiducials in the lib are really massive. Should they still exist? What are they used for? Do they conform to any standard?
Could you please explain to me why there are fiducials in bottom layers with silk refdes in the top ones? Shouldn't bottom layers use mirrored top layer fiducials? Why do those exist?