// mission: turn an ordinary 18650 cell into a fully instrumented IoT power source — measure voltage, current, and State-of-Charge in real time, denoise the readings, and stream them to the cloud.
Motivation: Most student projects run on batteries that are poorly characterised — real capacity, drain rate, and remaining charge are unknown until the system fails unexpectedly. This BMS addresses that with a single 18650, an ESP32-C6, and a precision current-sense IC, exposing professional-grade battery analytics over Wi-Fi.
Hardware: ESP32-C6 (RISC-V, Wi-Fi 6, BLE 5.3) reading an INA260 over I²C — the INA260 gives millivolt-accurate voltage and milliamp-accurate bidirectional current with 64-sample averaging and 1.1 ms conversion. TP4056 handles Type-C charging for a 1200 mAh 18650 cell. Push-button switched load (LED through a 330 Ω current-limit resistor) demonstrates dynamic draw on the dashboard.
Firmware: The SOC estimation chain is hybrid by design. Raw voltage and current readings from the INA260 are first denoised by a 2-state bias-aware Kalman filter, which models both the sensor signal and its drift bias as state variables — this stabilises millivolt-level readings before they enter the SOC computation. Coulomb counting (∫I·dt) provides high short-term accuracy but drifts over time; an OCV–SOC lookup table provides a drift-free reference but is unreliable under load. These are fused as a weighted complement: SOC = 97% coulomb counting + 3% OCV lookup, combining fast dynamic response with slow drift correction. Final state is streamed to a Blynk IoT dashboard at 1 Hz over Wi-Fi — voltage, current, and SOC displayed on live gauges.
Recognition: Selected in the Top 60 out of 900+ submissions at the national ElectronicWings IoT + AI Project Design Challenge (DigiKey-sponsored, Dec 2025).
Parallel research: Alongside the hardware, I'm first author on a conference paper — Battery State-of-Charge Estimation Using Kalman-Based Filters — comparing Kalman Filter, Kalman–Bucy Filter, and Unscented Kalman Filter in MATLAB/Simulink under identical conditions. UKF achieved the best results with RMSE 0.0181, MAE 0.0038, and correlation 0.9944. Currently drafted, targeting conference submission. Next: AI-based SOC estimator and a journal-grade extension.