PnP : On stereo imaging and more focus

I had in my plans for two cameras in a stereo scopic setup for down vision so I could figure out depth and distance to things on the table .

However. doh! , I was playing with my fancy PointGrey camera last night and realised I don’t need two cameras, I just need to take a image, and move the camera and take another image ! and I can move the camera with sub pixel accuracy in the FOV.

And then, another obvious penny dropped.  Image de blurring and refocussing  (enhancing depth of field) can be done with a series of images takes when a camera moves in a plane tangential to the object. I read that many  years ago .

And of course I can move my down (and up) camera and take multiple shots.

So a bit of searching and googling later reveals google have done it for Android





Posted in Pick and place | Leave a comment

OpenPNp multithreaded directions..

added here  from my post in the forum..

I had a chat to Jason about this a week ago.. essentially…
after component pickup, Open PNP motion thread tells motion-controller (external)  to go to the target location (PCB place)
motion thread blocks on image processing thread.
image processing thread is also blocked at this time.
motion controller takes care of getting the UP camera in the right place and takes the exposure.
motion controller then sends signal to PC (say a char on a serial  port) and this unblocks the image thread
image thread now unblocked processes image, and comes up with a new offset for the placement and rotation.
Image thread posts this new info to the motion thread and blocks-
motion thread unblocks and updates the new target positon to the motion controller , and also updates rotation.
motion thread blocks waiting for ‘on station’ signal to come from the motion controller, and the placement ensues.
of course there various things that might happen different if we are placing a big component  where we most likely need to STOP over the camera and have afew goes at rotation, putting the part down, picking it up again, rotating etc to get that right- but that’s not often (for hard parts) .
and also if people  have a camera that requires everything to be stationary, slightly different but similar events occur.
However my idea is basically to decouple the motion and image processing so that the machine can be on its way while the images are being worked on..
of course if the image was bad, or the uncertainly level by the image processor was low, then it is going to have to tell the motion thread to send the head back to where the camera is (or sent the camera to it or something)
Of course this having to have another look at the component and moving the head back  to the camera etc is a great advantage of flipping a mirror in the way and looking at the component that way.. I just have not yet found a good way of doing that for multiple nozzles. More thought required.

Posted in Pick and place | Leave a comment

L6470 ST stepper driver

Wow, this baby is complex.
Read this first…L6470 presentation

I bought two eval kits from digikey/mouser $25 each. (mouser: 511-EVAL6470H-DISC )
It  has a USB interface, JTAG interface and some buttons. The eval software for the board is  comprehensive. There is alot to this chip- it is NOT for the non engineering types.

It is not just a fancy bridge driver, it is a stepper /motion control ‘co-processor’ you tell it where you want to go and it goes and manages it… SPI interface…

In a nutshell- on my steppers this chip is smooth. I mean REALLY smooth on microsteps.
it uses Voltage Mode drive (rather than current mode drive) with BEMF compensation, and from my non stepper standpoint, voltage drive is much preferable for driving this sort of device.

I have steppers clamped to my steel bench for eval, so any vibration gets amplified through the bench…. I tested steppers with inertial load, and without.

The results are chalk-and-cheese against my other stepper drivers 8825, 6620 etc.This chip does not want to do anything BUT microsteps. I found compared to the other drivers, the microsteps were pretty much within the 5% of a full step tolerance.

and, as expected, the microstep performance was vastly improved by having some sort of load on the shaft. This is why i think the component rotation application is going poorly for some users  – no load and undamped resonances and vibrations. IE needs a chunk of steel on the shaft.
(And even worse with the abrupt current mode chopper drivers I am used to_

Its a good eval kit (Discovery kit), but before you start, you MUST read at least the eval datasheet, the eval software manual, upgrade the software on the board etc.

Then you MUST READ (because results will be disappointing otherwise)  AN4144. I say again. MUST READ.

Then be sure to read AN4241, UM1691, AN3991, then, optionally, AN4290, DT0055, DT0056.








Posted in Pick and place | Leave a comment

Nozzle pitch

The main reason I went to NEMA14 for the  Z axis was the need to pack the nozzles in tighter. NEMA14 body is 35mm versus ’17 which is ~43.

Ideally my nozzles will be the same pitch as the tape feeders, or the same pitch as the strip feeder tape component pitch- IE 4mm or 8mm multiples. This way multiple nozzles can do a simultaneous plunge and pick  without moving the gantry .

I will likely use NEMA8 rather than NEMA11  for the rotation, so weight will drop 60 grams.

Also I have assumed a accel=decel curve for maximums.. but -if decel is to be faster, the stepper is going to have to be bigger, which helps for it to have more authority. This means going to the next NEMA14 up  , the 0.22Nm.
There IS a 0.4Nm one, also.  You are well and truly into ’17 territory there. A ’17  can do bigger work with a shorter body , but the nozzle pitch suffers. 0.4Nm is approx midrange ’17 territory.
On the DOWN plunge is easy for the Z, because the UP is lifting against gravity.  Of course on decel, the opposite applies- lots of work required to slow the payload as the nozzle approaches the Z=0 at mach2.

Posted in Pick and place | Leave a comment

Stepper component rotation accuracy mitigation

More on this subject

(see other post at component rotation…


Did a bit more playing. Got some Nema11s today, also (hollow) . These seem to be worse on  in accurate microsteps than the nema8s or 17s I have.

But – the microstep error is always deterministic it appears, which makes mechanical sense.  When I say “always”- on a few tries.

The idea is,  if you are not satisfied with the rotation step that you receive  from the stepper for say 1/16 step, put the component down, turn the nozzle so the stepper is in a different spot. , and then pick the component back up and rotate again.

The microstep errors are in a pattern, so the steps you will need  do not have to be a total guess.

The assumption is, the UP camera will take a look at the rotation you can, and what you get after  the component is put back down, nozzle moved, and picked back up….and rotate again from a different stepper position

So this way, really any step to whatever the stepper drive controller is capable of can be provided. Optionally , I would suggest the step point be ‘current held’ so avoid anything moving, if the controller permits it.





Posted in Pick and place | Leave a comment

Nozzle Z probing ideas

Using pressure sensitive resistor.
At about 10% spring compression, resistor drops from 10M to about 50k,  and about 10k >50%.

The nema8+adaptor (85g) sitting up top  compressed the nozzle spring about 85%

nozzle resistor

Posted in Pick and place | Leave a comment

PnP Z axis lift requirements- what size stepper

Z axis must be fast. ideally I want 50mS for 20mm travel.
12.5 mS to full velocity
maybe use a big NEMA14 stepper with rotor inertia  18g/cm2
Total lift weight  – 16g (carriage) +20g( stepper mtging plate) + 120g (NEMA11 hollow stepper) + juki adaptor and nozzle (36g) + air fittings (20g)  .

call it 220g
Driving sprocket size : 24 teeth of GT2

I plug the numbers into my spreadsheet-
Stepper pull out torque , lifting- 0.093Nm
Rotational acceleration = 5235 rad/sec2
Nozzle change – requires a >700g push down… = ~ 7N on the belt or 0.052Nm on the motor shaft.

Choose NEMA14 (35mm square) with 2x lifting = 2 * 0.093 = 0.186Nm…

Not included in calcs- rotational inertia of pulleys (not much) , and belt weight (not much) , frictional loads of the MGN9 linear guideway (not much).





Posted in Pick and place | Leave a comment