ESP32 Controlled Li-ion Battery Tester

Job ID: 39596227

Budget: $250 – $750 AUD

Goal: 1-board, 4-channel Li-ion (3.7 V) tester that charges, discharges (~1 A), logs capacity, spits JSON over USB, shows status on RGBs.

Brains: Single ESP32 (Arduino/PlatformIO).

Power: 5 V in (USB-C or barrel) + always-on 2-pin fan header.

Per channel
Function Parts & targets
Charge TP4056 or MCP73831 @ 1–1.2 A, CC/CV to 4.2 V
Discharge 3R9 10 W non-inductive resistor + N-MOSFET (AO3400/IRLZ44N) ≈1 A
Sense INA219/228/260 on I²C (addrs 0x40-0x43)
Protection 1.5–2 A polyfuse, TVS/Schottky, clear polarity silk
UI 1 × WS2812 RGB (in series chain, 4 total)

Firmware sketch
Detect cell > 3 V → charge → rest → discharge to 3 V → JSON summary

Sample INA every 1-2 s, integrate mAh, calc duration.

LED colours: off/ red/ yellow/ green/ blue = idle/charging/discharging/pass/fail.

PCB
≤ 100 × 150 mm, components one side if possible.

JST-PH on front edge, silks for every header.

4× mounting holes, leave copper under load resistors.

Deliverables
Schematic + PCB (Fusion 360 or KiCad)

Gerbers + BOM

Firmware with commented state-machine + build instructions

README: hookup, flash, test