# Battery drains much faster than planned: add up every current draw

> Make a current budget: list each part with its current, add them up with peaks, then divide the battery capacity by the average to estimate the run time.

Canonical: https://roboticsengineering.in/fix/current-draw-of-sensors-adds-up-battery-life-budget/ | Published: 2026-11-03 | Updated: 2026-11-04

**Write down every part and its current, then add them up.** Run time is battery capacity divided by average current.

## What the message means

Small draws add up, and radios and motors have large peaks. A battery rated in milliamp-hours gives less than its label under heavy or cold use.

## Fix it in this order

1. List each part with its idle and active current from its datasheet or a meter reading.
2. Add the currents, and estimate how long each part is active.
3. Divide the usable battery capacity by the average current.
4. Use about 70 to 80 percent of the rated capacity as a safe figure.
5. Measure the real current with a meter in series and compare.
6. Turn off or sleep parts you do not need.

## Why it happens

Battery run time is capacity divided by average current, and the average has to include the peaks. A short radio burst at a high current for a few percent of the time can matter more than a steady low draw. The rated capacity is also measured under gentle conditions; heavy loads, cold and age all reduce what you get, hence the 70 to 80 percent rule.

Here is an illustrative example, not a measurement. A 2000 mAh cell at 75 percent usable gives 1500 mAh. An average draw of 150 mA then gives about 10 hours. If sleep modes cut the average to 15 mA, the same cell lasts about 100 hours.

## If you see this, do this

| You see | Do this |
| --- | --- |
| Runs for half the planned time | Peaks and capacity derating. |
| Idle current is high | Check LEDs, regulators and modules. |

## Related

[robot battery guide](https://roboticsengineering.in/robot-battery-guide/), [ESP32 deep sleep](https://roboticsengineering.in/fix/esp32-deep-sleep-wont-wake-up/).

Last reviewed: November 2026. These are the usual causes and the order that finds them fastest. Test on your own board; clones and cables differ.

## Why this happens

Run time is usable capacity divided by average current. The average has to be built from the time each part spends in each state. A sensor that draws 15 mA all the time adds as much as a radio that draws 150 mA for 10 percent of the time. Many boards also have a power LED and a regulator with its own quiet current, so a board that you think is idle can still use a few milliamps.

The type of regulator changes the sum. A linear regulator passes the load current straight through from the battery, so a 100 mA load costs 100 mA of battery current whatever the voltage drop, and the extra voltage is wasted as heat. A switching regulator conserves power, so the battery current is lower when the battery voltage is higher than the output. Power in = power out / efficiency.

## How to confirm the cause

- List every part, with its current when active and when idle, from datasheets first and a meter second.
- Measure the sleep current separately, with all radios and sensors off. Many boards use more in sleep than the chip alone because of the USB chip and LEDs.
- Measure with the meter in series on the right range. A meter shows an average, so a very short burst is missed; use a shunt resistor and a logger, or a long averaging time, for bursts.
- Log the battery voltage over time, and see when the board resets. A battery can reset a board well before it is empty because of voltage sag.
- Compare your measured average with the figure from your list. A large gap means a part is on when you think it is off.

## Worked example

An illustrative budget, not a measurement. The board is active for 10 percent of the time at 120 mA, and asleep for 90 percent at 5 mA.

```
Average     = 0.10 x 120 + 0.90 x 5 = 12 + 4.5 = 16.5 mA
Battery     = 2000 mAh x 0.75 usable = 1500 mAh
Run time    = 1500 / 16.5 = about 91 hours
Switching regulator example, 5 V at 100 mA from a 7.4 V pack:
  power out = 0.5 W, efficiency 0.9
  battery current = 0.5 / (0.9 x 7.4) = about 75 mA
```

## Common mistakes

- Using the peak current as the average, or the idle current as the average.
- Forgetting the regulator’s own quiet current and losses.
- Assuming the label capacity is real. Some cheap cells give much less.
- Expecting a LiPo to run down to zero. Packs have a safe cut-off voltage per cell.
- Leaving a pull-up or LED permanently on in a sleep design.

## If this did not fix it

- Check for a cheap or old battery. Age, low temperature and high current all cut the capacity.
- Check the regulator dropout. When the battery falls, the output can drop and reset the board early.
- Check the cell and pack wiring: parallel cells add capacity, but series cells add voltage only.
