Battery Monitoring Node
Tracks voltage, current and temperature, with a switchable 12 V output.
The brief
Voltage, current and temperature from a battery-backed node, with a 12 V output it can switch. The measurements and the switching share a power path, and the current measurement in particular has to stay accurate while that output is being switched.
Charging its own cell over USB-C while remaining the thing being measured adds the last constraint: the supply has to be correct whether or not the cell is attached.
What we did
A battery-powered controller built around the ESP32-WROOM-32E. It monitors voltage, current and temperature, drives a switchable 12 V output, and charges its own Li-ion cell over USB-C.
- Main controller: The ESP32-WROOM-32E has RESET and BOOT buttons, a 19-pin breakout header for spare GPIO, SPI and UART lines, and an OLED display header.
- USB-C charging and battery protection: A TP4056 charger with status LEDs, plus a DW01 and FS8205A protection stage. A USBLC6-2SC6 provides ESD protection on the USB data lines. 3.3 V supply: A TPS62160 synchronous buck converter powers the logic efficiently from the battery.
- Programming: A CP2102 USB-to-UART bridge with auto boot/reset transistors makes flashing hassle-free. 12 V boost output: An MT3608 boost converter feeds a P-MOSFET power switch (IRFR9024) that the ESP32 can turn on and off, with a resettable fuse for protection.
- Power monitoring: An INA219 current sensor with a 100 mΩ shunt tracks the 12 V line over I2C.
- Precision measurement: An ADS1115 16-bit ADC measures battery voltage and an external input through resistor dividers.
- Temperature sensing: A 3-pin sensor header with a pull-up resistor.
Design details
Design summary
| CAD tool | EasyEDA |
|---|---|
| Overview | A battery-powered controller built around the ESP32-WROOM-32E. |
| Main controller | The ESP32-WROOM-32E has RESET and BOOT buttons, a 19-pin breakout header for spare GPIO, SPI… |
| USB-C charging and battery protection | A TP4056 charger with status LEDs, plus a DW01 and FS8205A protection stage. |
| Programming | A CP2102 USB-to-UART bridge with auto boot/reset transistors makes flashing hassle-free. |
| Power monitoring | An INA219 current sensor with a 100 mΩ shunt tracks the 12 V line over I2C. |
| Precision measurement | An ADS1115 16-bit ADC measures battery voltage and an external input through resistor dividers. |
| Temperature sensing | A 3-pin sensor header with a pull-up resistor. |
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.