A(nother) DIY o2 analyser

Please register or login

Welcome to ScubaBoard, the world's largest scuba diving community. Registration is not required to read the forums, but we encourage you to join. Joining has its benefits and enables you to participate in the discussions.

Benefits of registering include

  • Ability to post and comment on topics and discussions.
  • A Free photo gallery to share your dive photos with the world.
  • You can make this box go away

Joining is quick and easy. Log in or Register now!

stiebs

Contributor
Messages
978
Reaction score
575
Location
Melbourne, Australia
# of dives
500 - 999
After being shelved a couple of times, earlier this year I finally got enough enthusiasm and motivation to complete the design and build of my own O2 analyser. In my usual style, it is was more over-engineered than it needs to be, but it certainly got the interest of some of the dive crew on my last liveaboard!

For the electronics/uC boffins:
It's Arduino based (well, Teensy) with an ADS1115 analog-digital convertor and an LCD display in a 3D printed case. My original plan was just to use breakout boards around the Teensy, but that was getting too difficult/messy so I designed and printed my own circuit board and used surface mount components to keep the size to a minimum. One of the challenges that I threw myself was that I wanted a soft-on (ie, press a momentary button, not a slide/toggle switch) so that it could auto-shutoff, but also draw zero power in this shutdown state so the battery will last indefinitely.


Calibration screen. This comes up on power-up. Shows the mV reading of the sensor, and the colour bar graph gives an indication of reading stability. When all the bars a green, the reading is stable. pressing the middle button toggles calibration between air and 100%
Nm949RTvvZ.png


Analyse mode. O2 reading is yellow, turns green when it is stable.
Pressing the bottom button toggles MOD display between m/ft
Pressing the middle button toggles between 1.2/1.4/1.6 Po2 to calculate MOD.
If the O2 goes above 45%, Po2 switches to 1.6 if it drops below 42% is goes back to 1.4
1723590392478.png


Double-sided surface mount circuit board to keep the size to a minimum. Designed in Kicad and printed using a PCB manufacturer in China. US$5 to print the minimum run of 10! Could not believe how cheap that was!
1723590664393.png


LCD screen on its mounting board. Showing the very basic "best mix" screen - select the depth, and it will show the richest mix for the chosen PO2
1723590872571.png


Completed build, ready to insert the circuit. The
1723590830742.png
 
A couple more photos:

The o2 sensor and battery covers removed. Uses 2xCR123 batteries. I did agonise a while on what batteries to use, and went back and forth between rechargeable lithium, AA, and CR123.
1723591322807.png


Close up of the sensor compartment. Sensor fits snuggly in the round opening, and it matched to a tag on the lid which keeps it secured in place. The tube down the side is open on both ends and has a spiral running all the way down. Partly to agitate the airflow and direct air into the sensor, and partly for 3D printing support.

1723591436828.png
 
Shows the mV reading of the sensor,
Exactly what I am looking for a thread ago!!

I was literally thinking in the morning I should bring out my uCs out and start fiddling to build something similar; but i don’t have to reinvent the freshly made wheel do I?
I WANT ONE
 
Looks solid, which oxygen sensor are you using?

CR123 is a solid choice.

ADS1115 is also a great choice, especially with how easy arduino and I2C get along.

Looks like a silk PLA print? I would be a little careful with PLA and particularly silk PLA with any possible hard use or elevated temperatures, It is almost certainly fine but I had one print deform sitting in my truck for a workday in the summer.

Did you put a conformal coating on the board?
 
That is a good price on printing boards. I did my first ever board in 20 or 21 and it was done here in the states but was more than that even with the half off sale. And it made sense to just have 100 printed at once. Nothing that fancy, just a simple analog logic board for controlling cabinet lighting in my kitchen.

That's a pretty sweet home made analyzer. I really need to start learning CAD. Have access to 3D printers at work. I'll also say that none of my Arduino projects have been anywhere near that nice either. Functional. But the one time I tried a display screen, it was ugly.
 
Looks solid, which oxygen sensor are you using?

Using a PSR-11-MD. I actually wanted an MD1, but myocal supplier didn't have any available. The MD1 has a higher output voltage, but both will work fine with the ADS1115 gain.

CR123 is a solid choice.
Yes, and I usually have a few spares as they are pretty common with backup torches and AI transmitters.

ADS1115 is also a great choice, especially with how easy arduino and I2C get along.
This was a tricky part of the build. I started off buying a bulk kit of the smallest ADS1115 breakout boards I could find on AliExpress, but they were still to bulky. So ended up buying individual ADS1115 chips. Rather tricky to solder those puppies on with a hand reflow station.

Looks like a silk PLA print? I would be a little careful with PLA and particularly silk PLA with any possible hard use or elevated temperatures, It is almost certainly fine but I had one print deform sitting in my truck for a workday in the summer.

Did you put a conformal coating on the board?

Yes, silk PLA (well, a local distributor's "improved" version of "PPLA", but essentially a PLA variant).
I did print a PETG one as well, but couldn't get the finish quite as clean I would've liked. Especially the overhangs and support ceilings. After a handful of 24hr+ prints I gave up in frustration and fell back to the PPLA 😆.

I don't typically leave it in the car - generally analyse in the comfort of my own home, so not really concerned about it distorting in the car.
 
That's a pretty sweet home made analyzer. I really need to start learning CAD. Have access to 3D printers at work. I'll also say that none of my Arduino projects have been anywhere near that nice either. Functional. But the one time I tried a display screen, it was ugly.

Most of my Arduino projects get shelved once I prove to myself that I can do them, but couldn't be bothered with the final polish 😂

I'm generally not that great with 3D CAD. I tried a couple, and got reasonably progressed with Blender, but all this design was done with OpenSCAD which suits my programming background much better.
 
Using a PSR-11-MD. I actually wanted an MD1, but myocal supplier didn't have any available. The MD1 has a higher output voltage, but both will work fine with the ADS1115 gain.


Yes, and I usually have a few spares as they are pretty common with backup torches and AI transmitters.


This was a tricky part of the build. I started off buying a bulk kit of the smallest ADS1115 breakout boards I could find on AliExpress, but they were still to bulky. So ended up buying individual ADS1115 chips. Rather tricky to solder those puppies on with a hand reflow station.



Yes, silk PLA (well, a local distributor's "improved" version of "PPLA", but essentially a PLA variant).
I did print a PETG one as well, but couldn't get the finish quite as clean I would've liked. Especially the overhangs and support ceilings. After a handful of 24hr+ prints I gave up in frustration and fell back to the PPLA 😆.

I don't typically leave it in the car - generally analyse in the comfort of my own home, so not really concerned about it distorting in the car.

I've been there hand soldering SMDs, I generally use a microscope to do it.

Key with PETG depending on the slicer you are using is to have it slow down on overhangs, bump up the fan a little, and spend some time dialing in the support density.

I try to design to avoid the use of support at all in the first place, which may be difficult with OpenSCAD. You can get a fusion360 hobbyist license for free and IMO once you get over that initial hump it will be far more powerful than scripting the object.

Now I just need to finish printing my upgrades for my O2 measurement set-up, lol. (Elcheapo II I bought/assembled in 2011 built into a pelican case, I have my flow meter lid mounted, plugs into the inflator hose).
 
I try to design to avoid the use of support at all in the first place, which may be difficult with OpenSCAD. You can get a fusion360 hobbyist license for free and IMO once you get over that initial hump it will be far more powerful than scripting the object.

Horses for courses. I'm not sure why you think designing to avoid supports is more difficult with OpenSCAD. My choice (and challenge) was to create a complete case in a single part, with only the compartment lids separate prints.

"more powerful" is subjective, circumstantial, and dependent on the user. There are things that Fusion360 is "more powerful" in, and things that OpenSCAD is "more powerful" in. Both dependent on the person driving.
But, this is not a discussion on 3D printing, and I don't care to continue it.
 

Back
Top Bottom