Battery-life estimator

Put in what your node draws asleep and awake, and how often it reports. The defaults describe the reference node from our home page: an ESP32-C3 that joins Wi-Fi and publishes one MQTT message over TLS.

mAh
%

Covers temperature, ageing and cut-off voltage.

µA

Measure it on your board with sensors attached. Dev boards often sit in the milliamps.

mA
s
Report every
s
Average current
486µA
Battery life
5.6months
Used per day
11.7mAh
Spent awake
97%
1 week1 month6 months1 year5 years20 years10 s1 min5 min15 min1 hLimit set by sleep current
Battery life against how often the node reports

Waking uses almost all of the charge. Report less often, batch several readings into one message, or shorten the wake: keep Wi-Fi details in RTC memory and use a static IP so joining takes less time.

If the node never woke, this battery would last 15 years. That is the ceiling your sleep current sets.

How it works

A duty-cycled node spends most of its life in two states. The average current is the charge used in one cycle divided by the length of the cycle:

charge per cycle = I_awake × t_awake + I_sleep × (T − t_awake)
average current  = charge per cycle ÷ T
battery life     = capacity × usable fraction ÷ average current

T is the reporting interval. Usable fraction is the share of the label capacity you can count on once temperature, ageing and the cut-off voltage take their part. 80% is a cautious starting point for a lithium cell.

The chart draws the same formula across intervals from 10 seconds to an hour. As reports get rarer, the curve flattens towards the dashed line: the life the battery would have if the node never woke. That ceiling is set entirely by sleep current.

What it leaves out

It uses one average for the whole wake. Radio bursts heat the cell and sag its voltage more than an average suggests.

It ignores self-discharge beyond the usable fraction, and capacity lost in the cold.

It can’t measure your board. Sleep current on development boards is often thousands of times the datasheet figure.

Why dev boards miss their sleep current