Bug: Fiducial Inaccuracy

Post Reply
Jet
Posts: 100
Joined: Mon Apr 17, 2017 4:13 am

Bug: Fiducial Inaccuracy

Post by Jet »

I think there’s an issue with Fiducial positioning in the latest version of the software, Juku: Please could you confirm.

To reproduce:

1. Home and click On Run Job and Load “HelloWorldJob.csv”

2. Click Re-measure (also happens on “Place All”) and check all the Fiducials are centered and click OK on each one.
For each Ficudicial note the current X/Y Location, for mine this is:
Fid4: 43.732, 27.807
Fid3: 44.592, 56.625
Fid2: 11.151, 58.588
Fid1: 11.526, 26.010

3. Visit the Job table and look at X, machine and Y, machine for each of the fiducials
Fid4: 43.754, 27.828
Fid3: 44.586, 56.646
Fid2: 11.157, 58.588
Fid1: 11.553, 26.015

Note: Every Fiducial does not match the positions in 2, should they match?

Although the differences in this example seem small, they vary, and on 0402’s and some boards are large enough to cause alignment issues, clicking on “Measured location” for the fiducials or the components results in a significant offset.

And entering the values from 2, results in the correct positioning as opposed to the measured ones stored during the “Fiducial Measuring” process.
Jet
Posts: 100
Joined: Mon Apr 17, 2017 4:13 am

Re: Bug: Fiducial Inaccuracy

Post by Jet »

Ignore, figured out what’s happening. I’ll leave it up here in case anybody else runs into it as it’s none obvious behavior.

How the Fiducial locating code works (and also homing and tape hole detection and rectangle detection etc), is it measures the location of the object in X/Y, and then if it’s above MoveTolerance, it moves and remeasures again until the X/Y error is below MoveTolerance, then it returns X/Y of the object (which will be some value below MoveTolerance).

This means visually it does the following typically:

(MoveTolerance is 0.1mm for Fiducials)

It locates to somewhere near the Fiducial, then measures, then moves to the Fiducial, measures again (but doesn’t move because it’s below MoveTolerance), then stores the X/Y error and adds it to the current position in X/YMeasured in the Table.

Which is fine unless you have some instability in the optical detection of the Fiducial (which is normal in the case), so what I saw happening was:

A Fiducial located perfectly in camera, but then a different position in the table which wasn’t in the Center, I.e. the 2nd measurement after it was below move tolerance was incorrect due to instability in the vision pipeline.

The problem is, removing that instability in the vision pipeline is tough, there’s always some jitter, so just because a Fiducial is Center in camera, doesn’t mean it really is.

Conclusion: So if Manual Confirmation for Fiducials Is enabled, and the prompt to confirm the Fiducial position pops up when running a job, be aware that the position seen on screen on the camera you’re confirming maybe up to 0.1mm off. Because you’re measuring multiple Fiducials, the error could be up to 0.2mm across the PCB which is significant when placing 0402s.
JuKu
Site Admin
Posts: 1114
Joined: Thu Feb 14, 2013 3:06 pm
Location: Tampere, Finland
Contact:

Re: Bug: Fiducial Inaccuracy

Post by JuKu »

You explained it better than I could have done, thank you. The manual confirmation is there for tight boards and cases where vias or pads are used instead of a real fiducial, to ensure that a right board feature is taken.
Post Reply