Arduino oled nitrox analyzer

This is update version of my DIY nitrox analyzer based on Arduino compatible board.

It’s using small oled display and powered by 9v battery. Display o2 percentage of gas, sensor mv output, two MOD(maximum operating depth) in meter. 1 push button for lock screen, calibration, po2 change.

Part list
  • Arduino nano compatible board (or any other Arduino board will do)
  • ADS1115 16 Bit DAC Module (the ADS1115 provides 16-bit precision at 860 samples/second over I2C!)
  • 0.96 inch OLED 128×64 I2c display module
  • Rocker or toggle switch for power on/off
  • 1 Push button
  • 1 9v battery connector (better using 3 AA or AAA)
  • 1 Piezo Buzzer (I took one from pc. Skip if you don’t need beeping analyzer :)
  • 1 Connector for o2 sensor (mine is molex)
  • 1 O2 sensor (I use old cell from my CCR but you can get sensor from Teledyne, Maxtec or other manufacturer.


  • VDD to 5v
  • GND to Ground
  • SCL to A5 (nano)
  • SDA to A4 (nano)

OLED 128×64 I2c display module

  • GND to Ground
  • VCC to 5v
  • SCL to A5 (nano)
  • SDA to A4 (nano)

Push button

  • 1 pin to Ground
  • 2 pin to D2 (nano)

9v battery

  • positive to VIN (nano) through rocker (toggle) switch
  • negative to Ground


  • positive to D9 (nano)
  • negative to Ground

Oxygen sensor

  • positive to A0 ADS1115
  • negative to A1 ADS1115
The source

Additional library


youtube video

  • 1 short button push to lock current display (1 push to unlock)
  • 2 sec hold to calibration
  • 3+ sec hold to MOD PO2 change (1.3 to 1.5 rotation)

I put everything include sensor in a small plastic box(65×95×55mm) with transparent cover. Here’s some image of ugly looking inside. I’m sure someone can 3d print smaller and prettier shell.

9v battery is very poor choice for Arduino project (I used because that’s what I have many). AA, AAA x 3 or small rechargeable batteries are better.

Warning! Be cautious when you use 9v battery. Arduino onboard DC regulator will be destroyed if you accidentally switch positive & negative.

Todo list

  • clean the code
  • replace board to custom pcb or pro mini
  • replace 9v batt to rechargeable small lipo battery
  • smaller case

10 thoughts on “Arduino oled nitrox analyzer”

  1. Hi,

    Building a NX analysor based on your schema, so far so good.

    What did you use to put onto your revo cell? I will reuse my revo cells that are getting swapped.



  2. Hi there!

    It’s all good!! :)

    I see you changed the display code from the video you posted to the actual code here :D

    Can you confirm you only changed cosmetic display stuff and nothing important in the various calculations performed in the code?

    It’s pretty neat! I have quite a lot of fun putting it together, I imagine how you feel actually coding it all :D

    Next step is to solder it up and put it in the box…

    I have one more question: I also see you removed the max O2 display in the video. I understand we don’t need that info from a practical point of view. But nevertheless we still keep the clearing max result capability. Could you elaborate a bit why we actually need to clear the max O2 value and how it i used/purpose here?

    Thanks a million!!!


    1. Hi, I update the code on post too. You can download it.
      Max result is useful sometime if I forgot to lock the screen.
      Have fun with your project. :)

      1. Super cool :)

        One last question (sorry!) : the NRC O2 sensor I have specify a Recommended Load resistor of 10KOhms.

        To achieve this spec recommendation do I put a resistance in parallel between the O2 Cell wires?

        That’s what I believe but I am no pro at all..!

Leave a Comment