Author Topic: Have anyone worked with O2 analyser. (urgent! its for covid patients)  (Read 5026 times)

0 Members and 1 Guest are viewing this topic.

Offline AdhithTopic starter

  • Frequent Contributor
  • **
  • Posts: 323
  • Country: in
Hello guys, I need you support on this one
As the conditions in our country, India is getting bad, me and few of my friends are planning to build an O2 concentrator. We have done our initial trial testing we are getting good results. Now we are moving towards the electronic part where, we need to analyse the O2 percent that we generated using the OOM202  oxygen sensor and display on a 7 segment display. This goes on to each system that we produce. could anyone guide me how to use this O2 sensor module with arduino ?

any help is appreciated, We will be pushing lots of these in this week, if we could figure out this electronic part. Thank you
« Last Edit: May 09, 2021, 01:26:44 pm by Adhith »
 

Offline Manul

  • Super Contributor
  • ***
  • Posts: 1109
  • Country: lt
Never used this, but here are my thoughts. From what I see, it is a passive sensor (without the need of power). It has voltage output proportional and quite linear to volume percentage of O2.

1. You can directly connect this sensor output to ADC input and take samples.
2. It seems it outputs a bit less then 1mV per 1% of O2, so lets say working range 0 - 100mV.
3. I would say you need at least 1mV ADC resolution. It means, that for example, Arduino UNO default configuration is not good enough (10bit ADC, 5V reference, resolution = ~4.9mV)
4. If you want to use UNO, your best bet is to configure it to use internal 1.1V reference, then the resolution is ~1mV. Might be good enough.
5. If you plan to use different MCU which has 12 or 16 bit ADC, that would be good. Just choose the lowest reference voltage possible.
6. When you connect sensor to MCU, use short and possibly shielded wire (shield connected to Arduino ground) to avoid noise, because sensor signal is quite small and high impedance, so it is easy for external electrical noises to mess up the readings.
7. If it is not possible to calibrate each sensor with known O2 concentrations, then just calculate the ADC raw value per O2 percentage based on reading at ambient air. For example, take raw ADC value at ambient. Let say it is 15. So it means 20/15 (~20% air O2 in most places) = 1.33% O2 per ADC step. If then your ADC reads value 25, you multiply by 1.33 and get 33.3% O2.
8. You can take multiple samples and average them - you will get more effective resolution.
9. Don't expect to get very accurate readings, but I guess 1-2% is good enough for this application.

Good luck
« Last Edit: May 09, 2021, 03:13:09 pm by Manul »
 
The following users thanked this post: Adhith

Online daisizhou

  • Frequent Contributor
  • **
  • Posts: 560
  • Country: cn
OOM202 oxygen battery, placed in normal air (oxygen concentration is 21%), output 13.9mV, placed under 100% pure oxygen, output 66.3mV, the actual error is much lower than 5%

The ideal oxygen sensor should be a paramagnetic oxygen sensor.The principle is that oxygen molecules are deflected by magnetic force in a magnetic field.This is a long-term effective sensor
OOM202 oxygen battery is only valid for half a year,Because the chemical reaction is going on all the time
daisizhou#sina.com #=@
 

Offline fcb

  • Super Contributor
  • ***
  • Posts: 2117
  • Country: gb
  • Test instrument designer/G1YWC
    • Electron Plus
Top of range: 21% O2 is 16mV. 100% O2 then something like: 76.2mV, so probably allow for 80mV FSD (full scale deflection).  Don't feed the sensor striaght into the Arduino - you'll struggle to get rid of ADC sampling pulses etc.. and your resolution will be really poor.

Just use a rail-to-rail opamp (like MCP6001 or MCP6002 or whatever you have to hand) in a non-inverting amplifier to scale your 80mV to 5V (for the Arduino, assuming Arduino is 5V).

You probably want to trim this in hardware rather than software then probably stick a 100K potentiometer on the front-end and tune your gain for say 50x.  If you can find an opamp with lower input offset then great, although any half-decent EE can design a circuit that would compensate for what parts you can get locally.

If you get stuck then I'm sure someone here can design you a circuit with what you can get locally.  Probably best just to list the bits you can get really fast.
https://electron.plus Power Analysers, VI Signature Testers, Voltage References, Picoammeters, Curve Tracers.
 
The following users thanked this post: Adhith

Offline Manul

  • Super Contributor
  • ***
  • Posts: 1109
  • Country: lt
Just use a rail-to-rail opamp (like MCP6001 or MCP6002 or whatever you have to hand) in a non-inverting amplifier to scale your 80mV to 5V (for the Arduino, assuming Arduino is 5V).

You probably want to trim this in hardware rather than software then probably stick a 100K potentiometer on the front-end and tune your gain for say 50x.  If you can find an opamp with lower input offset then great, although any half-decent EE can design a circuit that would compensate for what parts you can get locally.

I'm not sure, and main reason is that OP wants to produce it very quickly, maybe even without PCB. As you said, OpAmp will also add offset, so offset and scaling both need to be corrected. I would still vote for trying direct sampling. Small capacitor can be added, so ADC sees lower impedance for its sampling. Signal frequency is very low anyway. Also because it is so slow, huge averaging can be used, like 100 samples or more, possibly adding quite a few bits of extra resolution. What I'm saying is that for someone who is not an expert, adding frontend would probably cost some additional development effort and make production harder (especially if it is hand made devices).

Probably how I would do calibration is a hidden calibration button or jumper. With a system powered and stable (software timer might be included to not allow premature calibration), the button can be pushed and MCU saves the ambient (21%) reading to eeprom. Every time it boots, it reads and uses that value. So it is very easy to calibrate at production or any time later if it drifts.
« Last Edit: May 09, 2021, 05:48:03 pm by Manul »
 

Offline fcb

  • Super Contributor
  • ***
  • Posts: 2117
  • Country: gb
  • Test instrument designer/G1YWC
    • Electron Plus
The offset is +/-4mV, the output of the sensor at 21% O2 is 13-16mV.  If the OP want's do SW calibration, they could, but they have to write it.  Probably much easier to do a calibration in the analog domain. No point in spending time working out a schematic unless the OP states what parts we has available.
https://electron.plus Power Analysers, VI Signature Testers, Voltage References, Picoammeters, Curve Tracers.
 

Online daisizhou

  • Frequent Contributor
  • **
  • Posts: 560
  • Country: cn
daisizhou#sina.com #=@
 

Online Zero999

  • Super Contributor
  • ***
  • Posts: 19517
  • Country: gb
  • 0999
A cheap, widely available op-amp, with low offset is the OP07, but it isn't rail-to-rail, so you need to -3V and +8V rails, to get an output voltage range of 0V to 5V.

An even cheaper op-amp is the LM358, which doesn't need a negative rail, but it has a much worse offset, so will need calibration and will still need an 8V supply, if an output swing to 5V is required.

What power supply voltages are available? Is this being run off a mains transformer+rectifier+linear regulator? If so, it's easy to add voltage multipliers for the op-amp power supply rails.

If you have a spare spare of I/O pins to output a squarewave from, you can generate the higher +V and -V rails for the op-amp, with diode+capacitor voltage doubler circuits.
 

Offline CaptDon

  • Super Contributor
  • ***
  • Posts: 1740
  • Country: is
As others have stated, the oxygen battery sensor device has a finite lifetime based on the oxygen concentration mostly. The higher the content the faster the cell ages. Also it will age more quickly with large amounts of air moving across it. Limit the turbulence it sees. We changed ours yearly in the operating rooms and they were still accurate.
Collector and repairer of vintage and not so vintage electronic gadgets and test equipment. What's the difference between a pizza and a musician? A pizza can feed a family of four!! Classically trained guitarist. Sound engineer.
 

Offline CaptDon

  • Super Contributor
  • ***
  • Posts: 1740
  • Country: is
Also, you need an op amp with super high input impedance!!! A fet type front end. Just like any battery, the higher the load the faster it ages!!
Collector and repairer of vintage and not so vintage electronic gadgets and test equipment. What's the difference between a pizza and a musician? A pizza can feed a family of four!! Classically trained guitarist. Sound engineer.
 

Offline fcb

  • Super Contributor
  • ***
  • Posts: 2117
  • Country: gb
  • Test instrument designer/G1YWC
    • Electron Plus
Also, you need an op amp with super high input impedance!!! A fet type front end. Just like any battery, the higher the load the faster it ages!!
No you don't. The manufacturer specifies >10kOhms.

These have a finite life when you open the tin/bag they come in. So the OOM202 is quoted at >1,000,000% volume oxygen hours.  So essentially 10,000 hours (60 weeks) at 100% concentration, greater life at lower concentrations.
https://electron.plus Power Analysers, VI Signature Testers, Voltage References, Picoammeters, Curve Tracers.
 

Offline AdhithTopic starter

  • Frequent Contributor
  • **
  • Posts: 323
  • Country: in
Never used this, but here are my thoughts. From what I see, it is a passive sensor (without the need of power). It has voltage output proportional and quite linear to volume percentage of O2.

1. You can directly connect this sensor output to ADC input and take samples.
2. It seems it outputs a bit less then 1mV per 1% of O2, so lets say working range 0 - 100mV.
3. I would say you need at least 1mV ADC resolution. It means, that for example, Arduino UNO default configuration is not good enough (10bit ADC, 5V reference, resolution = ~4.9mV)
4. If you want to use UNO, your best bet is to configure it to use internal 1.1V reference, then the resolution is ~1mV. Might be good enough.
5. If you plan to use different MCU which has 12 or 16 bit ADC, that would be good. Just choose the lowest reference voltage possible.
6. When you connect sensor to MCU, use short and possibly shielded wire (shield connected to Arduino ground) to avoid noise, because sensor signal is quite small and high impedance, so it is easy for external electrical noises to mess up the readings.
7. If it is not possible to calibrate each sensor with known O2 concentrations, then just calculate the ADC raw value per O2 percentage based on reading at ambient air. For example, take raw ADC value at ambient. Let say it is 15. So it means 20/15 (~20% air O2 in most places) = 1.33% O2 per ADC step. If then your ADC reads value 25, you multiply by 1.33 and get 33.3% O2.
8. You can take multiple samples and average them - you will get more effective resolution.
9. Don't expect to get very accurate readings, but I guess 1-2% is good enough for this application.

Good luck
Thank you for your in depth explanation. That cleared a lot of things. I'm  planning use a dedicated ADC module for this purpose. Since we are running out of time, we are not planning to go for circuit design and all. we are looking for electronic kits that we could directly use for the purpose.

If I'm using a separate ADC module, How could I use in my application? any suggestions for ADC boards?
 

Offline AdhithTopic starter

  • Frequent Contributor
  • **
  • Posts: 323
  • Country: in
OOM202 oxygen battery, placed in normal air (oxygen concentration is 21%), output 13.9mV, placed under 100% pure oxygen, output 66.3mV, the actual error is much lower than 5%

The ideal oxygen sensor should be a paramagnetic oxygen sensor.The principle is that oxygen molecules are deflected by magnetic force in a magnetic field.This is a long-term effective sensor
OOM202 oxygen battery is only valid for half a year,Because the chemical reaction is going on all the time
I'll take this into account, Thank you. Do you have any recommendations for paramagnetic oxygen sensor?  Actually I searched a lot for oxygen sensors. but results were pretty low. Thats why I planned to use OOM2O2 sensor
 

Offline AdhithTopic starter

  • Frequent Contributor
  • **
  • Posts: 323
  • Country: in
Top of range: 21% O2 is 16mV. 100% O2 then something like: 76.2mV, so probably allow for 80mV FSD (full scale deflection).  Don't feed the sensor striaght into the Arduino - you'll struggle to get rid of ADC sampling pulses etc.. and your resolution will be really poor.

Just use a rail-to-rail opamp (like MCP6001 or MCP6002 or whatever you have to hand) in a non-inverting amplifier to scale your 80mV to 5V (for the Arduino, assuming Arduino is 5V).

You probably want to trim this in hardware rather than software then probably stick a 100K potentiometer on the front-end and tune your gain for say 50x.  If you can find an opamp with lower input offset then great, although any half-decent EE can design a circuit that would compensate for what parts you can get locally.

If you get stuck then I'm sure someone here can design you a circuit with what you can get locally.  Probably best just to list the bits you can get really fast.

What if I use a pre-made opamp circuit boards that is commercially available ?
 

Online Zero999

  • Super Contributor
  • ***
  • Posts: 19517
  • Country: gb
  • 0999
Never used this, but here are my thoughts. From what I see, it is a passive sensor (without the need of power). It has voltage output proportional and quite linear to volume percentage of O2.

1. You can directly connect this sensor output to ADC input and take samples.
2. It seems it outputs a bit less then 1mV per 1% of O2, so lets say working range 0 - 100mV.
3. I would say you need at least 1mV ADC resolution. It means, that for example, Arduino UNO default configuration is not good enough (10bit ADC, 5V reference, resolution = ~4.9mV)
4. If you want to use UNO, your best bet is to configure it to use internal 1.1V reference, then the resolution is ~1mV. Might be good enough.
5. If you plan to use different MCU which has 12 or 16 bit ADC, that would be good. Just choose the lowest reference voltage possible.
6. When you connect sensor to MCU, use short and possibly shielded wire (shield connected to Arduino ground) to avoid noise, because sensor signal is quite small and high impedance, so it is easy for external electrical noises to mess up the readings.
7. If it is not possible to calibrate each sensor with known O2 concentrations, then just calculate the ADC raw value per O2 percentage based on reading at ambient air. For example, take raw ADC value at ambient. Let say it is 15. So it means 20/15 (~20% air O2 in most places) = 1.33% O2 per ADC step. If then your ADC reads value 25, you multiply by 1.33 and get 33.3% O2.
8. You can take multiple samples and average them - you will get more effective resolution.
9. Don't expect to get very accurate readings, but I guess 1-2% is good enough for this application.

Good luck
Thank you for your in depth explanation. That cleared a lot of things. I'm  planning use a dedicated ADC module for this purpose. Since we are running out of time, we are not planning to go for circuit design and all. we are looking for electronic kits that we could directly use for the purpose.
I suppose it can be stored in an inert gas, such as nitrogen, when not in use.

It might be a good idea to record the date and log the runtime, so you know when it needs to be replaced. If the system has a realtime clock, it should be easy to store the date in flash memory and calculate when it needs to be replaced based on exposure to oxygen, both due to the background ambient level and whilst the machine is running.

Fortunately the sensor will fail safe, by underestimating the oxygen level.


Quote
If I'm using a separate ADC module, How could I use in my application? any suggestions for ADC boards?
I Googled for ADC PGA and found this module.
https://www.adafruit.com/product/1085
 

Offline AdhithTopic starter

  • Frequent Contributor
  • **
  • Posts: 323
  • Country: in

I'm not sure, and main reason is that OP wants to produce it very quickly, maybe even without PCB. As you said, OpAmp will also add offset, so offset and scaling both need to be corrected. I would still vote for trying direct sampling. Small capacitor can be added, so ADC sees lower impedance for its sampling. Signal frequency is very low anyway. Also because it is so slow, huge averaging can be used, like 100 samples or more, possibly adding quite a few bits of extra resolution. What I'm saying is that for someone who is not an expert, adding frontend would probably cost some additional development effort and make production harder (especially if it is hand made devices).

Probably how I would do calibration is a hidden calibration button or jumper. With a system powered and stable (software timer might be included to not allow premature calibration), the button can be pushed and MCU saves the ambient (21%) reading to eeprom. Every time it boots, it reads and uses that value. So it is very easy to calibrate at production or any time later if it drifts.

Yes, indeed. without a PCB is what we are looking for. It could save lot of time and also custom PCB is tough to get it done at this pandemic time as well. I could buy an additional module and connect it between the sensor and UNO. So I guess an ADC module is the solution
 

Offline Manul

  • Super Contributor
  • ***
  • Posts: 1109
  • Country: lt
Yes, indeed. without a PCB is what we are looking for. It could save lot of time and also custom PCB is tough to get it done at this pandemic time as well. I could buy an additional module and connect it between the sensor and UNO. So I guess an ADC module is the solution

You may first try the UNO ADC with analogReference(INTERNAL), so it uses 1.1V reference. It will not take a lot of time, maybe half hour to try. You may use 1-10nF capacitor in parallel with sensor. Use sample averaging and see what kind of results you get. If you need to build it fast, the minimum system which works good enough is good enough.

What is your target accuracy of O2 measurement?
 

Offline Manul

  • Super Contributor
  • ***
  • Posts: 1109
  • Country: lt
Does not matter what you use, op amp, sampling directly with external or internal ADC, you first need to worry about noise. If there will be a lot of external noise, long wires and bad layout, you will loose accuracy, because sensor signal is quite low and susceptible to interference. But if you keep signal clean, then 10bit ADC with 1.1V reference with oversampling should theoretically be enough to get 1% resolution or even less.
 

Offline ace1903

  • Regular Contributor
  • *
  • Posts: 237
  • Country: mk
Keeping sensor under inert gas is not recommended. This is called starvation mode and it will shorten sensor lifetime.
As I said here on the forum several times enriched air is dangerous stuff.
It is non conducting and produces static electricity in each component. Even invisible ESD event can result in disaster.
There were several hospitals that were engulfed in fire due to improper installation and/or equipment.
Instead of trying to make dangerous equipment is much better to organize purchase of certified equipment.
To many this looks as opportunity to show craftmanship and ingenuity but I look at this as planting bomb nearby innocent patients.
 Just search how many people died in fires in hospital recently.
 

Offline fcb

  • Super Contributor
  • ***
  • Posts: 2117
  • Country: gb
  • Test instrument designer/G1YWC
    • Electron Plus
Once opened the sensors can't be stored under inert atmosphere - it leads to premature failure.
https://electron.plus Power Analysers, VI Signature Testers, Voltage References, Picoammeters, Curve Tracers.
 

Offline AdhithTopic starter

  • Frequent Contributor
  • **
  • Posts: 323
  • Country: in
As others have stated, the oxygen battery sensor device has a finite lifetime based on the oxygen concentration mostly. The higher the content the faster the cell ages. Also it will age more quickly with large amounts of air moving across it. Limit the turbulence it sees. We changed ours yearly in the operating rooms and they were still accurate.
Yeah. I haven't thought about this. Now I'm planning to put the O2 sensor in a small chamber, with one end a micro solenoid valve. It will be only sampled when needed and will be kept air tight if not in use
 

Offline AdhithTopic starter

  • Frequent Contributor
  • **
  • Posts: 323
  • Country: in

These have a finite life when you open the tin/bag they come in. So the OOM202 is quoted at >1,000,000% volume oxygen hours.  So essentially 10,000 hours (60 weeks) at 100% concentration, greater life at lower concentrations.
we are planning to put it in a sealed casing with a solenoid valve on one end. we only allows oxygen to contact if needed. So that could raise the life time right?
 

Offline AdhithTopic starter

  • Frequent Contributor
  • **
  • Posts: 323
  • Country: in

You may first try the UNO ADC with analogReference(INTERNAL), so it uses 1.1V reference. It will not take a lot of time, maybe half hour to try. You may use 1-10nF capacitor in parallel with sensor. Use sample averaging and see what kind of results you get. If you need to build it fast, the minimum system which works good enough is good enough.

What is your target accuracy of O2 measurement?

Yes, I will try that and update here. I will only get the sensor in next two days. around 5% of deviation is acceptable
« Last Edit: May 10, 2021, 05:37:12 pm by Adhith »
 

Online Zero999

  • Super Contributor
  • ***
  • Posts: 19517
  • Country: gb
  • 0999

These have a finite life when you open the tin/bag they come in. So the OOM202 is quoted at >1,000,000% volume oxygen hours.  So essentially 10,000 hours (60 weeks) at 100% concentration, greater life at lower concentrations.
we are planning to put it in a sealed casing with a solenoid valve on one end. we only allows oxygen to contact if needed. So that could raise the life time right?
It will need to be kept away from oxygen to last, longer than the specified life, but does it matter if it only lasts a year? It thought this was just to save lives during the current emergency situation, rather than as a permanent solution. Hopefully it won't be needed for that long.

If it's needed again, then the sensor can be replaced. It has a connector on the back. If you think it might be needed in the future, you should design the machine so it can be easily replaced. There's nothing wrong with having consumable parts. You change the tyres on your car, after driving a certain distance, or the rubber perishes and this is no different.
 

Offline Manul

  • Super Contributor
  • ***
  • Posts: 1109
  • Country: lt

These have a finite life when you open the tin/bag they come in. So the OOM202 is quoted at >1,000,000% volume oxygen hours.  So essentially 10,000 hours (60 weeks) at 100% concentration, greater life at lower concentrations.
we are planning to put it in a sealed casing with a solenoid valve on one end. we only allows oxygen to contact if needed. So that could raise the life time right?

Not necessarily. Even if it adds 5% of lifetime, is it important? I would say - don't do it. Lets think, so it is more then 1 year in 100% oxygen. Probably could survive 2 years in normal conditions. Do you really care, what will happen after 2 years? Putting solenoid just for that and possibly degrading measurment response time is definetly not worth, at least in my opinion. Protect it from high air flow, just a little to maintain exchange and it will be fine. But don't put it into one end sealed pipe...
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf