ESP32-C3 Battery Voltage Node

ESP32-C3 Battery Voltage Node

Self-powered ESP32-C3 node reading cell voltage through a 16-bit ADS1115.

Home Automation KiCad

The brief

A battery node that has to survive being outdoors: measure its own supply reliably, charge from USB, and report over serial, all from one lithium cell.

The measurement is the interesting part. The ESP32-C3’s own ADC is inconvenient for this, so an external 16-bit ADS1115 reads a scaled sense line instead — which buys the accuracy needed to tell a healthy cell from a failing one.

ESP32-C3 Battery Voltage Node

What we did

A battery-powered sensing node built around the ESP32-C3-MINI-1. It measures its own cell voltage on an external 16-bit ADC, charges over USB-C, and reports over USB or a serial header.

  • Main controller: The ESP32-C3-MINI-1 module carries the logic and connectivity, with an EN reset button on a 10 kΩ pull-up, a BOOT button for flashing and a PAIR button. Four 100 nF decoupling capacitors sit on the 3.3 V rail.
  • USB-C: A USB-C connector with 5.1 kΩ CC resistors so the board identifies as a power sink, and an USBLC6-2SC6 giving ESD protection on D+ and D−. VBUS becomes the VCC rail.
  • Li-ion charging and protection: A TP4056 charging circuit with red and green status LEDs, paired with a DW01A protection IC and an FS8205A dual MOSFET for over-charge, over-discharge and over-current protection. The cell connects on a JST S2B-PH header and the protected output is labelled OUT+.
  • Regulation: A TPMCP1700T-3302E/TT steps the battery rail down to a stable 3.3 V for the ESP32-C3 and the ADC, with a power switch on the OUT+ line.
  • Voltage sensing: An SS14 Schottky diode and the CELL+/CELL− connectors feed a 220 kΩ / 100 kΩ divider with a 100 nF filter capacitor into the ADC’s AIN0 input — scaling roughly 4.2 V down to about 1.3 V.
  • ADC: A 16-bit ADS1115 on I²C with 4.7 kΩ pull-ups on SCL, SDA and the ALERT/RDY line, its address pin tied to ground and its own 100 nF decoupling.
  • Serial UART: A two-pin header exposing TX and RX for debugging or for connecting another device.

Design details

Design summary

OverviewA battery-powered sensing node built around the ESP32-C3-MINI-1.
Main controllerThe ESP32-C3-MINI-1 module carries the logic and connectivity, with an EN reset button on a 10…
USB-CA USB-C connector with 5.1 kΩ CC resistors so the board identifies as a power sink, and…
Li-ion charging and protectionA TP4056 charging circuit with red and green status LEDs, paired with a DW01A protection IC…
RegulationA TPMCP1700T-3302E/TT steps the battery rail down to a stable 3.3 V for the ESP32-C3 and the…
Voltage sensingAn SS14 Schottky diode and the CELL+/CELL− connectors feed a 220 kΩ / 100…
ADCA 16-bit ADS1115 on I²C with 4.7 kΩ pull-ups on SCL, SDA and the ALERT/RDY line, its…
Serial UARTA two-pin header exposing TX and RX for debugging or for connecting another device.

Have a board like this?

Send us the schematic, the mechanical constraints and the deadline. We will tell you what it takes and what it costs.