Calibrate precise camera nozzle N1 offsets procedure does/will not issue air puff

57 views
Skip to first unread message

CodeDataTech

unread,
Feb 18, 2026, 3:04:01 PM (4 days ago) Feb 18
to OpenPnP
In the Issues & Solutions list, I cannot get the procedure to issue an air puff at the place/release point of the paper dot to help it let go of the dot as/before the nozzle starts upward.

The command 'N1_Pressure.actuate(true)' does not get issued by/during this procedure - it never shows up in the log.

Is it actually built into the procedure to do this?

If not - why not??? If so - what do I have to do to get the procedure to do it at the place/release of the dot?

Thank you for any advice/help that you may be able to give.

CodeDataTech

unread,
Feb 18, 2026, 4:17:46 PM (4 days ago) Feb 18
to OpenPnP
I would certainly like to learn more about what is actually happening in/with this procedure; however, I did find a solution for my immediate problem by using some 3D-printed dots - having a higher weight than the card stock dots - helped it to stay put when the nozzle retracted upward.

bert shivaan

unread,
Feb 19, 2026, 8:41:21 AM (4 days ago) Feb 19
to ope...@googlegroups.com
Thank  you for the update and tip for others :)

--
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 visit https://groups.google.com/d/msgid/openpnp/5d212d53-f41e-4381-8c23-07d04b4df126n%40googlegroups.com.

Dave Thomas

unread,
Feb 19, 2026, 5:15:26 PM (3 days ago) Feb 19
to ope...@googlegroups.com
FWIW, I 3d printed dots, but for a different reason.

The circle would never expand far enough when I used holes from a paper punch.  The diameter input is in pixels, maybe my camera is higher resolution than what was expected when the maximum diameter circle was determined.

With smaller 3d dots, it went fine.


prot...@gmail.com

unread,
Feb 20, 2026, 2:27:27 AM (3 days ago) Feb 20
to ope...@googlegroups.com

I had the same issue when setting up my machine I tried looking at the part and package called TEST-OBJECT (google recommended that I create a part called that) I made sure that everything is in place Blow off and vacuum and still, I do have that same issue when actually doing a job too. My thoughts was I did not set it up correctly and was going to come back to it at a later stage.

 

I did have it going about a week back when I did my first board, I then started all the calibration procedures over because I was not happy with what I had initially and that is when I lost it.

I believe it is a setting that I have changed without looking or perhaps one of the suggestions from Issues & solutions that might have switched something off somewhere.

 

I also ended up 3d printing little disks to use for this calibration procedures and set my Place Dwell Time to 700ms that allows the pipes to fill up and even out the pressure at the nozzle.

Jan

unread,
Feb 20, 2026, 3:31:06 AM (3 days ago) Feb 20
to ope...@googlegroups.com
Hi!
The Blow-Off feature requires an actuator of Double type and does not
work with a Boolean type. You need to specify the blow off level on the
package/part level as double number and decide in actuators g-code what
to do with it. Others have eg. used it as duration the blower/air is
switched on. However, for me this did not work because the buff pushed
the target away. With your 3d-printed target this is probably less of a
problem, but keep in mind, that your UPP will be off if the target is to
thick. (The procedure is designed for a infinite thin target.)

Jan

On 18.02.2026 18:49, CodeDataTech wrote:
> In the /Issues & Solutions/ list, I cannot get the procedure to issue an
> air puff at the place/release point of the paper dot to help it let go
> of the dot as/before the nozzle starts upward.
>
> The command 'N1_Pressure.actuate(true)' does not get issued by/during
> this procedure - it never shows up in the log.
>
> /Is it actually built into the procedure to do this?/
>
> If not - why not??? If so - what do I have to do to get the procedure to
> do it at the place/release of the dot?
>
> Thank you for any advice/help that you may be able to give.
>
> --
> 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
> <mailto:openpnp+u...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/openpnp/
> c411e9d8-e0d2-48c5-a229-b6753c3a3e29n%40googlegroups.com <https://
> groups.google.com/d/msgid/openpnp/c411e9d8-e0d2-48c5-a229-
> b6753c3a3e29n%40googlegroups.com?utm_medium=email&utm_source=footer>.

Tjaart van aswegen

unread,
Feb 20, 2026, 3:35:28 AM (3 days ago) Feb 20
to ope...@googlegroups.com
Thanks for the reply

I will try a double value tonight and go back to the paper circles 





--
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 visit https://groups.google.com/d/msgid/openpnp/c411e9d8-e0d2-48c5-a229-b6753c3a3e29n%40googlegroups.com.

CodeDataTech

unread,
Feb 20, 2026, 11:12:47 AM (3 days ago) Feb 20
to OpenPnP
Thank you all for your posts. Short of actually delving into the openpnp code (which I would really love to do but do not have time for - I have to get this machine up and running and putting parts on PCBs), how do I find the 'evidence' of just exactly how the calibration procedure referred to in the OP utilizes the air pressure actuator during the procedure? (I read on the internet somewhere that it might be built into the 'place' code/function/routine...?) Otherwise, I will have to write g-code into the vacuum actuator to produce a [fixed-length?] air puff when the actuator turns the vacuum off - which I would really rather avoid if I can. OR - I will have to set my air pressure actuator up to always pulse for a [fixed-length?] time to create an air puff...? (This seems like it would be a bit too restrictive from an operations perspective - unless I never find a reason to need to use the air pressure for anything else but a hard-fixed-length air puff. But, I know that different parts in different situations may require different lengths of time for the air puff. So, this does not seem like a good idea. And, I would rather not lock down anything that may need to have more flexibility.)

I have two separate/isolated/independent solenoid valves - On/Off [only] - for the air pressure and vacuum - BOOLEAN actuator setup. I am okay with writing some g-code in somewhere - but, I was trying to give openpnp the benefit of the doubt regarding its capability to administer the air puff as needed. Do/Will the part-based settings pass a DOUBLE value into that procedure? And, can/will the procedure actually use that value to pulse the air pressure actuator at the point of release? This is what I was hoping for and thinking it would do at the beginning of this effort.

CodeDataTech

unread,
Feb 20, 2026, 11:28:25 AM (3 days ago) Feb 20
to OpenPnP
"Do/Will the part-based settings pass a DOUBLE value into that procedure? And, can/will the procedure actually use that value to pulse the air pressure actuator at the point of release?"

I asked this question because - no matter what I try - including using the aforementioned TEST-OBJECT part and package - I have yet to see the procedure produce an air puff. (As far as I can tell. I never hear the air pressure solenoid click at any time during the procedure.)

CodeDataTech

unread,
Feb 20, 2026, 11:36:24 AM (3 days ago) Feb 20
to OpenPnP
FWIIW - I am running the machine with a Duet 3 6XD controller board.

Toby Dickenson

unread,
Feb 20, 2026, 12:28:51 PM (2 days ago) Feb 20
to ope...@googlegroups.com
> Thank you all for your posts. Short of actually delving into the openpnp code (which I would really love to do but do not have time for

The openpnp code is great. Lets do that!

This is the loop for the nozzle offset calibration. It calls
nozzle.place() to "let go" of the test object after having moved the
nozzle to the right location.

https://github.com/openpnp/openpnp/blob/f1aca58c58361bf01fad7045ff187338c6ade802/src/main/java/org/openpnp/machine/reference/solutions/CalibrationSolutions.java#L1148

Nozzle.place() is what triggers the blow-off code:

https://github.com/openpnp/openpnp/blob/f1aca58c58361bf01fad7045ff187338c6ade802/src/main/java/org/openpnp/machine/reference/ReferenceNozzle.java#L399

I dont use blow-off on my machine so cant really offer any
configuration advice, but it looks like it should work the same as any
other placement.
Reply all
Reply to author
Forward
0 new messages