Given the ridiculous cost of diving oriented CO analysers (particularly when put against those available for industrial safety), I thought I’d put together a dual gas analyser to simuilataneously test for both oxygen (O2) and carbon monoxide within diving gases. The solution uses an affordably priced CO sensor, which is factory calibrated (estimated life span greater than 2 years, resolution 1ppm with 0-1000ppm range). The O2 analyser part follows the well traveled path of using a standard R22D sensor, which I removed from my CCR after 12 months but stil has lots of life left in it.
The microprocessor is an ESP32-C3 development board with a basic C program that uses the Arduino framework. You can download the code, which I’ve written using VSCode & PlatformIO however, it’s pretty portable to whatever IDE you want. As always, the code could do with some optmisation but I’ll leave that for another day… The display, 16-bit ADC and CO sensor all use the I2C bus so wiring is relatively simple. The system is internally powered by an 18650 battery in a UPS module, which is externally rechargeable via an exposed USB-C port.
All the electronics are housed within a cheap Pelican style case (which seems surprisingly half decent), with a 3D printed assembly providing some structure to hold the parts together. You can download the STL or Fusion model.
WARNING: This is a cheap DIY solution, coded by a tight ass and poorly tested. It uses a CO sensor that has a bold disclaimer that it should not to be used for life support. Please consider these things and the value of your life before deciding to make your own unit. This analyser is not a commerical solution.
Parts List
- Carbon Monoxide Sensor
- Cheapo Pelican Case
- Stainless Barb – 4xM6
- ESP32-C3 Super Mini Dev Board
- ADS1115 ADC Module
- 1.5″ 128×128 OLED Display
- 18650 Battery Holder / UPS
- USB-C Socket
- Switch Toggle – M16 (for Power)
- Switch Momentary – M16 (for Calibration)
- M4 Threaded Insert (for 3D Print)
- Molex Connector (for O2 Cell); from spares drawer
- Oxygen Sensor (R22D); old one from CCR
- 18650 Battery; from spares drawer






