EE Design Calc

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

mAh
mA
%
%/month
Li-Ion DoD: 80–90% · NiMH DoD: 70–80% · Lead-Acid DoD: 50%

Results

Usable Capacity1600.00mAh
Life (theoretical)40 h / 1.67 d
Life with DoD32 h / 1.33 d
Life with DoD + Self-Discharge32 h / 1.33 d

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:

ChemistryRecommended DoDApprox. Cycle Life at DoD
Li-Ion / LiPo80%500–1000 cycles
LiFePO490%2000–5000 cycles
NiMH70–80%500–1000 cycles
Lead-Acid50%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.