Vacuum sense difference value using MPXV7002DP

189 views
Skip to first unread message

Morpheus

unread,
Jun 22, 2020, 7:04:26 PM6/22/20
to OpenPnP
Hi

Im back!

Trying to figure out the nozzle tip settings for part recognition. Since im using MPXV7002DP who output :

- -2 to 2 kPa.
- 0.5 to 4.5 V Output

Im measuring the difference in pressure on the main pipe, and at the nozzle. Ive been able to produce reliable values, a difference of approximately 20 points with the 502 nozzle tip. The larger tips give greater difference values.

Unfortunately the readings differ when the second valve is active and the readings overlap. 

Im thinking the difference settings, in nozzle tip - part recognition is the way to go, but i cant wrap my head around it. 

With the 502 tip im seeing :

No vacuum, no valve active : 518

Vacuum on, no valves active : 53,9

Vaccum on, valve 2 (tip 502) active  : difference of around 20 points in the 120 area (part on / part off ).

Vacuum on, valve 2 and 1 active, constant part on valve 1 : Difference of around 15 points in  the 280 area (part on / part off ).

Both valves have their own pipeline, connected close to the pump/reservoir.







Michael Anton

unread,
Jun 22, 2020, 7:40:34 PM6/22/20
to OpenPnP
A range of +-2 kPa is nowhere near large enough.  I regularly see vacuum levels of around -80 kPa or higher on my machines (using a vacuum ejector).  Part on the nozzle (a small nozzle) is about -80 kPa, and part off the nozzle can be as high as -17 kPa (for a larger nozzle).  I suspect your signals are just clipping at the negative end.

Morpheus

unread,
Jun 22, 2020, 7:47:47 PM6/22/20
to OpenPnP
The way i understood the settings option, in tip part recognition, is its ability to re-calibrate the baseline. That way a difference of 20 would seem significant. 

Since the sensor is outputing values, the difference in vacuum must be within the range. 

Sucktion wize, i can pick up gsm modules.

Michael Anton

unread,
Jun 22, 2020, 7:55:50 PM6/22/20
to OpenPnP
If you can pick up GSM modules, your vacuum is much higher than -2 kPa.  Your signal is certainly electrically clipping with that sensor.  The sensor will always output a value, as it is a voltage output.  It has no way to tell you the measurement is in error.  Measure the voltage coming out of the sensor.  I suspect it is around 0.5V output, and probably doesn't change by much with the two vacuum levels.  Even though you are sensing some variation, it is probably doesn't match reality very well, since you are outside of the working range of the sensor, and it won't be reliable as a result.  

Morpheus

unread,
Jun 22, 2020, 8:07:24 PM6/22/20
to OpenPnP
Just to clarify @Micheal

Im not measuring the difference between atmospheric pressure and the wacuum. Im measuring the difference between the wacuum in the main pipe and the nozzle. 

If you try to put a 502 tip on a pipe and suck on it, as hard as you can, there would form a vacuum, because the 502 tip is that small. But there will be a difference i vacuum level between the main vacuum pipe and the nozzle, close to the "main" leak.

You cant really compare a sensor which measures vacuum compared to atmospheric pressure and what im doing with the MPXV7002DP 

Michael Anton

unread,
Jun 22, 2020, 8:35:09 PM6/22/20
to OpenPnP
So you're basically treating the pipe as an orifice, and measuring the pressure differential across that?  This would result in an airflow measurement, which should give you what you are looking for.  I'd worry about detecting a difference of only 20 counts reliably though, but I guess this would be the problem with small nozzles.

My smallest nozzle is 0.5mm ID.  The absolute readings I get are -68 kPa with no part on the nozzle, and -85 kPa with a part on the nozzle (measurements are taken at the end of a tube, about 1m away from the nozzle, right at the vacuum generator).  I can put a 0.45mm drill into the end of a 502 nozzle, so it is very close in size to what is on my machine.  Certainly you'd have enough resolution to measure this as absolute pressure, so I'm wondering if you method is an improvement or not.  You might want to try actually measuring across an orifice, rather than measuring across the tube, as you would probably see a larger signal then, but probably with reduced flow for larger nozzles.

Michael Anton

unread,
Jun 22, 2020, 8:40:22 PM6/22/20
to OpenPnP
Are the values you giving in A/D counts?  What is the reference voltage, and resolution of the A/D?  


On Monday, June 22, 2020 at 5:47:47 PM UTC-6, Morpheus wrote:

Morpheus

unread,
Jun 22, 2020, 8:43:18 PM6/22/20
to OpenPnP
temperature_control.nozzle.enable               true 
temperature_control.nozzle.sensor    ad8495            #
#temperature_control.nozzle.thermistor_pin       0.23 
temperature_control.nozzle.ad8495_pin    0.23     #
temperature_control.nozzle.ad8495_offset 0
temperature_control.nozzle.heater_pin           nc              #
temperature_control.nozzle.designator           VAC_S1                #
#temperature_control.nozzle.min_temp             -300              #
#temperature_control.nozzle.max_temp             300 #
#temperature_control.nozzle.thermistor           EPCOS100K        # see http://smoothieware.org/temperaturecontrol#toc5
#temperature_control.nozzle.beta                4420 # or set the beta value
#temperature_control.nozzle.bang_bang            true             # set to true to use bang bang control rather than PID
#temperature_control.nozzle.hysteresis           5.0              # set to the temperature in degrees C to use as hysteresis when
temperature_control.nozzle.runaway_heating_timeout   0      # it seems to crash
temperature_control.nozzle.runaway_range        0                # a rapid delta in temp triggers a halt - 0 disables it
#temperature_control.nozzle.set_m_code           104              # m-code for setting the desired vacuum level
#temperature_control.nozzle.set_and_wait_m_code  109              # m-code for setting and waiting for a desired vacuum level (pick and wait)
#temperature_control.nozzle.max_pwm               64               # max pwm, 64 is a good value if driving a 12v resistor with 24v.
temperature_control.nozzle.readings_per_second   320          
config.txt

Michael Anton

unread,
Jun 22, 2020, 9:11:16 PM6/22/20
to OpenPnP
I guess, I don't really understand how you have this connected.  Are you using an AD8495 thermocouple amplifier to read the signal from your pressure sensor, as the config implies?

At least since you are using a smoothieboard, the resolution of the ADC is pretty good, at 12bits, but this means that 20 counts is a really small signal change.  Though, maybe this 20 value is scaled somehow by smoothie, and not raw A/D counts.

Morpheus

unread,
Jun 22, 2020, 9:21:45 PM6/22/20
to OpenPnP
Yes, i have been trying to figure out how to get the raw readouts through smoothieware.

The sensor reads from -2 to +5 so what im seeing is just halv the scale. 

I went with the AD8495 eksaple from the smoothie docs, since it seamed to work. 

Raw data plz !

Michael Anton

unread,
Jun 22, 2020, 9:51:56 PM6/22/20
to OpenPnP
Not sure what you mean by the sensor reads from -2 to +5?

One thing to note is the full scale value for the ADC is 3.3V, so you won't be able to read the full range of the sensor, unless you reduce the signal from the sensor before you connect it to the Smoothieboard (I'd recommend using a buffer amp if you do this with resistors).  Also, since the inputs on the Smoothieboard were meant to measure thermistors, there is a 4.7k pullup resistor, and a 10uF capacitor on the pin.  The output current at full scale on the sensor is specified at 100uA, or about a 45k output impedance.  That 4.7k resistor will provide a pretty substantial load to your sensor, since it can pullup a 0V signal with 700uA of current, and the 10uF capacitor will do a good job at slowing down the response time.  You might want to remove both of these components on the input you are using.

Morpheus

unread,
Jun 22, 2020, 11:51:21 PM6/22/20
to OpenPnP
Right, that was a typo. -2 to +2

I moved the sensor output to pin 1.30 and 1.31, which seems fine. they are not overvoltage protected, but because the sensor will only see vacuum, the voltage scale goes from 0 (-2) to 2.25 (0) the AD pins will not fry.

Can anyone explain how i go about setting up the nozzle tip part recognition, part. Low and high value ? Difference Low / high?

Michael Anton

unread,
Jun 23, 2020, 1:14:18 AM6/23/20
to OpenPnP
It's not likely you would cause the ADC inputs problems, even if the voltage did go up to 4.5V.  The output can only source 100uA of current, so the input protection diodes would catch this easily, without damage.  Those inputs should work much better for your sensors.  Are the values you get now any different?  Technically, your output range is now 0.5 to 2.25V, since the pressure sensor doesn't pull right to ground according to the datasheet.

If you ever use positive pressure to help with blowing parts off, then you would have an output above 2.25V.  Many machines do this to help avoid problems with sticky nozzles, and/or to speed up the release of parts.

Sorry I can't help with the software side, since I currently don't use OpenPnP, so I hope someone else can assist with this.

Morpheus

unread,
Jun 23, 2020, 1:15:39 AM6/23/20
to OpenPnP
Ok, i see

There is an old pull request for custom adc sensor config.


It really sucks not to be able to read a freaking adc without the value being divided by a constant (4095 / 3.3 * 0.005) 

Why ?

Michael Anton

unread,
Jun 23, 2020, 1:21:32 AM6/23/20
to OpenPnP
Well, that constant isn't too bad, as it just scales to sensor output voltage * 0.005.  At least it's sort of in engineering units, and it is pretty easy to work backwards to volts by multiplying by 200.

Morpheus

unread,
Jun 23, 2020, 1:23:09 AM6/23/20
to OpenPnP
Right... but the resolution is lower !

Morpheus

unread,
Jun 23, 2020, 2:16:11 AM6/23/20
to OpenPnP
Never mind, ill just wing it... 

Michael Anton

unread,
Jun 23, 2020, 6:31:08 PM6/23/20
to OpenPnP
I guess whether or not the resolution would be lower would depend on how many significant digits it is reporting.  If it reads down to 0.005 for instance, there would be no loss in precision.

Morpheus

unread,
Jun 24, 2020, 8:37:33 PM6/24/20
to OpenPnP
Ok, i have been thinking. 

To avoid the vacuum from dropping when the second valve activates, i will install a second pump. This is not an ideal sulution, cost wise, but since i have an old silent mouse pump, i will put it to good use. https://www.hugglepets.co.uk/product/fish-r-fun-mouse-air-pumps/). I know for sure it can lift the tiny parts, but it will struggle with larger ones. 

Having two pumps, a large and a small, will make sense for the setup i am building. Mainly it will be nozzle nr. 2 which will be able to change nozzle tip. 0402 parts dont need that much vacuum.  At times i see them sticking to the tip without vacuum at all. Could be charged or greasy, butt i dont really know.. because 0402 parts or sometimes 0603 parts will take up the majority of picks, it will make sense to divide it up like that.

Have had a longe break from pnp doing stuff, but its good to finitely be able to confirm, that the software is handeling the 0402, ass i hoped fore. 

Here is my latest progress. Will soon post a vid of the mashine doing its thing.

DSCF1045.JPG
Reply all
Reply to author
Forward
0 new messages