Battery life estimator

Duty-cycle profile in, years out — with the self-discharge, converter losses and pulse-load limits that make real devices fall short.

Duty cycleSelf-dischargeCoin cellPulse loadConverter efficiency
The cell

Picking one fills the three fields below. Change any of them afterwards and they stay changed.

Cell numbers
You stop at brown-out, not at zero. Cold and pulsed loads cut this further.
Duty cycle
Whole board, measured. Not the microcontroller datasheet figure.
How often the whole wake-and-send sequence runs.
Power path
At the active load point. Efficiency at microamps is much worse — see below.

Estimated life

years

Average current
Sleep share
Self-discharge share
Effective capacity
Charge per cycle
Duty cycle
Where the charge actually goes — fix the tallest bar first
Life against reporting interval — note where the curve flattens

The physics

Average current from a duty cycle

Q_cycle = I_sleep·t_sleep + I_wake·t_wake + I_tx·t_tx

I_avg = Q_cycle / T_period + I_quiescent

Charge is current times time, so a duty cycle is just a weighted average. The useful insight is which term dominates: at a 15-minute reporting interval with a few microamps of sleep current, sleep is usually more than half the budget even though the radio is what everyone worries about.

Self-discharge is a parallel load

I_self = C_rated · (rate / 100) / 8766 h

A cell loses charge whether or not you use it. At 3% per year a 2500 mAh cell leaks about 8.6 µA continuously — which can be twice your entire sleep budget. Below a certain average current, improving the circuit changes nothing at all, because the chemistry sets the floor. The first chart shows exactly where you sit relative to that floor.

Efficiency is not one number

I_battery = I_load · (V_load / V_batt) / η

A switching converter rated 92% at 100 mA may be 50% or worse at 10 µA, because its own control circuitry consumes a fixed amount regardless of load. In a design that sleeps 99.9% of the time, the converter's light-load behavior matters far more than its headline figure. Low-quiescent parts and pulse-skipping modes exist precisely for this.

Temperature and pulse loads

Capacity falls with temperature — an alkaline cell at −10 °C may deliver half its rated capacity. Internal resistance rises at the same time, so pulse loads sag the terminal voltage further. The derating applied here is a rough approximation of both effects; a real design measures the cell it is going to use, at the temperature it will see, under the load profile it will run.

What to do with the answer

  • If sleep dominates, chase leakage: floating inputs, pull-ups on idle-high lines, sensors that never enter standby, a regulator with high quiescent current.
  • If self-discharge dominates, the circuit is done. Change chemistry or accept the number.
  • If transmit dominates, shorten airtime rather than reducing power — see the link budget calculator, where a lower spreading factor cuts airtime by a factor of two per step.
  • If wake dominates, the processor is awake too long. Usually a blocking delay, a slow sensor settle, or a boot sequence that runs every cycle instead of once.

Where this stops being accurate

  • Cell capacity is not a constant. It depends on discharge rate, temperature, cut-off voltage and age.
  • Internal resistance rise with depletion is not modeled, and it is what actually ends a coin-cell device's life.
  • Self-discharge accelerates at high temperature — often doubling for every 10 °C.
  • Wake and transmit currents are treated as flat. Real profiles have peaks several times the average.
  • No allowance for retries. A radio that retransmits on failure will consume more than the profile says, and failure rates rise as the battery sags.

Design guidance, not a manufacturing instruction. Verify every result against your fabricator's stack-up and the applicable standard before release. Closed-form models are approximations; the fab's field solver and process window are the authority.

Questions

What people ask about this

Why does my device last a fraction of what the datasheet maths predicted?

Almost always one of four things. Sleep current in the real system is higher than the microcontroller datasheet figure, because a regulator quiescent current, a pull-up, a sensor that never actually sleeps, or a floating input is drawing alongside it. Self-discharge eats a coin cell over years regardless of your circuit. The converter is far less efficient at microamp loads than at its rated point. And a cell cannot deliver its rated capacity into pulsed loads at low temperature. This tool models all four.

What is the sleep current I should actually enter?

The one you measured on the assembled board, not the one in the datasheet. Datasheet sleep figures are for the die under ideal conditions. Measured whole-board sleep current is routinely five to fifty times higher on a first prototype, and finding out why is one of the most valuable days of work in a battery-powered project.

Why does the transmit pulse matter so much on a coin cell?

A CR2032 has an internal resistance of roughly 10 to 40 Ω when new, rising sharply as it depletes and at low temperature. A 20 mA radio pulse through 40 Ω drops the terminal voltage by 0.8 V, which is often enough to brown-out the microcontroller. The cell has plenty of energy left; it just cannot deliver it fast enough. This is why coin-cell radio designs need a bulk capacitor across the cell, and why they fail in winter.

Is a rechargeable cell simply better?

Not for a device that sleeps for years. Lithium-ion self-discharge and the protection circuit's own consumption can dominate everything else in a low-duty-cycle design. Primary lithium (LiSOCl2) has extremely low self-discharge and a wide temperature range, which is why it dominates metering and asset tracking despite costing more per joule.

Need a device that lasts a decade on one cell?

Ten-year battery life is an architecture decision made in the first week, not an optimization at the end. We design the power path, measure it, and prove the number.