Battery Fuel-Gauge Module
A coulomb-counting BMS front end for a 4-cell Li-ion pack — accurate state of charge instead of a rough voltage guess.
Overview
Reading a Li-ion pack's voltage alone gives you a rough idea of charge state at best — the voltage curve is flat across most of the usable range, so a small measurement error turns into a large state-of-charge error. This module tracks charge properly by integrating current in and out of the pack over time (coulomb counting), then corrects that running total against known reference points so it doesn't drift.
A precision shunt sits in the main current path, feeding a dedicated fuel-gauge analog front end that measures charge/discharge current, pack voltage, and temperature, and reports state of charge over I2C. A separate protection IC handles hard overvoltage, undervoltage, and overcurrent cutoffs independently of the fuel gauge, so a firmware bug can't disable protection.
Block Diagram
Key Components
- 4S Li-ion pack (14.8V nominal, 16.8V full charge)
- Precision current-sense shunt (low milliohm, high power rating)
- Fuel-gauge analog front end (coulomb counter + cell voltage ADC)
- Independent battery protection IC (OV/UV/OC cutoff)
- Cell-balancing resistor network with switching FETs
- Host MCU with I2C, plus status display
Bill of Materials
| Ref | Part / Value | Rating | Package |
|---|---|---|---|
| U1 | BQ34Z100-G1 — Impedance Track fuel gauge, I2C | 2.5–4.3V cell range | SOP-28 |
| U2 | BQ76940 — battery monitor / protection AFE | 3–15 series cells | TSSOP-48 |
| U3 | STM32L051C8 — low-power MCU, I2C host | 1.8–3.6V, 32MHz | LQFP-32 |
| U4 | SSD1306 — 128×64 OLED display module | I2C, 3.3V | Module |
| R1 | Current-sense shunt, 2mΩ, 1% | 2W | 2512 |
| Q1–Q4 | DMN2075U — N-channel balancing FET | 20V, 2A | SOT-23 |
| R2–R5 | Balance resistor, 100Ω | 0.5W | 1206 |
| C1 | Decoupling capacitor, 10µF, X7R | 25V | 0805 |
Build Requirements
- Comfortable soldering fine-pitch analog ICs (fuel gauge and protection IC packages are small)
- A precision voltage/current source for calibrating the gauge against known references
- Basic firmware skills — reading registers over I2C and turning raw counts into percentage SOC
- A 2-layer PCB with a clean, low-impedance path for the sense shunt