Fiducial locator. What is wrong ?

308 views
Skip to first unread message

Denis1024

unread,
Dec 1, 2020, 10:09:45 AM12/1/20
to OpenPnP
Hi, 
I'm starting with OpenPnP / Grbl

What is working : movements, CameraJog, the FiducialLocatorPipeline shows debug pictures with fiducials surrounded with red square 1.000. Correct.

What is not working : "performs fiducial check and update location ...". 

What I do : 
I have 2 fiducials with correct size in the job tab. The board is located with camera. 

I get this message just after the first fiducial (and therefore before the check of the second)

"Fiducial locator results are invalid because: x scaling = 0.89086 which is outside the expected range of [0.95000, 1.05000], the y scaling = 0.89086 which is outside the expected range of (0.95000, 1.05000], the board origin moved 14.5253mm which is greater than the allowed amount of 5.0000mm. "

The reticule and location are exactly on the edge of the PCB, the Fiducial is exactly at 8.57mm from the edge, So the board is exactly where it is supposed to be, and not at 14.5253 mm away.

Then the camera moves to the second fiducial, but once arrived at the position, I do not see any recognition, and no debug pictures are produced (but they are produced for the first fiducial) 
the camera moves around the fiducial and stops.

If I place the camera near the second fiducial, and then I start the process, it is the same behaviour, but inversed.

If I move the camera to the fiducials, the camera is exactly on the fiducials ± 0.1 mm.

So , it seems that all is correct. I do not understand the behaviour. Maybe I have a bug in the brain !

ma...@makr.zone

unread,
Dec 1, 2020, 11:11:49 AM12/1/20
to ope...@googlegroups.com

Hi Denis

Some Ideas:

  1. It seems the movement of your machine is not to scale. Use a ruler or graph/millimeter paper to verify. Check your steps/mm configuration in the controller.
  2. Alternatively check the E-CAD export/import i.e. whether the fiducial coordinates are correct.
  3. You would also not be the first person to export the wrong version of the E-CAD file ;-)

_Mark

--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/b26076ad-188b-4cd2-95f9-03072f1843d7n%40googlegroups.com.

tony...@att.net

unread,
Dec 1, 2020, 11:38:11 AM12/1/20
to OpenPnP
Are you sure you are getting the error message before the second fiducial is checked?  The software needs to locate two fiducials before it can even compute the x and y scaling.  Can you set your logging level to trace and post your log file?

Tony

Denis1024

unread,
Dec 1, 2020, 11:54:42 AM12/1/20
to OpenPnP
Hi, 
The steps/mm and files are correct. 
I just see something : during a movement, the fields X Y Z are updated immediately with the final values of the movement.
Grbl send "ok" just after the reception of a command, not when the movement is  achieved (normal for the planer), so the fiducial location process starts just after the movement command, not when the camera is on the target.

Now I'm looking for a workaround for grbl. I would prefer to not modify the code !
What do think about that ?

Thanks
Denis

tony...@att.net

unread,
Dec 1, 2020, 12:18:58 PM12/1/20
to OpenPnP
I don't use GRBL but I think you need to use G4 P0 to wait for motion to complete (instead of M400 on Smoothie) - I'm sure there are others here that know for sure.

Tony 

Denis1024

unread,
Dec 1, 2020, 12:46:52 PM12/1/20
to OpenPnP
Thank you Tony. It works perfectly !!
Now the adventure go on. To the next problem ;-)

Denis

SzymonP

unread,
Dec 14, 2020, 2:13:57 PM12/14/20
to OpenPnP
Hello guys,

I have problems locating this kind of fiducials: this is a 1mm x 1mm fiducial, HAL, as you can see I have also unmasked diameter of 2mm.

Could anyone please help me to get the pipeline detect those?

Best regards,

Szymon

fidloc_results_8036923867576038349.png

ma...@makr.zone

unread,
Dec 15, 2020, 3:20:22 AM12/15/20
to ope...@googlegroups.com

Hi Szymon

You seem to have HASL finish fiducials, those are hard to detect (as compared to ENIG). They act like a traffic mirror, actually showing a reflection of your camera and surroundings with fish-eye optics.

(Wikimedia)

You need to add a large ring shaped diffuser in front of your LEDs with the smallest hole possible for the camera to peek through. This will reflect brightly in the fiducial mirror. The diffuser must be as large and close to the PCB as possible, so the reflection goes right to the edge of the fiducial, despite the fish-eye optics. The bright reflection must go to the edge because that is the defining contour for the fiducial to give its visual position.

"Smallest hole + large and close" might be difficult, so I experimented with a funnel shaped transparent PETG 3D-printed diffuser. I printed it with a draft setting and the crude layers act nicely as a diffuser in front of the LED ring. It was discussed here:

https://groups.google.com/g/openpnp/c/zMPsM9u6KGQ/m/RQhSTRlkCgAJ


The top solution would be co-axial lighting with a 45° half-mirror in front of the camera. But that's quite complex to build/expensive to buy, it seems.

_Mark

--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.

SzymonP

unread,
Dec 15, 2020, 5:43:41 AM12/15/20
to OpenPnP
Thanks Mark,

I already have a dome tunnel for lights mounted, and it works quite well on everything else than those HAL fiducials. I thought that maybe I could create some template for this to compare like on advanced loose feeder? What do you think? I have already tried to add some plastic diffusers to get rid of those reflections, but it didn't help much. When it detects fiducials it seems like it's detecting some very small dot (significantly smaller than the specified 1x1mm - the camera is calibrated correctly though. Even when you go into the part itself it will draw the footprint on the screen and the size matches perfectly with the physical size).

Best regards,
Szymon

dome.PNG

ma...@makr.zone

unread,
Dec 15, 2020, 6:14:56 AM12/15/20
to ope...@googlegroups.com

Hi

it just seems that the dome is not well reflected at all. Is it only bright on the extremes?

> maybe I could create some template for this to compare like on advanced loose feeder?

Maybe, if what is reflected is very stable and if the HASL fids are also extremely regular. But I doubt the latter. Even the slightest change in solder curvature will throw off the light rays in completely different  angles.

_Mark

Mike Menci

unread,
Dec 15, 2020, 7:29:35 AM12/15/20
to OpenPnP
"it just seems that the dome is not well reflected at all. Is it only bright on the extremes?" Or camera is not looking Vertical but at angle Right to Left?

Mike Menci

unread,
Dec 15, 2020, 7:33:44 AM12/15/20
to OpenPnP
See this shades:2020_12_15_Fid_Shade.png

Marek T.

unread,
Dec 15, 2020, 8:37:17 AM12/15/20
to OpenPnP
Hi Szymon,

This dome lighting is still producing the shadow in the centre of the view. I know it, I've used it for few months. Better than many other projects but still sh* for HASL.
You can live with this HASL and non-coaxial lighting (which is the only solution IMO) adding offset in camera transforms, it means moving the centre some 3mm aside. A bit strange looking on the camea view but it will work better. Of course you have to change the camera position when you add this offset.

Coaxial lighting, mentioned by Mark, can be done with 3D printing and it is not horror-price if you'll find a cheap source for the half-way mirror.

Niclas Hedhman

unread,
Dec 15, 2020, 8:42:54 AM12/15/20
to ope...@googlegroups.com

Observation; JLCPCB uses drill holes instead of pads for fiducials.

Assuming a black/unlit surface behind the PCB, would that make the imaging easier to setup?

// Niclas

Szymon Pawela

unread,
Dec 15, 2020, 8:49:27 AM12/15/20
to ope...@googlegroups.com
Thanks Marek, you are correct, I have also checked with the camera offset picture taken before, and I have also put the board under the angle to get rid of the glare - in both cases the fid is being detected, but on the pipeline it does not show the red rectangle (maybe its a bug in the newest version, in the debug folder the photo with red rectangle appears correctly). 

Thanks guys for the support, I will eventually try to get rid of the reflections - I mean it's not a deal breaker for me, I have just located HALs manually until now, the software is f****** awesome and the machine was working extremely well. 

Will try different light diffuser as I have my custom head anyways and there are plenty possibilities for mounting, probably I will borrow transparent filament for a friend. 

Wish you all the best, keep your machines running and in case we won't not catch up - Merry Christmas and a "better" New Year ;). 





You received this message because you are subscribed to a topic in the Google Groups "OpenPnP" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openpnp/wGd0jSvMqN8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/a81da730-9331-41c9-b2a7-f22e644f3b9an%40googlegroups.com.

Marek T.

unread,
Dec 15, 2020, 8:51:04 AM12/15/20
to OpenPnP
Using drills as fiducials sounds absurdal for me.
Fiducials should be produced on the same layer with the pads not in the separate process. The same if someone would like to use overlays for this.
Addicionally, looking on some Chinese pcb with so drama moved drills  to the Cu...
ok, maybe using drills could be acceptable for >0805, but definitely not for finepitch IC, BGA or <0603.

Marek T.

unread,
Dec 15, 2020, 8:59:27 AM12/15/20
to OpenPnP
Believe me you will loose a time searching for better diffusing materials or projets.
I have tried some 4-5 different projects, with LEDs looking down directly or angled a bit, additional LEDs 90deg or looking up - like "your" lighting taken from Michal Groene website (mgrl.de).
You will never eliminate the problem of the shadow in the centre, it's impossible.
Finally you will land up with coaxial.
You don't need coaxial for ENIG pads being super-flat and non-reflecting.

Szymon Pawela

unread,
Dec 15, 2020, 9:03:57 AM12/15/20
to ope...@googlegroups.com
Marek do you happen to have a picture of what you are actually using? Is it working fine for you now? 

If I would be super lazy, sanding HAL fids to get rid of the polished surface would also be an option :D

Marek T.

unread,
Dec 15, 2020, 9:17:54 AM12/15/20
to OpenPnP
I use some self printed coaxial. It works with every fidus very good but the picture is a bit too dark.
I must improve just after my 3D (disassembled on the momment).
I can send you some picture tomorrow.

SzymonP

unread,
Dec 15, 2020, 3:50:07 PM12/15/20
to OpenPnP
Sure Marek, thanks, that would be great!
Too bad I have spent some time in the past adapting my head/carrier to this dome from Michael, I thought there wouldn't be as many reflections.

Regards,
Szymon

Anatoly

unread,
Dec 15, 2020, 10:44:21 PM12/15/20
to OpenPnP
You can see here
https://groups.google.com/g/openpnp/c/OtT6iLNAufU/m/vHWb9nGjBwAJ


среда, 16 декабря 2020 г. в 03:50:07 UTC+7, SzymonP:
Reply all
Reply to author
Forward
0 new messages