Z Probe Ideas?

1,228 views
Skip to first unread message

Jason von Nieda

unread,
Dec 31, 2015, 1:17:08 PM12/31/15
to ope...@googlegroups.com
Hi all, Cri S's post in the Zevatech thread reminded me of something I've been wanting to get some help with. 

I want to add z probing to OpenPnP to further automate the process of setting up feeders, boards, part height, etc. The idea here is that OpenPnP could lower a nozzle (or another device, possibly) and determine when it hits something. Right now you have to set the Z position of everything manually and it's a pain.

So, I wanted to ask if anyone had any thoughts on how to best implement this in hardware. Primarily I am interested in knowing if people have experience with working, commercial systems that have this feature. 

My questions:
* Is this typically integrated into the nozzle or nozzle holder in some way?
* Do they use another device (an extendable switch, like on 3D printers)?
* Is using vacuum sensing an option? (This was my first idea but I thought it might cause problems by pulling parts out of tapes when checking feeder height)

So, if you have experience with an existing Z probe solution on a pick and place, please speak up and let us know how it works :)

Thanks,
Jason

Neil Whelchel

unread,
Dec 31, 2015, 1:41:16 PM12/31/15
to ope...@googlegroups.com
Hello,
All of the commercial systems that I like use force feedback from the PID loop in the servo system.
This is likely not an option if you are using steppers. My personal opinion is that using steppers is a bad idea, but there are even commercial machines using this approach. The ones that do use steppers usually have a spring loaded Z axis with a linear encoder on the spring. When the Z axis contacts something and stops moving, the spring is stretched. The linear encoder measures this stretch, and since the rate of the spring is known, the pressure is also now known.  
On my machine, there is a reference (height) area next to the tool tray. After a tool is loaded into the nozzle, the tool height is checked against the reference. The height is compared to the known height of the tool. If there is a close match the actual tool height is updated, but not written back to the tool database. The tool is then used to measure board height and flex in a number of pre-programmed places. The board setup has both height and flex limits, so if someone forgot to place a support, the system can flag it this way. The height and flex values are used to create a matrix of height and flex at each place position. The values are interpolated between each known point. This way the system can calculate exactly how much pressure is required at each part position to get the correct amount of solder paste squeeze. The system will raise an error for a particular placement if there is excessive or not enough solder paste. The squeeze pressure is calculated by doing a lookup to the package database to determine the amount of solder paste area is used for each package type. 

My 2 cents worth:
I assume that you could use a vacuum gauge to detect the height of things, but this is problematic at best. Using such an approach would not work with nozzles that are intended to pick up round parts. The radius on the nozzle would prevent it from making a seal. This means that you would have to use a flat nozzle for height measurement. Using this approach would be a poor hack, because you would not be able to accurately measure the nozzle height of a nozzle that was not flat on the end.
If I were to build a machine, I would avoid steppers at all cost. The vibration alone is enough of a reason to avoid this for me. Force feedback is EVERYTHING for high speed placement, so there is no substitute for a good analog servo system.
-Neil-
 

--
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 post to this group, send email to ope...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/CA%2BQw0jzXQMQD_Vpno56R9EgJ-Li0Pgm%3D2uQwws3ctFd0eWxjvw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Cri S

unread,
Dec 31, 2015, 1:49:46 PM12/31/15
to OpenPnP
Use laser pointer. If camera is 90 degree ,(looking down) ideally place pointer to 45 degree in order its point is on camera center. If using other degree. As example 30 or25 some math is require. The simplest is calibrate it with coin. This have defined size and ready available. Then its not more important to measure angle correctly.

Jason von Nieda

unread,
Dec 31, 2015, 2:49:12 PM12/31/15
to ope...@googlegroups.com
Thanks Neil, this is very helpful. Do you know of any example machines that use this spring loaded Z axis? I've seen a lot of spring loaded nozzles but I haven't seen instances where the axis itself was spring loaded. I'd like to take a closer look.

Force feedback is possible with stepper systems using Trinamic drivers, but I haven't seen it used in practice yet. I do think this would be a good way to go and would solve the problem.

I agree with you that vacuum is a hack that is not likely to work in many cases.

Thanks,
Jason



Jason von Nieda

unread,
Dec 31, 2015, 2:49:48 PM12/31/15
to ope...@googlegroups.com
Cri,

This is a really clever idea, and easy to try out. I think I will give it a try and see how well it works. Thanks!

Jason


On Thu, Dec 31, 2015 at 10:49 AM Cri S <phon...@gmail.com> wrote:
Use laser pointer. If camera is 90 degree ,(looking down) ideally place pointer to 45 degree in order its point is on camera center. If using other degree. As example 30 or25 some math is require. The simplest is calibrate it with coin. This have defined size and ready available. Then its not more important to measure angle correctly.

--
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 post to this group, send email to ope...@googlegroups.com.

Cri S

unread,
Dec 31, 2015, 2:54:43 PM12/31/15
to OpenPnP
it works only if nozzles don't have sping. Then usually there is electrical contact that get broken, or switch for very low cost design. 
Usual design telll nozzle to take component at height x, if not work, then height x+??? and then x+??? . If all 3 don't work, operator message is print out, the same as if value was too height,
ie if the feeder present too many errors (discarge component). Further nozzles are designed to work for 1mm hub, and for that , like resistors and so on, no height is set, there get all outomatically. Clearly this need vacuum sensor, if using AC vacuum, microswitch, dc vacuum = current sense of vacuum pump.

Cri S

unread,
Dec 31, 2015, 2:59:11 PM12/31/15
to OpenPnP
I have opencv code for that, i cannot submit it today, tomorrow when i'm on other pc.
I'm use it to check solder paste dispenser height, but use line laser for doing volumetric 3D solder paste check.
Hovever, it should be easy removing the code for line and the calcs for solder paste volume in order to have just height sensor with laser dot.

Jason von Nieda

unread,
Dec 31, 2015, 3:01:51 PM12/31/15
to OpenPnP
Cri, just to clarify, do you mount the laser pointer on the Z axis so that it moves up and down while the camera stays fixed? That's how I envision this. As the laser moves down the dot should move across the view of the camera, I think?

Jason


Cri S

unread,
Dec 31, 2015, 3:21:31 PM12/31/15
to ope...@googlegroups.com
I have fixed Z height camera.
But if you have movable camera, it must be mounted on the camera mount
too in order it moves with camera.

web image serch:
setup for mt with sub mm accuracy (using fft)
https://shaneormonde.files.wordpress.com/2014/01/selection_039.png?w=960
https://shaneormonde.files.wordpress.com/2014/01/2014-01-25-19-29-16.jpg?w=960

short distance, here line laser , dot is same,
http://www.ascinternational.com/userfiles/file/laser-based_example.png
and opencv result
http://www.ascinternational.com/userfiles/file/SP3D%20Laser%20Pic.png

This should clearify any doubt. Hovever, if camera moves on Z, the
laser pointer must move
too and fix related to camera.


2015-12-31 20:01 GMT, Jason von Nieda <ja...@vonnieda.org>:
>> <https://groups.google.com/d/msgid/openpnp/b50534f4-3397-428c-b114-80d5b044f468%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> 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/S7pDpZGIjmk/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> openpnp+u...@googlegroups.com.
> To post to this group, send email to ope...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/openpnp/CA%2BQw0jx2cyxNU7NAaBEUKOZOFVsyypq5p21yApiXYgn%3DQ66xpA%40mail.gmail.com.

Robert Walter

unread,
Jan 1, 2016, 2:49:01 AM1/1/16
to OpenPnP
I think Cri S has a neat idea.

I did find a paper on this method at http://www.aqsense.com/docs/theory3D.pdf

It is an interesting read, but I am not quite sure as to the complexities regarding sensing heights in the confines of a feeder pickup area. Only some real world testing will tell.

Personally, I think a small pin like detector switch would be easiest. Obviously not the most elegant, but definitely simple.. I like the force feedback method that Neil talks about, but out of the price range of most mere mortals (hobbyists).

Rob

Neil Whelchel

unread,
Jan 1, 2016, 2:23:28 PM1/1/16
to ope...@googlegroups.com
Hello Rob,
I am not sure that force feedback would be all that costly. I am a big fan of using a low inertia (coreless) motor with a HEDS or similar encoder attached. You can find them used in the $30 range, and new around $100. I commonly use a tiny gear (pinion) directly on the motor shaft, with a rack gear along the Z axis travel direction. There are many cheap off the shelf motor drives available that are well less than $10. If you look carefully on eBay, I would think that you could get a really good force feedback Z axis working for under $50.
-Neil-



Robert Walter

unread,
Jan 4, 2016, 12:52:44 PM1/4/16
to OpenPnP
Neil,

I totally agree on the merits of the force feedback setup. Even the laser / optic pairing seems to be a viable alternative, albeit getting good resolution may be difficult when using the same camera with appropriate lens for typical down looking views.

I have been a closed loop motion control guy (industrial environments) for years (20+), and love to throw encoders and current monitors on everything.

The problem here is that you don't see many (if any) of the standard motion controllers supported by openPNP having analog inputs or encoder inputs, let alone built in firmware for closing a position loop (position or force based). I would love to see someone go for it (you / me joing effort?) but time aside, it would be a fair bit of work on the motion controller side. I originally thought about building a custom TinyG board so that I could add custom hardware inputs / outputs for PNP specific use like this, but due to time constraints, I went smoothie, and am heading in that direction (albeit reluctantly) as there is no support for input capture, which makes something as simple as vacuum sensing on the head / nozzle , somewhat difficult.

There are some z-height sensor input hacks on smoothie for poling only the z-sensor status, but I am thinking the best way is a custom module to handle the pick sequence. Hence my reservations on a closed loop motion operation. I am currently starting to look at the openPNP pick code, but have to get more familiar with how Jason wrote things. Hopefully the pick sequence is abstracted enough to allow easy implementation of a custom G / M code to handle the pick operation (vacuum on, nozzle down, grab part, nozzle up, test vacuum) before continuing the place sequence. Upon first look at the code, going to the pick location, including z-down, is a move function, and the pick (vacuum on, solenoids, etc) are in the pick function. I have to see if we can pull the z-operation out of the move to the feeder, and place it in the pick operation, such that we can test / retry / discard / etc. I am sure it is possible, but have not had the time to really learn how the whole program flows. I am not a Java programmer. I can hold my own in other languages (C/Python/Basic) but Java is new to me, so I am on a steep learning curve.

The hardware would not be so difficult. As you said, a rack / pinion or belt drive along with encoder, or current sensing would be awesome.But I still think most of the users in this forum as having enough trouble getting the basics up and running. Sure there are many gurus around here just chomping at the bit to add commercial features to the openPNP project, but I just see the nightmares watching people driving their head / nozzle through tapes or boards trying to get things calibrated. Maybe I an under / over thinking this, but good z-homing accuracy, a spring loaded nozzle tip, and proper component height setup is 99% of the problem solved.

Maybe we can chat off board to see how we really could accomplish this.

Rob

Jason von Nieda

unread,
Jan 4, 2016, 1:35:44 PM1/4/16
to OpenPnP
Hi Robert,

The two areas you will want to focus on in OpenPnP are the Driver and the JobProcessor. As you noticed, we currently do a moveTo to get the nozzle on top of the part and then pick just turns on the vacuum, but OpenPnP is designed to be flexible enough that you can do this however you want. That's where the JobProcessor comes in. ReferenceJobProcessor is a short class that implements all the functionality involved in running a pick and place job. If you wanted to do the entire pick operation as a single command to the controller, for instance, you'd just have to make some small changes to your chosen Driver and JobProcessor. 

Jason


Robert Walter

unread,
Jan 4, 2016, 2:41:09 PM1/4/16
to OpenPnP
Awesome! Thanks Jason,

I was looking over the driver and job processor code last night, and was pretty sure it covered what I needed, but thanks for the confirmation.

I still have to look at the Smoothie to see what the best plan of attack is. Day job is eating too much of my time these days, to simplicity for now is the best solution.  I might just use the Z-Probe input for now, and modify the job processor and Driver to make the pick action do the lower, grab, raise and then poll the pressure sensor for pass / fail, possibly with a small dwell prior to polling the sensor value. This obviously would be faster to do than writing a new module for smoothie. If the vacuum check fails, try a preset number of times, otherwise log the error and present the operator with the option to retry again or continue to next placement.

I would assume that any option to discard / trash a part would be after a lower vision inspection, and we just assume a vacuum test failure is "no part" rather than "really poorly picked up part". Would love to get your thoughts on this though...

Rob.

Neil Whelchel

unread,
Jan 4, 2016, 3:33:17 PM1/4/16
to ope...@googlegroups.com
Hello Robert,
There is simply no need to get so complicated. The people at LinuxCNC have solved these problems ages ago. They use a combination of realtime and HAL to close the servo loop in software. A low cost setup can read 6 encoders and drive 6 amps for less than $300 in hardware. You also get 48 GPIO pins that are under realtime control as well if you use the Mesa FPGA card. Since the PID is in HAL, you can read the PID values in realtime to get force feedback. Gluing the LinuxCNC HAL layer to OpenPnP would be a rather simple task. All you need to do is feed the position, pressure, acceleration, and velocity values to the trajectory planner, and it does the rest. I am really surprised that the OpenPnP project has not adopted a concept like HAL yet. HAL is one really fantastic piece of work that is quite easy to transplant into other projects. I think that the developers of OpenPnP should consider using HAL for the realtime motion control layer of OpenPnP.
-Neil-

reade...@gmail.com

unread,
Jan 4, 2016, 3:37:45 PM1/4/16
to OpenPnP
Hello Neil & Robert,

I was actually in the process of doing something similar to what you are talking about. I have on order a 7i76e and 7i76 daughter card to get things converted over to LinuxCNC, I will be converting my X and Y axis to BLDC servos and keep the Z and nozzles on steppers (will eventually get the Z over to a small servo). Is there any updated LinuxCNC driver anywhere? It seems a bit dated but have not got to the point of testing it yet, seen a video on Youtube with a guy using OpenPnP with LinuxCNC 2.7.0 and asked if he had to make any changes, no reply yet though.

I will make a thread once I get things going to document any changes/progress.

Neil Whelchel

unread,
Jan 4, 2016, 3:58:26 PM1/4/16
to ope...@googlegroups.com
Hello,
I would not recommend using the Ethernet devices. The Ethernet MAC layer introduces a large amount of timing jitter. I have used them on several projects and I have found that they do work ok for very simple position only control with slow servo update rates. My personal favorite is the 5/6I24 along with the7I48 analog servo interface. These are rock solid, both form the hardware and software (HAL and drivers) point of view, and they have a hardware watchdog to halt the system if the software or OS otherwise has an issue. I have used these for years on many CNC machines, lasers, airplanes, and industrial robots I have built, and I have never had any trouble with them on any level, they are quite fantastic. The drivers and HAL for these are actively maintained and up to date. I even used HAL and a 5I24 as an engine control system (mass flow fuel injection).
-Neil-


--
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 post to this group, send email to ope...@googlegroups.com.

Jason von Nieda

unread,
Jan 4, 2016, 4:07:55 PM1/4/16
to ope...@googlegroups.com
Part discard is on the short TODO list. My plan is basically to have it use bottom vision as a lowest common denominator and then use pressure sensors if available to do the check before approaching the bottom vision camera. I don't have this feature in OpenPnP at all yet, but it's coming soon.

Jason


Jason von Nieda

unread,
Jan 4, 2016, 4:12:05 PM1/4/16
to ope...@googlegroups.com
Hi Neil,

OpenPnP has had a HAL (hardware abstraction layer) since day one. The concept is core to the design of the software. In OpenPnP this is the "Driver" concept, and to a more extensive point the "Machine" concept. This is why OpenPnP can be used with any motion controller in nearly any hardware configuration.

Jason




--
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 post to this group, send email to ope...@googlegroups.com.

Neil Whelchel

unread,
Jan 4, 2016, 4:24:45 PM1/4/16
to ope...@googlegroups.com
Hello Jason,
I realize that OpenPnP has a HAL layer. What we are talking about are different things. I was speaking of the specific implementation of HAL that is used in LinuxCNC, not HAL as a concept. It would be a simple matter to interface the HAL layer from LinuxCNC as a driver for OpenPnP. By doing this, you gain access to all of the LinuxCNC modules for free. Most importantly is the trajectory planner and motion. These modules would add the much needed travel and acceleration limits to OpenPnP, as well as access to the supported hardware interfaces like HostMot.
-Neil-

Cri S

unread,
Jan 4, 2016, 4:49:36 PM1/4/16
to ope...@googlegroups.com
vacuum sensor is used when no bottom camera is used. In the sense, it
could sense if
resistor is succ up correct or not, the same you can check with
camera. 0603 resistors
probably are assembled without upper camera checking for speed reason,
for smaller resistors,
bottom camera is needed.

2016-01-04 21:24 GMT, Neil Whelchel <neilwh...@gmail.com>:
> --
> 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/S7pDpZGIjmk/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> openpnp+u...@googlegroups.com.
> To post to this group, send email to ope...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/openpnp/CAMfRM%2Bt7BPOWmBxBnEBuRsnxJKWkcwGGFgEYdfRSApmv4sLAOw%40mail.gmail.com.

Robert Walter

unread,
Jan 5, 2016, 1:25:39 PM1/5/16
to OpenPnP
I would think that the vacuum sensor should still be used even if doing bottom vision as it is a "no-cost" operation (ie, done while nozzle is rising) so it really does not add any time to a pick operation. If you don't have vacuum confirmation, you likely didn't pick up a part, and should either retry the pick, or retry the pick with feed advance, or do a trash bin operation, and retry the pick with feed advance. Not much point heading to the camera, if you already have the notion that the part was not picked up to begin with.

My $0.02 worth.

Rob.

Cri S

unread,
Jan 5, 2016, 1:34:14 PM1/5/16
to ope...@googlegroups.com
On small resistors camera can decide if is placeable or it should be discarded. Over 80% are placeable. Vacuum sensor only tell to discarded. For bigger parts, vacuum sensor can do decision alone before camera.

mikeselectricstuff

unread,
Mar 3, 2016, 8:23:07 PM3/3/16
to OpenPnP

The way my Versatronics does it is really simple: The head is spring loaded, and can move a few mm upwards against the spring so if it presses down on something, it moves upwards against the spring, and operates an opto switch. It uses this for auto PCB height and feeder height measurement.
It also means that a minor z-azis crash (e.g. placing a part on top of another part during trial placements) doesn't do  any damage as it just pushes against the spring.

.
Message has been deleted

Juha Kuusama

unread,
May 19, 2016, 11:21:52 AM5/19/16
to OpenPnP
Here is an example of one implementation. I developed the machine to help in prototyping assembly, so ease of setup was a critical goal. To achieve that, I needed Z probing to avoid setting up the heights on each design. Here is an image of the head assembly: http://www.liteplacer.com/the-machine/assembly-instructions/pnp-head-step-13-pnp-head-assembly/ . The dark grey tube is the pick up tube, vacuum is connected on the top of it. The nozzle connector is half visible behind the rotation motor. There is a rotation reduction gear system to get increased rotational accuracy, with the added benefit of couple of mm's vertical movement. You can see a switch with the lever resting on the bigger pulley. When the head goes down, the switch activates and the software gets the height information. The spring at the upper end of the tube controls the down force. The other switch, in the image not touching anything, is the Z homing switch.

Cri S

unread,
May 19, 2016, 12:17:05 PM5/19/16
to ope...@googlegroups.com
I'm not like the automatic height settings as it slow down assembly speed a lot.
Packages have default height, and if not set on parts, the package
height is used.
If not using exact height size, speed must be lowered, specially if
using solder paste dispenser.
How are you'r experience with automatic height and speed difference to
setting it correct
and not use automatic height settings ?


2016-05-19 12:18 GMT, Juha Kuusama <ju...@kuusama.com>:
> --
> 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/S7pDpZGIjmk/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> openpnp+u...@googlegroups.com.
> To post to this group, send email to ope...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/openpnp/a07394f8-802a-4b2e-b580-f1df54cfbaa8%40googlegroups.com.

Михаил Юров

unread,
May 19, 2016, 1:02:13 PM5/19/16
to OpenPnP


I built a machine for Juha's Liteplaser software and TinyG controller.
The program requires the nozzle touch surface signal.
I used the spring, the two linear bearings, and an inductive sensor.

So I have two incoming signal:
- The upper home the Z axis
- And the touch surface.


Jason von Nieda

unread,
May 20, 2016, 12:16:32 PM5/20/16
to OpenPnP
Nice looking machine! Can you describe the Z probe a bit more? How does the touch surface work?

Jason


--
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 post to this group, send email to ope...@googlegroups.com.
Message has been deleted

Михаил Юров

unread,
May 21, 2016, 6:31:59 AM5/21/16
to OpenPnP


Sorry, I do not know how to write correctly in English.
I filmed the video of the Z Probe sensor work.




пятница, 20 мая 2016 г., 21:16:32 UTC+5 пользователь Jason von Nieda написал:

Jason von Nieda

unread,
May 22, 2016, 10:07:11 PM5/22/16
to OpenPnP
This looks very nice. Great work!

Juha Kuusama

unread,
May 23, 2016, 3:47:57 AM5/23/16
to OpenPnP
On Thursday, May 19, 2016 at 7:17:05 PM UTC+3, Cri S wrote:
I'm not like the automatic height settings as it slow down assembly speed a lot.
Packages have default height, and if not set on parts, the package
height is used.
If not using exact height size, speed must be lowered, specially if
using solder paste dispenser.
How are you'r experience with automatic height and speed difference to
setting it correct
and not use automatic height settings ?

I built the machine to help in prototyping, so machine speed wasn't a major goal to begin with. I aimed to a faster and easier than doing it by hand (setup included). For this automating height setting is good. Even for production, it could actually improve troughput. Probing is notably slower than normal placing, but it is faster than measuring or looking the value up from a datasheet and putting it manually into program, and probing is only needed once for a new part.

Michael G.

unread,
Nov 11, 2017, 4:32:08 PM11/11/17
to OpenPnP
Hi,

know the thread is a little old, but anyway... the current discussion about endstops and their accuracy reminded me, that in this group some thoughts on a z-probe were exchanged. this is why I post here...
Maybe if one would like to integrate a z-probe, the bltouch could be considered: see here https://www.antclabs.com/bltouch
I have these probes on all of my 3d printers for bed leveling and am very convinced. once setup they have a good accuracy and repeatability. and since its for 3d printers, and most of the people here use smoothieboard or other 3d printer hardware, the bltouch could be integrated quite easy in means of hardware.

the probe could be mounted next to a nozzle, but 2mm higher in z-direction so it doesn't bother when idle. if a probe shall be performed, the bltouch can deploy its pin downwards and is lower than the nozzle tip then. if it hits something, there is a signal like from endstops, the z-level is detected...

so, ... just to have that thing noted here if someone wants to implement functionality like that in future.


Am Donnerstag, 31. Dezember 2015 19:17:08 UTC+1 schrieb Jason von Nieda:
Hi all, Cri S's post in the Zevatech thread reminded me of something I've been wanting to get some help with. 

I want to add z probing to OpenPnP to further automate the process of setting up feeders, boards, part height, etc. The idea here is that OpenPnP could lower a nozzle (or another device, possibly) and determine when it hits something. Right now you have to set the Z position of everything manually and it's a pain.

So, I wanted to ask if anyone had any thoughts on how to best implement this in hardware. Primarily I am interested in knowing if people have experience with working, commercial systems that have this feature. 

My questions:
* Is this typically integrated into the nozzle or nozzle holder in some way?
* Do they use another device (an extendable switch, like on 3D printers)?
* Is using vacuum sensing an option? (This was my first idea but I thought it might cause problems by pulling parts out of tapes when checking feeder height)

So, if you have experience with an existing Z probe solution on a pick and place, please speak up and let us know how it works :)

Thanks,
Jason


Mike Menci

unread,
Nov 11, 2017, 5:09:01 PM11/11/17
to OpenPnP
Just a test with Hall sensor
Mike

Michael G.

unread,
Nov 11, 2017, 5:19:41 PM11/11/17
to OpenPnP
that's cool! seems to be similar to the principle, the bltouch uses to measure...

Mike Menci

unread,
May 17, 2019, 4:45:54 PM5/17/19
to OpenPnP
Yes hall sensor outside & magnet moving up and down with the spring on Juki Nozzles.. But no code to support in Open PnP / principle of operation as on LightPlacer...

Jason von Nieda

unread,
May 17, 2019, 4:50:17 PM5/17/19
to ope...@googlegroups.com
I recently bought several of https://www.ebay.com/itm/Sick-Laser-Displacement-sensor-OD1-B035H15125/132936797087?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649 after seeing one in action on a commercial machine. I'm intending to use them to add Z-Probing. My initial thought is to use the Actuator.read() functionality to simply return a Z height. The class will be designed so that it can be changed to use a nozzle, or contact sensor, or whatever.

I'm very impressed with this laser displacement sensor. Accuracy seems to be in the range of 0.05mm!

Jason


On Fri, May 17, 2019 at 3:45 PM Mike Menci <mike....@gmail.com> wrote:
Yes hall sensor outside & magnet moving up and down with the spring on Juki Nozzles.. But no code to support in Open PnP / principle of operation as on LightPlacer...

--
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 post to this group, send email to ope...@googlegroups.com.

Friedrich Mäckle

unread,
May 18, 2019, 6:50:23 AM5/18/19
to OpenPnP
I would Love to get my hand on one of these, how much did you pay? Could you spare one? Maybe I can find one on ebay over time

Mike Menci

unread,
May 18, 2019, 7:54:57 AM5/18/19
to ope...@googlegroups.com

On 18 May 2019, at 12.50, 'Friedrich Mäckle' via OpenPnP <ope...@googlegroups.com> wrote:

I would Love to get my hand on one of these, how much did you pay? Could you spare one? Maybe I can find one on ebay over time

--
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/S7pDpZGIjmk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.

bert shivaan

unread,
May 18, 2019, 8:53:15 AM5/18/19
to OpenPnP
My commercial machine simply used the vac sensor. It would advance in some increments while checking. Everything was measured that way.
Are we able to do that with openPNP? It sems like it would be cheeper and easier for those that have a vac sensor already installed.

Mike Menci

unread,
May 18, 2019, 9:06:48 AM5/18/19
to OpenPnP
Yes search open PnP example here: https://groups.google.com/forum/m/#!searchin/openpnp/Vacuum$20sensing/openpnp/MKpJF3FZo_c
But not used for hight sensing !
Mike

Mike Mencinger

unread,
May 18, 2019, 10:44:31 AM5/18/19
to OpenPnP
Hello, 
This seams expensive and quite a large laser device - and for two nozzles You will need two of such laser sensors somewhere next to the nozzle.... 
Simple Hall sensor (like in video) can do the job and as well allows change of nozzles - from this test here on CNC working as end stop its quite accurate Travel distance between safe (green) and alarm (red) is 0.776 - 0.778mm.https://groups.google.com/forum/#!topic/openpnp/LIMVWRXhmIc
 Most of Open PnP users have Juki (Samsung) nozzles with spring which tolerates sensor precision requirements... Details enclosed...


Smoothie has several free GPIO pins and one could be used for this Z probing.... 
An interesting approach is as well here : https://hackaday.com/2016/07/18/sonic-3d-printer-auto-bed-leveling-makes-swoosh/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+hackaday%2FLgoM+%28Hack+a+Day%29#jp-carousel-213069 but this requires Piezo under PCB and it would be hard to place Piezo Discs under the tape of the feeders.... 

MyPnP_April_19-Z probing.jpg

MY_PnP_Head_2018AR_Vacuum.jpg

MY_PnP_Head Z.jpg

MY_PnP_Head VacuumHead.jpg

Any questions - ask - glad to answer...
Mike

On Friday, 17 May 2019 22:50:17 UTC+2, Jason von Nieda wrote:
I recently bought several of https://www.ebay.com/itm/Sick-Laser-Displacement-sensor-OD1-B035H15125/132936797087?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649 after seeing one in action on a commercial machine. I'm intending to use them to add Z-Probing. My initial thought is to use the Actuator.read() functionality to simply return a Z height. The class will be designed so that it can be changed to use a nozzle, or contact sensor, or whatever.

I'm very impressed with this laser displacement sensor. Accuracy seems to be in the range of 0.05mm!

Jason


On Fri, May 17, 2019 at 3:45 PM Mike Menci <mike...@gmail.com> wrote:
Yes hall sensor outside & magnet moving up and down with the spring on Juki Nozzles.. But no code to support in Open PnP / principle of operation as on LightPlacer...

--
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 ope...@googlegroups.com.

Jason von Nieda

unread,
May 18, 2019, 11:07:27 AM5/18/19
to ope...@googlegroups.com

That being said, the reason I bought it was that I had never seen the technology before seeing it on a commercial machine, so I wanted to get one and tear it apart and see how it works. I thought maybe it could be something we could make on our own with lower cost. Once I tear once down I will post about what I learn.

@Bert: I think vacuum is a good way to go for checking PCB height, but for pick height you risk grabbing a part. I don't think it's a good general solution.

@Mike: It's not very big at all. About 40x30x15mm. And you only need one, not one per nozzle. It points down and measures the height of what is under it, so you just move the head to point it at what you want to measure. They are expensive, yes, if you don't find a lucky deal but my reason for posting was more to mention that I am going to use it to develop the Z probe functionality in OpenPnP, and to let other people know the technology exists. I didn't know about it before, so wanted to share.

Jason




To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.

bert shivaan

unread,
May 18, 2019, 1:05:04 PM5/18/19
to OpenPnP
I never expericened picking a part when I tested the height. That said I didn't check every part. all the feeders were considered z=0, as was the board. But I used to check them sometimes for fun.
I am pretty sure the process was advance the z, turn on vac, check value, turn off and repeat until a vac was detected. I can imagine there would be issues if you just turn the vac on and then advance towards the part.

Friedrich Mäckle

unread,
May 18, 2019, 1:08:35 PM5/18/19
to OpenPnP
I agree with Jason, you will need only one on the machine. 55$ is great, 500$ on ebay not so much (I think they are about 1200$ new), if you can spare one I would be happy, otherwise I will keep looking for one. We are currently in the process of buying a entry level commercial Pick and Place machine (20-30k€ including feeders). Due to my limited time I will stop working on my own machine and focus more on software development for OpenPnP

Mike Mencinger

unread,
May 18, 2019, 2:13:54 PM5/18/19
to OpenPnP
Here - this might be interesting to test:
Measuring range: 0.05 to 70m (0.15 to 229ft)
Accuracy: Typically: ±1mm (0.04inch)
Measurement time: 0.1~3s
Laser class: Class II 635nm, <1mW
Operation temperature: 0 ~40C (32~104F)
Storage temperature: -25~60C (-13~140F)
Power supply: DC2.5~2.8V
Weight : 70g
Size: 72*40*18mm (2.83*1.58*0.71inch) 
at short range   ( it is 2mm tolerance at 40M ) does not say how much at short range!?
 Uart: 19200, 8N1
 Send command of “O”: turn on the laser
 Send command of “C”: turn off the laser
 Send command of “D”: measure distance and return the results
 Send command of “S”: return the module temperature and supply volt 

Mike

Jason von Nieda

unread,
May 18, 2019, 2:36:21 PM5/18/19
to ope...@googlegroups.com
Hi Friedrich, send me a message at ja...@vonnieda.org and we'll work something out.

Jason


To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.

To post to this group, send email to ope...@googlegroups.com.

Jason von Nieda

unread,
May 18, 2019, 4:25:44 PM5/18/19
to ope...@googlegroups.com
I tore one down. It's basically a red laser diode, some fairly basic optics, and a CCD line sensor. The sensor is: https://www.hamamatsu.com/us/en/product/type/S10227-10/index.html

Here's a gallery of the images I took: https://imgur.com/a/06sIzVw

Still works after putting it back together :)

Jason

Michael Anton

unread,
May 18, 2019, 5:30:00 PM5/18/19
to OpenPnP
I think even the reasonable inexpensive TOF sensors can be in the +-1mm range, like this one: https://www.digikey.ca/product-detail/en/stmicroelectronics/VL6180XV0NR-1/497-14702-1-ND/4854910.

There are linear hall sensors too, that measure the position of a magnet, in much the same way as the rotary ones do for angle:https://www.digikey.ca/product-detail/en/ams/AS5510-DSOM/AS5510-DSOMCT-ND/5131664.  These could be used to measure the amount that the spring is compressed in the Juki nozzles, by putting a piece of thin wall tubing down the middle of the stepper shaft, and nozzle, with a magnet on it, that raises and lowers with the nozzle tip.

Mike Menci

unread,
May 19, 2019, 3:33:01 AM5/19/19
to OpenPnP
Here is the project & code with this sensor test;
https://hackaday.io/project/47141-sub-mm-accuracy-from-the-vl6180-tof-sensor
Mike

Mark

unread,
May 19, 2019, 12:50:32 PM5/19/19
to ope...@googlegroups.com

Hi

 

I wondered how accurate a stereoscopic Z depth determination could be using simply the down camera with two shots. You'd need some contrasting edges in the object of course (unlike with the laser).

 

I assumed the ELP Model USB100W03M, 720p USB Cameras as recommended here:

https://github.com/openpnp/openpnp/wiki/OpenPnpCaptureCamera#troubleshooting

 

With the 3.6mm lens the FOV is ~65° Degrees in the diagonal, that's roughly 1470 pixel across. Let's say we take a shot, move the camera horizontally, so the object is roughly 1000 pixel apart, then take another shot. That's 47° apart. If it is too difficult to find the shift directly from the two shots, then perhaps the camera could take one shot in the center, create a small template for the TemplateMatch CV stage then search for that in the stereo shots. The distance of the found match points can then be used to calculate the Z height. Of course, such a thing would have to be calibrated up and down.  

 

I've done some calculations in the excel sheet attached. If everything is right, with a 60mm camera view (diagonal) I get ~0.2mm per pixel resolution in Z and that is when the object moves by one pixel symmetrically in both stereo shots.

 

What lenses do you guys actually use? I have a 6mm lens and that would give me 0.6mm per pixel resolution in Z. Not enough, I guess.

 

With the FullHD camera we get down to 0.06mm resolution using the 3.6mm lens and 0.17mm using the 6mm lens. That’s more like it. Note that the FullHD sensor is larger according to the specs and the lens therefore wider at the same focal length (it actually crops the smaller formats). Also I assumed we can measure with 1600 pixels distance.

 

That’s all theory and I have no idea how precisely and reliably the pixel shift can actually be detected in reality.

 

_Mark

 

 

Stereoscopic Z measurement Full HD.xlsx
Stereoscopic Z measurement.xlsx

Sandra Carroll

unread,
May 19, 2019, 12:57:31 PM5/19/19
to ope...@googlegroups.com

What are you and others aiming for in accuracy and repeatability?  

I’ve seen in some of the products the accuracy figure but not the repeatability.

 

Would a side looking camera (just throwing it out there, don’t know if it would even be possible)

Just thinking  if you know your pixel scale you’d have a hi accuracy and repeatable measurement.

 

Is that to far out there???

 

Sandra

--

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 post to this group, send email to ope...@googlegroups.com.

Jason von Nieda

unread,
May 19, 2019, 2:37:59 PM5/19/19
to ope...@googlegroups.com
Sandra,

By side looking do you mean horizontal, or at an angle other than 90? If the former, can you explain the concept? I'm not sure how that would work.

Thanks,
Jason


Friedrich Mäckle

unread,
May 20, 2019, 1:35:31 AM5/20/19
to OpenPnP
Hi Mark,

thats interesting, when Jason mentioned the CCD Sensor I thought about the Intel depth cameras D435 which I calculated should be able to output ~0,15mm resolution that seens to be close to your results. At ~180$ that would be a good buck and you might be able to use it as a head camera after all.


About the ToF sensors: I dont think they are good for the application, we use them a lot for consumer devices and they are good for sensing gestures or distances to an even surface but for measuring to a specific point I expect them to be unusable.

Best, Friedrich
Message has been deleted

Mike Mencinger

unread,
May 20, 2019, 4:05:09 AM5/20/19
to OpenPnP
Hi, 
For this Intel RealSense Depth camera spec say: 
Min Depth Distance (Min-Z) = 0.1m  = 100mm which is to far from object I think.... 
Minimum Depth Distance (Min-Z)0.1 m

Friedrich Mäckle

unread,
May 20, 2019, 4:47:06 AM5/20/19
to OpenPnP
sure, but I dont see a problem with that, its not ideal but at least on my machine I could manage to mount it on the back of the head

Balázs buglyó

unread,
May 20, 2019, 10:09:25 AM5/20/19
to OpenPnP
@fish can you provide done detail about your setup? What did you setup? How did you do it ?
Useing pipline i hope. ?

Thanks Balázs
Message has been deleted

Friedrich Mäckle

unread,
May 27, 2019, 1:08:29 AM5/27/19
to OpenPnP

Maybe you guys already know this, but Essemtec has a special nozzle for Z-measuring: The nozzle has a round tip not applying vacuum to the area to be detected but a small gap at the spring loaded tip which closes when pushed down (see my drawing). The repeat the procedure one or two times (fast -> slow) and detect the vacuum tipping point. Does anyone know this from other machines? Best, Friedrich

essemtec_nozzle.png



Am Donnerstag, 31. Dezember 2015 19:17:08 UTC+1 schrieb Jason von Nieda:
Hi all, Cri S's post in the Zevatech thread reminded me of something I've been wanting to get some help with. 

I want to add z probing to OpenPnP to further automate the process of setting up feeders, boards, part height, etc. The idea here is that OpenPnP could lower a nozzle (or another device, possibly) and determine when it hits something. Right now you have to set the Z position of everything manually and it's a pain.

So, I wanted to ask if anyone had any thoughts on how to best implement this in hardware. Primarily I am interested in knowing if people have experience with working, commercial systems that have this feature. 

My questions:
* Is this typically integrated into the nozzle or nozzle holder in some way?
* Do they use another device (an extendable switch, like on 3D printers)?
* Is using vacuum sensing an option? (This was my first idea but I thought it might cause problems by pulling parts out of tapes when checking feeder height)

So, if you have experience with an existing Z probe solution on a pick and place, please speak up and let us know how it works :)

Thanks,
Jason

Marius Liebenberg

unread,
May 27, 2019, 1:26:06 AM5/27/19
to OpenPnP
This will work the same as a milling machine.
You have a tip like this one you showed that is measured at a know location and then all the other tips are measured at the same location but they are referenced to the master or sensor that was used first. The offsets for each tip is stored in a table.
Before you start any job the master is probed say at the board level (or any other level) and then when a tip is changed the offset for that tip is loaded  automatically. This way you do not need to probe every tip but just the master against which all others are referenced.
Having this setup means that you can reference all tips to any level in the job and if you had a number of offset planes like the pcb, the strip feeders, the loose part tray, the vibratory feeder etc, you could load the sensor probe and go probe each location and store the offsets for all tips for all locations. This only happens once at the start of the job.
Message has been deleted

Trampas Stern

unread,
May 27, 2019, 6:38:44 AM5/27/19
to OpenPnP
If you have vacuum sense you can use the vacuum as z probe.  For tape reel I probe the plastic/paper beside the pick part. For PCBs I pick a location with no vias.  

When you probe with vacuum you have to lower nozzle very slowly.  

On a 3D printer I electrically floated the nozzle and then used  electrical connection with metal duct tape to do bed leveling.  I have also tried force feedback on z motor, but this is very sensitive to mechanical play. 
 

Message has been deleted

Trampas Stern

unread,
May 27, 2019, 7:20:32 PM5/27/19
to OpenPnP
The top of the tape is suppose to be the same height as the part.  Thus you probe beside the part on the tape not on the part.  I do this on my Autotronik PnP to set the pick location for feeders, including cut tape feeders. Keep in mind the hole in the nozzle is smaller than an 0402 and as such their is a lot of real estate on a tape to probe... 

Trampas 

Marius Liebenberg

unread,
May 28, 2019, 1:31:48 AM5/28/19
to OpenPnP
@Trampas
Do you use a custom routine or script to do your probing? What cnc controller are you using?

socke

unread,
May 28, 2019, 2:00:28 AM5/28/19
to OpenPnP
Relatively cheap alternatives to these expensive laser distance sensors:

Breakout boards are available from Adafruit and Sparkfun:

Trampas Stern

unread,
May 28, 2019, 6:54:30 AM5/28/19
to OpenPnP
The autotronik does the probing, built into the software for the machine.

Trampas Stern

unread,
May 28, 2019, 6:55:59 AM5/28/19
to OpenPnP
I tested the laser distance sensors for 3D printer bed leveling, they do work but you will get around .2mm noise.   Which might be close enough for this application with spring loaded nozzles. 

socke

unread,
May 28, 2019, 8:06:54 AM5/28/19
to OpenPnP
0.2mm noise is a lot, especially if you use it for 3D printer bed leveling. I didn't know that, but expected that these sensors are more accurate. Thanks for your feedback!

Jason von Nieda

unread,
Sep 23, 2019, 6:22:18 PM9/23/19
to ope...@googlegroups.com
Hi folks, I saw that more of the sensors I bought are available on eBay for $55 again: https://www.ebay.com/itm/Sick-Laser-Displacement-sensor-OD1-B035H15125/143349707671

Jason


--
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 post to this group, send email to ope...@googlegroups.com.

chende...@gmail.com

unread,
Oct 2, 2020, 7:06:23 AM10/2/20
to OpenPnP
Hi Jason,

I need a bit of advice from you regarding Z probe issue and I do not want to open a separate topic, so I put it here.
My machine contains a laser displacement sensor installed on machine table for measuring components height and another laser displacement sensor attached to head to measure Z of components in feeders, trays, etc
For now I am concerned only about head mounted sensor and how to integrate it into openpnp workflow.
I defined a ReferenceActuator named HeadZProbe, XY coordinates of the laser spot are defined in relation to 0,0 of head (that is the camera center)
How I plan to use it when calibrate pick position from a yamaha cl feeder:
-in feeders tab, select desired feeder and actuate it to uncover pick pocket
-manually move top camera to pick position, visually align cross over component pocket then press 'capture the location that the camera is centered on'. That will set only X and Y of the feeder as camera coordinates, and feeder Z cannot be affected, right?
-select from left combo 'Actuator: HeadZProbe (Head: H1)' then press 'position the tool over the center of the location'. That should move laser spot exactly on pick XY coordinates.
How here's the trick..:
-if I press 'capture the location that the tool is centered on' will just set feeder pick location X and Y based on laser spot X-Y position, or is there a way to send a command to the actuator, read Z and place it into Z pick location?
I have not tried it physically yet because there is some work to be done on feeder plate mounting.

Thanks,
Florian.

Jason von Nieda

unread,
Oct 2, 2020, 12:02:00 PM10/2/20
to ope...@googlegroups.com
Hi Florian,

We have a feature just for this :) https://github.com/openpnp/openpnp/wiki/Z-Probing

Give it a try and let me know what you think!

Thanks,
Jason


--
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.

chende...@gmail.com

unread,
Oct 2, 2020, 12:09:26 PM10/2/20
to OpenPnP
Lazy me... I didn't saw it.
Thanks, working on it. For now I can only work on probe position testing. Sensor is attached to the head and powered, but the electronics required to transmit back the measurement is still work in progress. 

chende...@gmail.com

unread,
Oct 2, 2020, 12:47:21 PM10/2/20
to OpenPnP
Ok, perhaps I am doing something wrong, let's take it step by step according to doc:

"To use Z probing:

Create a new Actuator to read the probe."

"Configure the Actuator in the driver so that it performs it's probing action on read, and returns a numeric value in millimeters."


I created an actuator attached to the head, 'TopLaserSensor' but it does not have any read commands into gcode driver.

"Set the Z probe Actuator on the Head in Machine Setup -> Heads -> Configuration under Z Probe Actuator.
Once the Z probe is configured, use it by pressing the Capture Camera Location button when entering a coordinate. OpenPnP will first capture the X, Y, and Rotation coordinates of the camera, and then will move the Z probe to the camera's position and perform a read to capture the Z coordinate."

I created a new nozzle 'ContactProbeNozzle', I defined its x-y location relative to head 0,0 (camera), I defined 'TopLaserSensor' at 'contact probe' tab. Nothing checked at nozzle tab. In the gcode driver, the contactprobenozzle have defined MOVE_TO_COMMAND, MOVE_TO_COMPLETE_COMMAND and MOVE_TO_COMPLETE_REGEX.
After that, in the feeders tab, I move the camera to the pick location and when pressing 'capture camera location', x-y are captured (in fact stays the same, camera is already there, but the laser sensor is not moved over the measurement position.
If I select contactprobenozzle then press 'position the tool over....', it moves where it should be. But not when pressing 'capture camera location...'
Also, I thought this may have something to do with no nozzle being loaded and when I went to 'nozzle tips' tab of the 'contactprobenozzle' and checked 'compatible?' on a defined nozzle, the machine made a crash move, it moved to a negative X location (-41mm or something), and that coordinate is nowhere defined in the machine.
I cleared the log before pressing 'capture camera location' and after pressing it, the log was empty.

Any idea what am I doing wrong?

Thanks.

chende...@gmail.com

unread,
Oct 2, 2020, 1:05:21 PM10/2/20
to OpenPnP
I don't understand what is happening.
My machine have 2 nozzles attached to the head. One is ReferenceNozzle 01, one tip is defined and is compatible/attached to this nozzle. The nozzle 01 is at x=78mm and y=22mm. The other nozzle is z probing nozzle, 'contactprobenozzle'. After I define it, there is no tip attached and loaded. If I click 'compatible?' in the nozzle tab of contactprobenozzle, the machine receives a move command with x= -78mm and y= -22mm.  Is this normal?

Jason von Nieda

unread,
Oct 2, 2020, 1:14:59 PM10/2/20
to ope...@googlegroups.com
Hi Florian,

I'm a little confused. Do you have a contact probing nozzle and you are trying to set that up too?

Just to be clear: No contact probing nozzle is required to use your z laser. Just set up the laser as an actuator and make sure you set it's head offsets. The head offsets determine how the head will move when the laser is needed. When you capture camera coordinates it will basically capture the XY of the camera, then move to the laser to the camera's current location and capture the Z.

Make sure you set the head offsets of the laser, and make sure you don't have the laser actuator included in your axis configuration for Z.

Jason


chende...@gmail.com

unread,
Oct 2, 2020, 1:57:18 PM10/2/20
to OpenPnP
Ok, thanks, I'll try it tomorrow. it seem I confused the 'contactprobenozzle' as being z probe actuator, sorry.

Juan-Antonio Søren E. Pedersen

unread,
Oct 2, 2020, 6:51:28 PM10/2/20
to ope...@googlegroups.com
Just had a random idea. Have anyone testet how the capacitance on the tip/string changes when there is contact? If there is a spike when contact, that could be user to set a flag in software...

Juan-Antonio Søren E. Pedersen

unread,
Oct 2, 2020, 6:52:11 PM10/2/20
to ope...@googlegroups.com
Ups tipo, spring on the nozzle tip... 

Harjit Singh

unread,
Oct 2, 2020, 7:26:17 PM10/2/20
to ope...@googlegroups.com
If there's a vacuum sensor, maybe use that to detect this condition?

Juan-Antonio Søren E. Pedersen

unread,
Oct 2, 2020, 7:31:14 PM10/2/20
to ope...@googlegroups.com
Right, good point. It did get me thinking of how the nozzle is build. Lately I have been developing some tech to do 3 phase linear motion for Z. If the magnets inside the tube is hollow and the coils are stationary, the core of the “motor” could rotate by having some airtight link on top. 

chende...@gmail.com

unread,
Oct 5, 2020, 1:47:54 PM10/5/20
to OpenPnP
Done, it works just fine. Thanks for help.

Florian.

On Friday, October 2, 2020 at 7:02:00 PM UTC+3 Jason von Nieda wrote:
Hi Florian,

We have a feature just for this :) https://github.com/openpnp/openpnp/wiki/Z-Probing

Give it a try and let me know what you think!

Thanks,
Jason


chende...@gmail.com

unread,
Oct 7, 2020, 12:40:39 AM10/7/20
to OpenPnP
Hi Jason,
As I said in previous posts, calibrating feeder positions does proper actuation of Z probe and it works fine. At least with sensor positioning because the actual read of Z value is not done yet in my controller. I tested only with referenceautofeeder but I assume it works the same way with cut tapes, trays and others.
But I noticed that when defining a job for a board, the 'set the board location to camera position' button does not do the same thing. It only sets x and y, Z is not measured using the same system.
Is it a bug or a feature :) ?  Or am I doing something wrong, as usual?

Jason von Nieda

unread,
Oct 12, 2020, 9:14:07 PM10/12/20
to ope...@googlegroups.com
Hi Florian,

It's not implemented there yet - an oversight on my part. I added the code to one of the widgets that we use everywhere, the LocationButtons, but the board location buttons don't use that widget because they are in the toolbar. So we just need to add the same logic there. Should be an easy change - I'll add it to my list.

Thanks,
Jason


Jason von Nieda

unread,
Oct 12, 2020, 9:28:18 PM10/12/20
to ope...@googlegroups.com
Okay, I went ahead and implemented this but in doing so I realized it's a little more tricky with boards than with feeders. With the board we are typically targeting the corner of the board, not the center, so the laser might miss it. We could maybe move the laser a few mm toward the middle of the board, or we could capture on a pad or something. Anyone have any thoughts on that?

Thanks,
Jason

ma...@makr.zone

unread,
Oct 13, 2020, 2:22:14 AM10/13/20
to ope...@googlegroups.com

How fast is one probe? Could you actually probe for edges by step-probe-step-probe...  at say 0.05mm?  (Assuming the PCB edge is hanging free)

Probing for three edge points (two on one edge, one on the other) should do it to find the corner.

_Mark

chende...@gmail.com

unread,
Oct 13, 2020, 6:44:22 AM10/13/20
to OpenPnP
Hi Jason,
I would recommend, when you press the button:
-set x-y position of the board with camera coordinates
-look for a fiducial in the component list and go there with the z probe

chende...@gmail.com

unread,
Oct 13, 2020, 7:43:40 AM10/13/20
to OpenPnP
Or take a circle of 10mm with the center in the board corner/camera position, divide it by 8, you have 8 positions, each at 45 degrees. Measure them all, keep highest Z.

chende...@gmail.com

unread,
Oct 13, 2020, 3:50:40 PM10/13/20
to OpenPnP
Speaking of Z probe, it is clear that having a Z probe on the head is helpful when pick Z must be measured. But I am thinking at the other use for a probe, to measure component height. Do you think it would be helpful to have such functions?
How I see it:
-machine setup/, define an actuator, z bottom probe or whatever. Actual sensor must be installed on the table, just like up looking camera
-somewhere on machine setup, associate this function with the actuator, just like it is for the referencehead
-on parts, near 'pick selected part from first available feeder' , another button for measuring Z eventually with some options, with the following actions
         -pick part from first feeder, move above sensor, measure Z, discard (for pneumatic feeders for ex.) or
         -pick part from fist feeder, move above sensor, measure Z, put it back to feeder (this can be done for trays)

Thanks.

Reply all
Reply to author
Forward
0 new messages