DIY ESP32-S3 oxygen analyser

Build a Nitrox analyser with ADS1115 wiring

This bench guide covers the exact parts, signal wiring, physical assembly, browser flashing, first calibration, and verification path for the LilyGo T-Display S3 build.

DIY build responsibility

Inspect every solder joint and polarity before power-up. Never apply power to a galvanic oxygen cell. Calibrate only in known clean air and independently verify readings before using the analyser for diving.

Bill of materials

LilyGo T-Display S3 analyser parts

Use the bare board without fitted pin headers or a housing so it fits the printed enclosure. Match the battery plug polarity to the LilyGo socket rather than relying on wire colour.

Required parts

  • 1 × LilyGo T-Display S3
  • 1 × ADS1115 ADC module
  • 1 × galvanic O2 cell and matching connector
  • 1 × single-cell 3.7 V LiPo with matching 1.25 mm plug
  • 1 × square 6 mm-high tactile momentary button
  • 1 × 22 kΩ and 1 × 10 kΩ resistor
  • 12 × 6 × 3 mm neodymium magnets
  • M2 screws, M2 heat-set inserts, printed housing, wire, heat-shrink, solder, and strain relief

Pinout at a glance

O2 cell + / −
ADS1115 A0 / A1
ADS1115 power
3.3 V and GND; ADDR to GND
ADS1115 I2C
GPIO17 SCL, GPIO18 SDA
Button
GPIO3 to GND
USB detection
USB 5 V → 22 kΩ → GPIO13 → 10 kΩ → GND
Battery
LilyGo BAT+ / BAT− through the matching connector
Nitrox analyser wiring diagram with O2 cell, ADS1115, LilyGo GPIO pins, button, USB divider, and battery
Connect the cell only to the ADS1115 differential inputs. The galvanic cell generates its own millivolt signal and must not be powered.
Inside a completed Nitrox Analyser showing the oxygen cell, ADS1115, LilyGo board, wiring, button, battery, and printed housing

Inside reference

Component placement and cable routing

This completed build shows how the main parts fit inside the housing. Use the schematic above for the exact electrical connections. Detailed build photos will follow.

  1. Prepare the housing.Print the released housing, install M2 heat-set inserts with controlled heat, and check all magnet polarities before pressing them in.
    Printed Nitrox analyser housing with fitted magnets
    Housing, inserts, and magnets
  2. Dry-fit the electronics.Position the LilyGo, ADS1115, cell connector, battery lead, and button. Confirm display, USB-C, sample opening, and lid clearances before soldering.
    Two assembled Nitrox analyser enclosures
    Check enclosure fit before wiring
  3. Wire the ADS1115.Connect 3.3 V, GND, GPIO17 SCL, and GPIO18 SDA; tie ADDR to GND. Keep the millivolt signal wiring short and away from USB and battery conductors.
    Detailed ADS1115 and LilyGo wiring
    ADS1115 I2C and differential cell inputs
  4. Connect the O2 cell.Connect cell positive to A0 and negative to A1. Add strain relief. Never drive either cell wire from a power rail or GPIO.
    Check polarity and strain relief before closing
    O2 cell connection
  5. Add button and USB divider.Wire the button from GPIO3 to GND. Wire 5 V through 22 kΩ to GPIO13 and 10 kΩ from GPIO13 to GND; never connect USB 5 V directly to a GPIO.
    Measure the divider before connecting GPIO13
    Button and USB detection
  6. Connect the battery last.Confirm connector polarity with a meter. Apply USB power first, check for heat or excess current, then connect the LiPo only after the board starts correctly.
    Verify polarity at the LilyGo socket
    LiPo connection
  7. Flash and configure.Use full install for a new board. Confirm the ADS1115 is detected, open the local Web UI, set label details, and pair the printer.
    Nitrox analyser display after firmware installation
    First boot and sensor status
  8. Calibrate and verify.Stabilise in clean air, calibrate once, compare with trusted equipment or known gas, and print a test label. Do not rely on the build until all checks pass.
    Niimbot printer producing a Nitrox MOD label
    Verify the displayed and printed values