Vacuum sense?

1,673 views
Skip to first unread message

Henrik

unread,
May 12, 2016, 2:31:27 AM5/12/16
to OpenPnP
Jason,

What are your thoguhts/plans for the implementation of vacuum sense/monitoring?

Three basic options as I see it:
A) Vaccum sensor with analog output feeding an ADC (possibly the thermistor inputs on the Smoothieboard for example) which is "continuously" read by OpenPNP.
B) Vacuum sensor with analog output feeding a comparator which reference voltage comes from a DAC or filtered PWM output which gets set by OpenPNP. OpenPNP then sees a discrete vaccum good/bad signal.
C) Vaccum sensor with I2C or SPI interface directly interfaced to the controller and then read by OpenPNP. (Custom controller firmware needed, most likely?)

One such circuit for each nozzle of course.

Perhaps a dedicated board on a COM-port utilizing the sub driver concept? I can volunteer to design such a board if needed.

/Henrik.

Mike Harrison

unread,
May 12, 2016, 3:01:31 AM5/12/16
to ope...@googlegroups.com
On Wed, 11 May 2016 23:31:26 -0700 (PDT), you wrote:

>Jason,
>
>What are your thoguhts/plans for the implementation of vacuum
>sense/monitoring?
>
>Three basic options as I see it:
>A) Vaccum sensor with analog output feeding an ADC (possibly the thermistor
>inputs on the Smoothieboard for example) which is "continuously" read by
>OpenPNP.

By continuously I assume you mean it just streams back readings continuously .
To avoid having a stream of values, You could gate the output based on the value, i.e. it only sends
output when vacuum changes significantly, or only when vacuum is below atmospheric pressure.

>B) Vacuum sensor with analog output feeding a comparator which reference
>voltage comes from a DAC or filtered PWM output which gets set by OpenPNP.
>OpenPNP then sees a discrete vaccum good/bad signal.

Why would you make it that complex ? ADCs are ten a penny.

Glen English

unread,
May 12, 2016, 3:10:22 AM5/12/16
to OpenPnP
Hi Henrik
I am using MPX5050DP


these are a differential port, and very temperature stable. probably overkill but I know these snesors well. 

analog output. 

One for each nozzle. They need 5V. You need  >  100k load, so it needs an opamp buffer if going very far
OR- a suitable sized cap (but slows down bandwidth). cap charge will be transferred to ADC input sample and hold  on sampling....

regards

Henrik

unread,
May 12, 2016, 3:40:27 AM5/12/16
to OpenPnP
Mike,
Yes, I mean it either streams the value(s) continuously (actual interval TBD) or that OpenPNP periodically. If streaming then gating it somehow is a good idea.
The idea with the comparator is to avoid having to  feed the actual value back to OpenPNP and just having a discrete (vacuum good/bad) signal interfaceable to already existing I/O on the controller board(s).

I don't think one is necessarily more complex than the other but I don't know which (if any) "fits" the software the best - hence the question.

Glen,
Thanks, I have an MPX5010DP that I was planning to use for testing but I think it's range is too small for this application, a 5050 would've been better....
Have you already interfaced yours to OpenPNP? If so, how did you do it?

/Henrik.

SMdude

unread,
May 12, 2016, 4:14:06 AM5/12/16
to OpenPnP
Hi Guys,

I had thought of using the comparator method as it makes life simple, however some things to consider would be different nozzle sizes would have a different vacuum level without a component on the nozzle, so may require adjustment for different size nozzles.

Also, another thing to consider is changes in atmospheric pressure. Perhaps another sensor would be required to reference the nozzle pressure to.

Mike Harrison

unread,
May 12, 2016, 4:17:14 AM5/12/16
to ope...@googlegroups.com

>Also, another thing to consider is changes in atmospheric pressure. Perhaps
>another sensor would be required to reference the nozzle pressure to.

No need - just use a differential sensor, which senses the pressure relative to ambient.
This will correspond to the force acting on the part

Henrik Olsson

unread,
May 12, 2016, 4:23:08 AM5/12/16
to ope...@googlegroups.com

Yes, no matter which method we end up using the vacuum OK level probably needs to be set on a per part or on a per nozzle level in OpenPNP. If the comparator method is used then OpenPNP will need to update the threshold voltage when it changes.

 

Using a differential sensor will account for the atmospheric pressure so it shouldn’t be an issue.

 

But what is the ideal range for such a sensor?

 

Mike, how is the vacuum sense handled on your RV? Is the threshold settable per part, per nozzle, or just a global setting?

 

/Henrik.

 


Från: ope...@googlegroups.com [mailto:ope...@googlegroups.com] För SMdude
Skickat: den 12 maj 2016 10:14
Till: OpenPnP
Ämne: [OpenPnP] Re: Vacuum sense?

Glen English

unread,
May 12, 2016, 5:00:59 AM5/12/16
to OpenPnP
Hi Henrik, 
I have not got openPBP talking to it but shortly

I am using a STM32F4 DISCOVERY board as a base for everything - it has lots of IO on 0.1" headers
Plenty of ADC on the STM board. 

BTW everybody else- MPX5050DP IS a differential sensor. (DP = diff  port) 
Henrik I have a few of these, I use these in water level measurement in my business work.  I bought them from Digikey or Mouser I can't remember, they are not cheap.
But I guess everyone has figured out I am not building cheap..

I have a vac pump AND pos pressure pump and TWO solenoids per nozzle. (one to switch vac one to switch pos pressure). the solenoids came from Robot digg. they're fast.

I really need to cycle the pumps on and off as the pumps are not happy pulling / pushing against the shut solenoid all the time... another control requirement.
But my intention was to "hand off" that from open-pnp to the microcontroller.
But it could always be on the PC I guess with a USB ADC.

On the comparator- if Open PNP is to be instantaneously notified of an event, like a comparator switching, I would use a dedicated USB UART chip that an OpenPbnP thread waits on- waits on a serial char or DTR etc changing- and then of course immediately unblocks (if has the right thread priority..  )  so these things can be asynchronously but instantaneously handled.  No polling.  Or maybe there are better/easier USB boards around for this that can easily unblock a thread and use fairly standard drivers.


matt

unread,
May 12, 2016, 5:15:39 AM5/12/16
to ope...@googlegroups.com
I've not worked out how much vacuum pressure people are generating, but
surely the small amount the ambient pressure changes will be
insignificant to the is a part there or is a part not there type check..

i.e.

pressure reading @ ambient 100pA (so no part on end of nozzle)
pressure reading with part on nozzle 50pA

So with something like threshold for part detection > 20pA

Will the ambient jump around 20pA?

Or am i being too simplistic?

obiwanke...@gmail.com

unread,
May 12, 2016, 11:36:04 AM5/12/16
to OpenPnP
PM460 uses an SMC ZSE1 dual vacuum switch, smallest nozzle has a different setting than all others, so nozzle size is a factor. It's a bit "fiddly" and needs to be adjusted on occasion. Not sure baro pressure really affects it, the vacuum difference between part on and part off is significant on a fairly large tip, if you are picking 0402 or smaller the tip size is so small the vacuum difference with part on or off is not much. Some parts can be problematic, melf just doesn't work, and some parts like 250VAC 10PF filter caps are fairly tall and slightly convex and don't seal the tip as well as flat discrete part.

matt

unread,
May 12, 2016, 11:47:26 AM5/12/16
to ope...@googlegroups.com, obiwanke...@gmail.com
Are you picking up 0402 on a PM460? :D
> --
> 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/d7ef4170-d7f2-41d4-a5df-55e9cfa09d9e%40googlegroups.com
> [1].
> For more options, visit https://groups.google.com/d/optout [2].
>
>
> Links:
> ------
> [1]
> https://groups.google.com/d/msgid/openpnp/d7ef4170-d7f2-41d4-a5df-55e9cfa09d9e%40googlegroups.com?utm_medium=email&utm_source=footer
> [2] https://groups.google.com/d/optout

Jason von Nieda

unread,
May 12, 2016, 12:19:55 PM5/12/16
to ope...@googlegroups.com
Hi Henrik,

I have not given this a ton of thought just yet, although it is on my short list now due to wrapping up some other changes in OpenPnP.

My initial feeling on this is that I would only check the value at a couple specific points:

1. Immediately after a pick, to make sure the pick succeeded.
2. After bottom vision alignment to make sure that the part is still on the nozzle. I'd want the value to be close to what it was in #1.
3. And right before place, again, just to check that nothing happened during transit.

I initially thought I'd want to do this with a comparator to make it a go/no-go type thing but after seeing a lot of evidence of how this works in other systems I think it would be best to just be able to read a simple ADC value. That value can then be stored as the expected nominal value for each part.

So, I think based on that I'd want to use a hybrid of your Options A and C. I basically just want to be able to send a Gcode (or something) to read the ADC value. This could be done with a simple Arduino and a sub-driver, or be integrated into the motion controller.

I expect I'll be looking at this and starting to integrate it into OpenPnP sometime in the next 2-3 months. My major focus in the software right now is accuracy and reliability, and detecting failed picks is a big part of that.

I'll be starting with just the check after pick, since that can be done in the driver without changing any core OpenPnP code. After that, if it's working well, I'll move on to exposing the vacuum information in the UI and JobProcessor so that we can perform the other checks I mentioned above.

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.

obiwanke...@gmail.com

unread,
May 12, 2016, 12:58:05 PM5/12/16
to OpenPnP, obiwanke...@gmail.com
Definitely not ! It's a struggle on the machine with original hardware/software to get 0805's picked reliably, I'm sure 20+ years ago it would pick 0603's, maybe.

Jason von Nieda

unread,
May 12, 2016, 1:00:58 PM5/12/16
to OpenPnP, obiwanke...@gmail.com
Another quick note on this: There is an issue filed for the feature. If you'd like to guide the development of it please feel free to comment on it: https://github.com/openpnp/openpnp/issues/102

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.

obiwanke...@gmail.com

unread,
May 12, 2016, 1:14:45 PM5/12/16
to OpenPnP
Reading an analog input and making the decision in software based on nozzle size and part type would seem better to me. On the 460 if you want to load a problem part the vacuum switch pot often needs to be tweaked, it would be nice if each part/tip combo ( or just the tip ) had a definable window for pass / fail.

The Zevatech does a check after the initial pick to see if the part was actually picked up, usually only failing if the reel is empty, and does a check before placing. Default of 2 failed picks halts the placement. It may check in transit, it's hard to tell. The part flying off the tip after the centering jaws attempt to align the part is the most common failure if it does pick the part up initially, at least on our machine, other 360/460 owners may have a different experience. I doubt anyone is using physical centering, which makes me think that the initial check after pickup is probably going to catch the majority of pick failures.

Cri S

unread,
May 12, 2016, 2:58:53 PM5/12/16
to OpenPnP
Far more importante that pressure value is flow rate. If its top mutch speed must be lowered.

Mark Harris

unread,
May 12, 2016, 3:12:10 PM5/12/16
to ope...@googlegroups.com
I'm planning on using differential port on the head, I have a microcontroller up there already with RS485 down to the PC since I'm going to be having loadcells on the pickup heads which need to be read (at least amplified) as close as possible to the cell. 

So my head mount board so far has 4x load cell inputs (only two in use atm), 5x LED constant current controllers for the down camera lights, 4x pressure inputs (2 in use). I'm thinking of adding a USB 3.0 hub IC so I can put multiple cameras on the head easily too... but not sure if I want to deal with USB 3.0. My plan is to pass 24v to the head then regulate/isolate for the various functions.

matt

unread,
May 12, 2016, 6:49:40 PM5/12/16
to ope...@googlegroups.com
I've got a project looming where i need to place lots of 0603s with my
460 - what does it struggle with?

Thanks

Matt
> --
> 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/658d31db-1efd-40af-a2bf-6ebb6a479cc8%40googlegroups.com
> [1].
> For more options, visit https://groups.google.com/d/optout [2].
>
>
> Links:
> ------
> [1]
> https://groups.google.com/d/msgid/openpnp/658d31db-1efd-40af-a2bf-6ebb6a479cc8%40googlegroups.com?utm_medium=email&utm_source=footer
> [2] https://groups.google.com/d/optout

obiwanke...@gmail.com

unread,
May 13, 2016, 12:44:55 AM5/13/16
to OpenPnP
If you are using the original electronics, it kind of struggles with everything ! we usually go through and set each feeder before starting a job, check the pcb fudicial and set the pcb X and Y offsets. This will run OK for a few runs, depending on the job size, we run about 4 panels with about ~300 parts, so ~1200 parts then it starts missing pickups. Go back and set all the feeders again, recheck pcb fudicial, and probably good for another 20 to 25 panels, so probably 6000+ parts. I have always guessed the machine warmed up, belts stretched, etc...

You can see why we're so excited about OpenPnP ! We bought a couple of these PM460 machines for spare parts, ends up the spare parts machines are probably better than the one we've been using, so it's still running the original hardware/software until we have OpenPnP fully running on the spare machine.

We mostly use 0805 and that works OK, I've picked 0603's, if I were going to run a lot of 0603's I would check belt tension and check the centering jaws, mine has a lot of miles on it, if yours has less wear you may be fine

matt

unread,
May 13, 2016, 3:21:56 AM5/13/16
to ope...@googlegroups.com
Have you never fancied changing the belts? I keep thinking i should do
it, but i'm not sure how involved it is..
>> [3]
>>> [2] https://groups.google.com/d/optout [2]
>
> --
> 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/3ce6e6d4-4bf0-4d16-9559-096a5412d1b9%40googlegroups.com
> [4].
> [2] https://groups.google.com/d/optout
> [3]
> https://groups.google.com/d/msgid/openpnp/658d31db-1efd-40af-a2bf-6ebb6a479cc8%40googlegroups.com?utm_medium=email&utm_source=footer
> [4]
> https://groups.google.com/d/msgid/openpnp/3ce6e6d4-4bf0-4d16-9559-096a5412d1b9%40googlegroups.com?utm_medium=email&utm_source=footer

obiwanke...@gmail.com

unread,
May 13, 2016, 3:43:47 AM5/13/16
to OpenPnP
Top X and Y don't look too bad to do, lower belts running the shaft under the table for the left Y axis appear to be worse. I'm not sure changing the belt would alter the stretch, I've always thought that as long as they weren't broken they were OK. Interested to hear if anyone has replaced belts on any machine and had improved repeatablility ?

matt

unread,
May 13, 2016, 3:48:32 AM5/13/16
to ope...@googlegroups.com
I guess a work around for it is to periodically sync up - so after
running a job - get the software to recalibrate using the camera where
its home fiducial is, and then add the offset to all of the program
co-ordinates? This would obviously only work if the error was consistent
across the bed though.

I wonder if other machines suffer from this, i guess they probably do,
as things move/warm up etc.. steppers occasionally miss a step or
something?

Michael Anton

unread,
May 13, 2016, 5:33:23 AM5/13/16
to OpenPnP
I'm pretty sure that I heard of some of these machines doing warmup programs at the start to get them up to operating temperature.  Perhaps just moving around a bit without trying to place parts would help.

Mike

Henrik Olsson

unread,
May 13, 2016, 6:23:14 AM5/13/16
to ope...@googlegroups.com

Jason,

Thank you for your thoughts.

I’ll put a microcontroller on the board together with the sensors. I can then adapt my code to match whatever is decided to be the best “protocol”, using a subdriver to read it.

 

The only possible concern I have is what the roundtrip delay for a polled setup like that might be. We don’t really want the machine to hesitate each time it needs to check that the part is still on the nozzle. But I’m guessing that if the vacuum sensing is on a sub driver you can send a move command to the motion controller and while it’s moving (Z up after pick-up for example) poll the vacuum circuit for its value. Or is the system blocking in a way that it can’t do anything until it gets a “move done response” from the motion controller?

 

Thanks!

   /Henrik.

 

 


Från: ope...@googlegroups.com [mailto:ope...@googlegroups.com] För Jason von Nieda
Skickat: d
en 12 maj 2016 18:20
Till: ope...@googlegroups.com
Ämne: Re: [OpenPnP] Vacuum sense?

matt

unread,
May 13, 2016, 7:06:07 AM5/13/16
to ope...@googlegroups.com
Wouldn't you want to sense after the z-movement? Just wondering if its
likely to come off the nozzle as its being retracted upwards?

On 2016-05-13 11:23, Henrik Olsson wrote:
> Jason,
>
> Thank you for your thoughts.
>
> I'll put a microcontroller on the board together with the sensors. I
> can then adapt my code to match whatever is decided to be the best
> "protocol", using a subdriver to read it.
>
> The only possible concern I have is what the roundtrip delay for a
> polled setup like that might be. We don't really want the machine to
> hesitate each time it needs to check that the part is still on the
> nozzle. But I'm guessing that if the vacuum sensing is on a sub driver
> you can send a move command to the motion controller and while it's
> moving (Z up after pick-up for example) poll the vacuum circuit for
> its value. Or is the system blocking in a way that it can't do
> anything until it gets a "move done response" from the motion
> controller?
>
> Thanks!
>
> /Henrik.
>
> -------------------------
>
> FRÅN: ope...@googlegroups.com [mailto:ope...@googlegroups.com] FÖR
> Jason von Nieda
> SKICKAT: den 12 maj 2016 18:20
> TILL: ope...@googlegroups.com
> ÄMNE: Re: [OpenPnP] Vacuum sense?
> --
> 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/B35C7E3BAC284A209EDCE200CCD7AFCF%40Office
> [1].
> For more options, visit https://groups.google.com/d/optout [2].
>
>
> Links:
> ------
> [1]
> https://groups.google.com/d/msgid/openpnp/B35C7E3BAC284A209EDCE200CCD7AFCF%40Office?utm_medium=email&utm_source=footer
> [2] https://groups.google.com/d/optout

Henrik Olsson

unread,
May 13, 2016, 8:03:15 AM5/13/16
to ope...@googlegroups.com
I could be wrong of course but my guess is that it's more likely to fail
during pick-up than to fall off during the Z-move.

Either way, it doesn't really matter at this point. I just wrote it to
illustrate an example of being able to poll for vacuum pressure DURING
motion - any motion.

/Henrik.

-----Ursprungligt meddelande-----
Från: ope...@googlegroups.com [mailto:ope...@googlegroups.com] För matt
Skickat: den 13 maj 2016 13:04
Till: ope...@googlegroups.com
Ämne: Re: [OpenPnP] Vacuum sense?

obiwanke...@gmail.com

unread,
May 13, 2016, 11:12:43 AM5/13/16
to OpenPnP
The error is generally the same amount across parts and pcb, generally 5 to 10 0.05mm steps in one direction, and 4 to 5 0.05mm in the other. Michael is correct that running a warmup might solve this, the zevatech has a test mode that runs the head in a square pattern which might help to let it run for 10 minutes or so. Usually the error is just enough that the nozzle doesn't quite hit the part straight on, but touches the tape and not dropping into the pocket.

This is with the original zevatech electroincs/software, once we have OpenPnP running it will check fiducials on the pcb at each startup of a job, and vision will look at the part on pickup, so the belt stretch issue will still be there, but vision should make up for it. The Y axis on the Zevatech is over 500mm so this may not be an issue for a machine with a smaller travel. I would be curious if anyone is running an axis this length or longer with belt drive if they are seeing this kind of error ?

We have both cameras working, and can jog around. Still working on nozzles and a few minor things and haven't ran an OpenPnP job yet. Does OpenPnP do a visual homing cycle before each job ? If so that would correct for this warming affect.


On Friday, May 13, 2016 at 1:48:32 AM UTC-6, matt wrote:

matt

unread,
May 13, 2016, 11:21:08 AM5/13/16
to ope...@googlegroups.com
Are you using the original stepper drivers? Interested in what you've
done to the machine....
>>>>>> [2] https://groups.google.com/d/optout [2] [2]
>>>>
>>>> --
>>>> 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/3ce6e6d4-4bf0-4d16-9559-096a5412d1b9%40googlegroups.com
>> [4]
>>>> [4].
>>>> For more options, visit https://groups.google.com/d/optout [2]
>> [2].
>>>>
>>>>
>>>> Links:
>>>> ------
>>>> [1]
>>>>
>>
> https://groups.google.com/d/msgid/openpnp/658d31db-1efd-40af-a2bf-6ebb6a479cc8%40googlegroups.com
>> [1]
>>>> [2] https://groups.google.com/d/optout [2]
>>>> [3]
>>>>
>>
> https://groups.google.com/d/msgid/openpnp/658d31db-1efd-40af-a2bf-6ebb6a479cc8%40googlegroups.com?utm_medium=email&utm_source=footer
>> [5]
>>>> [4]
>>>>
>>
> https://groups.google.com/d/msgid/openpnp/3ce6e6d4-4bf0-4d16-9559-096a5412d1b9%40googlegroups.com?utm_medium=email&utm_source=footer
>> [6]
>
> --
> 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/32e28f49-76db-430a-a1ca-6af09ada338d%40googlegroups.com
> [7].
> [5]
> https://groups.google.com/d/msgid/openpnp/658d31db-1efd-40af-a2bf-6ebb6a479cc8%40googlegroups.com?utm_medium=email&utm_source=footer
> [6]
> https://groups.google.com/d/msgid/openpnp/3ce6e6d4-4bf0-4d16-9559-096a5412d1b9%40googlegroups.com?utm_medium=email&utm_source=footer
> [7]
> https://groups.google.com/d/msgid/openpnp/32e28f49-76db-430a-a1ca-6af09ada338d%40googlegroups.com?utm_medium=email&utm_source=footer

Jason von Nieda

unread,
May 13, 2016, 11:47:12 AM5/13/16
to ope...@googlegroups.com
Henrik,

Currently the system does block for all commands. There is starting to be some interest in changing this for performance reasons, but it's a change I am hesitant to make until I can see real performance reasons for doing so.

I wouldn't expect a short roundtrip over serial to take more than a couple hundred milliseconds, so I don't think this would be a big deal. If you find this delay is unacceptable we can start talking about unblocking the driver or other options.

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.

Jason von Nieda

unread,
May 13, 2016, 11:48:19 AM5/13/16
to ope...@googlegroups.com
OpenPnP does not have visual homing built in. This is something I expect machine implementations to implement since it is quite specific to different machines. It's easy to add, if required, and I have used in previous iterations of machines.

Jason


Cri S

unread,
May 13, 2016, 1:31:32 PM5/13/16
to OpenPnP
Just have homing near up looking camera, otherwise homing dot is required. On my experience vacuum reading need 200ms stabilisation, and pickup cycle is 60 to 80ms , total less then 100ms before moving.
It is however possible to sense missing pickup but not partial pickup after 80 to 100ms.
After second pickup its possible to sense first vacuum, and then after more then 5cm movement the second reading, worst case reading is during placement of first part.

obiwanke...@gmail.com

unread,
May 14, 2016, 4:10:12 AM5/14/16
to OpenPnP
Yes, we're still using the 5 phase steppers, Vexta has a micro-stepping 5 phase driver that works really well, we're using TinyG with it's onboard drivers for Z and A axis. As soon as we have it placing parts I'll add another section to the 460 conversion that Daniel did recently.

matt

unread,
May 14, 2016, 4:33:56 AM5/14/16
to ope...@googlegroups.com
I'm guessing you've stopped using the original sw and ISA cards then? Or
have you managed to get the ISA cards controlling the new Vextra
drivers?
> --
> 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/ac2c65ae-ddb2-446c-978d-62e5b85e6f7a%40googlegroups.com
> [1].
> For more options, visit https://groups.google.com/d/optout [2].
>
>
> Links:
> ------
> [1]
> https://groups.google.com/d/msgid/openpnp/ac2c65ae-ddb2-446c-978d-62e5b85e6f7a%40googlegroups.com?utm_medium=email&utm_source=footer
> [2] https://groups.google.com/d/optout

Glen English

unread,
May 14, 2016, 4:39:47 AM5/14/16
to OpenPnP
No reason why OpenPNP couldn't redo  the fiducial check regularly, or if the temperature changes by x degrees....

On Saturday, May 14,

Cri S

unread,
May 14, 2016, 7:25:04 AM5/14/16
to OpenPnP
If someone need 5phase drivers, I have some left over.

obiwanke...@gmail.com

unread,
May 14, 2016, 11:56:45 AM5/14/16
to OpenPnP
Yes, the 386 PC with it's ISA cards, and the main pcb in the drawer are gone. We've made a replacement pcb for the old main pcb, all the molex connectors are in the same place, although most connect to wring that does nothing now. The new pcb has a motion contoller plugged into it. So far we've driven the machine with Kflop, DeskCnc and TinyG.

obiwanke...@gmail.com

unread,
May 15, 2016, 12:34:11 AM5/15/16
to OpenPnP
Depending on the job size just checking the pcb fiducial at the beginning of each job might be all that's needed for our machine, at least for placement, figuring offset due to temperature change for the feeders will require re-homing after each job. We have to run several jobs before the error has accumulated enough to cause pick failures, if the fiducials are checked at each restart, the warming up issue would probably cause the software to correct for offset on the first few jobs and less afterwards.

matt

unread,
May 16, 2016, 10:36:32 AM5/16/16
to ope...@googlegroups.com
I had a mad idea that perhaps the actual tape knock pins could be used
as fiducials for the feeders... might just be a crazy idea though :D
> --
> 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/1ff93a10-4ceb-45dc-8e3e-c13c15c4b6d8%40googlegroups.com
> [1].
> For more options, visit https://groups.google.com/d/optout [2].
>
>
> Links:
> ------
> [1]
> https://groups.google.com/d/msgid/openpnp/1ff93a10-4ceb-45dc-8e3e-c13c15c4b6d8%40googlegroups.com?utm_medium=email&utm_source=footer
> [2] https://groups.google.com/d/optout

obiwanke...@gmail.com

unread,
May 17, 2016, 1:21:30 AM5/17/16
to OpenPnP
If we go ahead with the dual head we're probably going to abandon the tape knocker and drive the feeders with solenoids, so that probably won't work for us. I don't know if each feeder needs a fiducial ?

Juha Kuusama

unread,
May 19, 2016, 11:21:52 AM5/19/16
to OpenPnP
Hi,

(This is my first post on this forum. I'm Juha Kuusama, designer of the LitePlacer pick and place machine. I just started to follow this group after a user on my forum was able to get OpenPnP running on the LitePlacer: http://www.liteplacer.com/phpBB/viewtopic.php?f=10&t=308)

As for vacuum sense, here is another data point: Another user on my forum updated the TinyG firmware to use the on-board ADC: http://liteplacer.com/phpBB/viewtopic.php?f=10&t=154 .
So, if your machine uses TinyG as the controller, the machine side of this is already done, you only need to add the OpenPnP side.

-Juha 
 

Cri S

unread,
May 19, 2016, 11:49:19 AM5/19/16
to ope...@googlegroups.com
Yes, the mod was used from you'r forum by several openpnp users sucessful.
Unfortunatly tinyg have too less stepper driver, as openpnp users
mostly have 2 nozzle
systems. General layout: X, Y, Z , A+B connected in serie. That works.
The driver have changed a lot and on tinyg (i don't have it) and i
have used Gcode driver because on gcode interface it flags the empty
queue (undocumented asterix feature).


2016-05-19 10:49 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/DqOruYhAuM8/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/d8465827-1d20-4ac8-91ac-d27243428802%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

Henrik

unread,
Jun 15, 2016, 3:59:37 PM6/15/16
to OpenPnP
I now have a working board with pressure sensors, still waiting on a couple of connectors before it can go on the machine:

The firmware is very basic at the moment but it responds to simple M-codes, it has various functions* but as far as vacuum sense goes you send it M1101 and it returns the raw ADC count from the sensor, in human readable text, for nozzle 1, M1102 is same thing for nozzle 2. I can change the format of the response to fit whatever is needed once the function gets incorporated in OpenPnP.

I did some very basic tests and with a CN65 nozzle (0.65mm hole) the difference between part and no part on nozzle is around 140 counts on the 10bit ADC so it should be quite easy to detect if the part is there or not.

The sensors used are the MPVX5050DP. If you're going to use these just note that the vacuum needs to be connected to the port which normaly is the ambient port. This is the port closest to the PCB and unfortunately it's so Close to the PCB that it's impossible to get anything on the barbed port unless the ports sticks out off of the edge of the PCB or is lifted up, as is the case on my board.

/Henrik.

* Other "clever" functions are automatic blow off with settable time which means that when you send the M-code to release the part the board turns off the vacuum valve, waits a configurable time, turns on the pressure valve, leaves it on for a settable time and then turns it off. The valves can of course be individually controlled as well. The timings are setable with M-codes and the LED-driver output current (it's analog current sink) is set with yet another M-code.


Jason von Nieda

unread,
Jun 15, 2016, 9:58:26 PM6/15/16
to OpenPnP
Really nice looking board Henrik! Sounds like the pressure sensors are working well. I think you could very easily hack support in OpenPnP for this if you get things up and running before I am able to add it. It's just a matter of extending the GcodeDriver, overriding pick() and adding a check for the pressure value. It would be a hack, but it would probably work just fine until we have full support for it.

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.

mojalovaa1

unread,
Jun 26, 2016, 5:34:39 PM6/26/16
to OpenPnP
Henrik , you are  tested vacuum sensor , how work ?
That circuit is free for see  or is only for yours ?

Henrik Olsson

unread,
Jun 27, 2016, 2:04:48 AM6/27/16
to ope...@googlegroups.com
No, no more tests have been done. Will need Jasons support inside OpenPnP to add it in and I'm redoing the plumbing and an all new electrical cabinet so there's no rush on m behalf.

I'm away from home at the moment but I'll upload the schematic in a couple of days and post a link here. If not, remind me!

/Henrik.

Henrik

unread,
Jul 1, 2016, 9:02:30 AM7/1/16
to OpenPnP, hen...@henriksplace.se
Here's a schematic of my planned pneumatic (ex sensors) system.
The idea is to have a (very) small resorvoir on the head itself, with a volume at least equal to that of the tubes between the reservoir and the nozzles. A larger reservoir will probably be placed at the pump. Yes, the plan is to have the valves on the head. Do you see any issues with this so far? Any recommendations for improvement?

The "issue" I have is where to connect to the pressure sensors.
Ideally they should sense the pressure right at the nozzle but that's not practical. So the obvious point of connection is at [A]-port of valve 1 and 2 respectively. This however introduces the issue that, when "purging" the nozzle a negative pressure differential will be applied to the sensor and I don't know how it'll handle that - long or short term. The datasheet simply specifies that it's designed for positive pressure differential. MPX5050DP is the sensor I'm using (http://www.nxp.com/files/sensors/doc/data_sheet/MPX5050.pdf)

The next possible point of connection is at the [P]-port of valve 1 and 2 respectively but that might not be ideal due to the pressure drop across the valve but I don't know if it'll be a problem in practice.

Am I overthinking this? Should I just try connecting the sensors at the [P]-port and see if that works and if it doesn't try at the [A]-port and risk destroying the sensors? Or should I try finding some vacuum check valves to place between the [A]-port and the sensors?

Any thoughts, ideas, comments? Any insight to how it's handled on other machines?

/Henrik.

SMdude

unread,
Jul 1, 2016, 10:10:03 AM7/1/16
to OpenPnP, hen...@henriksplace.se
Hi Henrik,

Love your way of thinking! I have also been toying with the idea of a small vacuum reservoir on the head assembly... Makes sense.

Now looking at the datasheet, the absolute maximum rating for pressure p1 > p2 is 200kpa,  however, it doesn't state p2>p1. Also the pressure range of these sensors is 50kpa. If I were to use say an air-conditioner vacuum pump for the vacc source, they pull down very close to 0kpa, normal atmospheric is 101kpa. I don't know how good the vacuum is on the small vac pumps used in general on PnP, would be interesting to know.

Looking at the diagram of the ic internals, it might handle the puff, but maybe not!!! :D Not really helpful hey!

All in all, it would probably be best to find an absolute pressure sensor rather than adding in small check valves to prevent pressure from getting to the vacuum port. Also it would be best for the sensor to be T'd in as close to the tip as possible. The closer the sensor is to the reservoir/pump, there will be less pressure variation from a leak at the nozzle, so as close to the tip as possible will show maximum difference for a leak/miss-pick.

Cheers

SMdude

unread,
Jul 1, 2016, 11:27:35 AM7/1/16
to OpenPnP, hen...@henriksplace.se
One way to get around the pressure problem woudl be to connect the p1 port up to the line that goes between valve 3 and 1, 4 and 2. This way, when there is a pressure puff, the differential pressure should be near to 0 and always more in the p1 port, then when solenoid 3 and 4 are off, the line is open to atmospheric again and you can take your vacuum readings... All depends if the 50kpa range is enough.
I know there are some people who use aircon vac pumps on pnp's...

Henrik

unread,
Jul 1, 2016, 2:37:13 PM7/1/16
to OpenPnP, hen...@henriksplace.se
Thanks for responding!
That's a very good idea! The sensor should survive 200kPa so as long as the "puffing pressure" is lower than that there should be no risk of destroying the sensor even if something should get blocked etc. I imagine you want a SLIGHT positive pressure just to make sure the part drops off the nozzle, you don't want to shoot all the parts off the board :-)  I'd think 2bar should be more than enough but again, I'm new at this so.... 

As for the actual purpose of the sensor - vacuum sensing:
Yes, the "full deflection" of the sensor is 50kPa but since it'll specified to survive 200kPa there should be no way to destroy it by applying "too much vacuum" as long as you don't apply positive pressure to the other port of the sensor at the same time of course.

As far as I can see we're really only interested in the pressure difference between when there IS a part on the nozzle and when there ISN'T (with some tolerance of course). Should the sensor saturate I know that there's 50kPa - or more - acting on the part. I think I prefer resolution over range in this particular case but again, I might have it wrong.

The sensor is available in various ranges so it's easy to change, should it be needed.

/Henrik.

Malte R.

unread,
Jul 1, 2016, 5:04:40 PM7/1/16
to OpenPnP, hen...@henriksplace.se
Hi Henrik,

this is how I setup my system:



I use only one nozzle but it would work the same with multiple nozzles; just duplicate the bottom section of the drawing.

The upper half is just to control my pump; I use one pump for both negative and positive pressure; thus the two extra valves and sensors.

The reservoirs are most importance; as they add "pneumatic capacitance" to the system and smooth both flow of air and pressure; actually quite similar to the way a large C works in electronic circuits :-D

The main difference to your drawing that I connected both pressure and vacuum via a seperated solenoid valves; the nozzle is basically attached to a T-fitting.

Reason was to be able to "eliminate" any negative pressure (vacuum) in the nozzle quickly; I shut off the vacuum and at the same time give a small "puff" of positive pressure to create equilibrium in the nozzle.

Using two separate valves allows for faster pressure change than a single 1/3 valve or two daisy-chained 2/3 valves as in your case. The mechanical actuation of the valve naturally takes quite a bit of time; depending on the solenoid and valve it might be in the hundreds of milliseconds.

My "nozzle" vacuum sensor is connected just behind said T-connector; which gives a reading very close to the actual pressure at nozzle tip. I only use this sensor to detect failed pickup or parts dropped in flight; the pump and thus the system pressure are controlled by the other sensors.

Hope this helps!

Best regards
Malte
Auto Generated Inline Image 1

SMdude

unread,
Jul 1, 2016, 8:16:47 PM7/1/16
to OpenPnP, hen...@henriksplace.se
Hi Henrik,

The question that needs to be asked is what is the typical vacuum pressure that PnP's run at. If it is say 25kpa(absolute) then the pressure sensor is reading -75pka, thus in saturation and won't read properly again until the pressure is at -50kpa or more. If there were a miss-pick where the part was on the nozzle but not properly and leaking, the pressure difference between good pick and miss-pick might not be enough, especially if you are using a really small nozzle.

Looking at some absolute sensors, they seem to have un-amplified outputs, this could allow for a discreet solution to be made to amplify the area of interest(0 to 101kpa absolute). If you want more resolution, a higher res adc could be used? We do have a fair bit of time to take measurements.
The puffing pressure would then just cause the output to go to the rail, without any possible damage to anything...

Malte R, That's a nice trick with your valves, that way you can start to apply the positive pressure before the vac valve has finished closing.
What vac pressure is your system going down to?

Mick

Henrik Olsson

unread,
Jul 3, 2016, 5:33:34 AM7/3/16
to ope...@googlegroups.com

Malte,

Thank you for showing us your setup, I really like the idea of using the same pump for both vacuum and pressure – I would never have thought of that.

I’ll be using SMC SY114 valves and they have a specified response time of less than 10ms which I think is fast enough.

 

Which electronic sensor are you using?

 

/Henrik.

 


Från: ope...@googlegroups.com [mailto:ope...@googlegroups.com] För Malte R.
Skickat: den 1 juli 2016 23:05
Till: OpenPnP
Kopia: hen...@henriksplace.se
Ämne: Re: [OpenPnP] Re: Vacuum sense?

Hi Henrik,

this is how I setup my system:



I use only one nozzle but it would work the same with multiple nozzles; just duplicate the bottom section of the drawing.

The upper half is just to control my pump; I use one pump for both negative and positive pressure; thus the two extra valves and sensors.

The reservoirs are most importance; as they add "pneumatic capacitance" to the system and smooth both flow of air and pressure; actually quite similar to the way a large C works in electronic circuits :-D

The main difference to your drawing that I connected both pressure and vacuum via a seperated solenoid valves; the nozzle is basically attached to a T-fitting.

Reason was to be able to "eliminate" any negative pressure (vacuum) in the nozzle quickly; I shut off the vacuum and at the same time give a small "puff" of positive pressure to create equilibrium in the nozzle.

Using two separate valves allows for faster pressure change than a single 1/3 valve or two daisy-chained 2/3 valves as in your case. The mechanical actuation of the valve naturally takes quite a bit of time; depending on the solenoid and valve it might be in the hundreds of milliseconds.

My "nozzle" vacuum sensor is connected just behind said T-connector; which gives a reading very close to the actual pressure at nozzle tip. I only use this sensor to detect failed pickup or parts dropped in flight; the pump and thus the system pressure are controlled by the other sensors.

Hope this helps!

Best regards

Malte.

image001.jpg

Henrik Olsson

unread,
Jul 3, 2016, 6:01:14 AM7/3/16
to ope...@googlegroups.com

Mick,

I don’t know at what kind of pressure ”real” machines work. I’m currently using one of those cheap EBAY aquarium type pumps you get with a manual pick-up tool but I’ve ordered a new pump specified at -50kPa vacuum so as long as that pump is able to stick the parts firmly to the nozzle I won’t be overdriving the sensor. If I have to get an even more powerful pump (there’s -76kPa pump available in the same series) then I might have to revisit the exact sensor as well.

 

Right now my main concern is the positive pressure applied to the sensor but you’re idea of where to connect the “reference port” should solve that I think.

 

/Henrik.

 

 

 


Från: ope...@googlegroups.com [mailto:ope...@googlegroups.com] För SMdude
Skickat: den 2 juli 2016 02:17
T
ill: OpenPnP
Kopia: hen...@henriksplace.se
Ämne: Re: [OpenPnP] Re: Vacuum sense?

 

Hi Henrik,

Malte R.

unread,
Jul 3, 2016, 8:14:16 AM7/3/16
to OpenPnP
Hello,

for the pump I use a relatively cheap TZ 712/P12-15040 from Topsflo (http://www.topsflo.com/mini-diaphragm-pump/).

The pump could do -60kPa according to specs; in practice I only produce about -40kPa (~0.4 bar absolute) and that has been good enough so far. On the positive side I create about +80kPA (~ 1.8 bar absolute).

The other important aspect is the flow rate; 40 liter / minute in my case. There are many smaller pumps which would create enough suction but just do not transport enough air.

I put the pump into a noise-insulated box; details can be found in this thread: http://liteplacer.com/phpBB/viewtopic.php?f=4&t=145

For sensors, I have a MPXV6115V (V = Vacuum !!) for the negative side and a MPX4250A for the positive; both are analogue, linear sensors made by Freescale.

On the nozzle I also use the negative pressure sensor; as I am obviously only interested in the vacuum.

In my design I use the surface mounted package "CASE 482A" and thick wall silicon tubes to connect it to the plumbing.

The vacuum sensor can measure –115 to 0 kPa; sensitivity is ~38mV per kPA at VCC = 5V. The positive pressure sensor is speced for 20 to 250 kPa; ~20mV per kPA @ 5V.

Cheers
Malte

D.Mouradov

unread,
Aug 25, 2018, 12:48:50 PM8/25/18
to OpenPnP

Олег

unread,
Mar 10, 2023, 2:27:45 AM3/10/23
to OpenPnP
Tell me how to properly configure Smoothieware and XGZP6847?
I will connect through a resistive divider (to change the range 0..5V to 0..3.3V).
But I don't know what to write in the config file.

суббота, 25 августа 2018 г. в 19:48:50 UTC+3, D.Mouradov:

mark maker

unread,
Mar 10, 2023, 5:15:50 AM3/10/23
to ope...@googlegroups.com

Towards the end of this post:

https://makr.zone/vacuum-sensor/192/

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

ma...@makr.zone

unread,
Mar 10, 2023, 7:59:35 AM3/10/23
to OpenPnP
Oleg, please do not email me privately. I repost this here:

> I read, but did not quite understand how to solve my problem.
> Can you help?
> I have an XGZP6847 sensor.
> The output is an analog signal (4.5V ... 0.5V => -100kPa ... 0kPa).
> The article uses a different sensor and a different range. In addition, a separate operational amplifier chip is used.
> But in my case, this is probably not necessary?


At the moment, I don't have time to explore the electronic side of this. Maybe somebody else on the list can help.

_Mark

ThePoll100

unread,
Mar 11, 2023, 4:48:36 AM3/11/23
to ope...@googlegroups.com
Hello, I have the exact model as in the link: https://a.aliexpress.com/_EwqdcYP  and works properly.  You need to use a divider at the output from what I remember, but at the moment I am not at the machine.  Regards.

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

DoTheDIY (Apoorv Chaudhary)

unread,
Dec 31, 2023, 2:38:01 AM12/31/23
to OpenPnP
I am using  XGZP6847  and have removed the resistor and capacitor on smoothieboard thermistor. I will be using a resistor divider to limit the voltage. 
I am able to read the value on OpenPNP . I just want your opinion will this approach work as it will take some more time to setup everything 

Reply all
Reply to author
Forward
0 new messages