Battery Life Calculator
Estimate battery runtime for embedded systems, IoT devices, and portable electronics. Accounts for depth of discharge and self-discharge rate to give realistic field estimates.
Inputs
Results
How the Battery Life Calculator Works
Battery life estimation is more nuanced than dividing capacity by average current. Real-world factors — depth of discharge limits, self-discharge during storage, temperature derating, Peukert effect at high discharge rates, and aging — all reduce actual runtime below the theoretical maximum. This calculator addresses the two most impactful factors: DoD and self-discharge.
Theoretical Runtime
Hours = Capacity (mAh) / Average Current (mA)
This is the idealized maximum assuming you can use 100% of capacity and ignore all losses. Real runtime is always less.
Depth of Discharge (DoD)
Usable Capacity = Rated Capacity × (DoD / 100)
DoD is the fraction of capacity you intentionally use before recharging. Deeper discharge reduces battery cycle life significantly:
| Chemistry | Recommended DoD | Approx. Cycle Life at DoD |
|---|---|---|
| Li-Ion / LiPo | 80% | 500–1000 cycles |
| LiFePO4 | 90% | 2000–5000 cycles |
| NiMH | 70–80% | 500–1000 cycles |
| Lead-Acid | 50% | 300–500 cycles |
Self-Discharge
Self-discharge reduces available capacity during storage and idle periods. The calculator applies a simplified linear model: available capacity decreases by the monthly self-discharge rate multiplied by the expected operating period (in months). For very long runtimes (months to years), this factor dominates the battery life estimate.
- Li-Ion: 1–3% per month (modern cells, room temperature)
- NiMH standard: 10–30% per month
- NiMH low-self-discharge (LSD): 1–3% per month (Eneloop, etc.)
- Lead-Acid: 3–5% per month
- Temperature: Self-discharge doubles approximately every 10°C above 20°C
Design Example: IoT Sensor Node
- Battery: 18650 Li-Ion, 3000 mAh
- Sleep current: 10 μA (most of the time), active: 80 mA for 100ms every 60s
- Average current: 80mA × (0.1/60) + 0.010 = 0.133 mA + 0.010 = 0.143 mA
- Theoretical: 3000 / 0.143 = 20,979 hours (874 days)
- With 80% DoD: 699 days
- With 2% monthly self-discharge: effective ≈ 570 days
Frequently Asked Questions
How do I measure average current draw?
Use a current monitor IC (e.g., INA219, INA3221) or a multimeter in series with the power supply. For duty-cycled systems, use an oscilloscope with a shunt resistor to capture the current waveform and calculate the RMS or average value over a full duty cycle. Logging to a file for 24 hours gives the most accurate real-world estimate.
Why does my measured battery life differ from the calculation?
Common reasons: (1) Temperature — capacity drops 20% at 0°C and 50% at −20°C for Li-Ion. (2) Peukert effect — high discharge rates reduce effective capacity below rated mAh. (3) Cut-off voltage — different devices stop at different minimum voltages, changing usable capacity. (4) Aging — Li-Ion loses 20% capacity after ~500 cycles at 80% DoD.
How can I extend battery life in embedded systems?
(1) Use deep sleep modes aggressively — reduce active duty cycle. (2) Reduce operating voltage if the MCU supports it (dynamic voltage scaling). (3) Power-gate peripherals (sensors, radios) when not in use. (4) Use wake-on-interrupt instead of polling. (5) Choose low-quiescent-current LDOs and buck converters.