Average Current Is the Only Battery Number That Matters — And You're Probably Measuring the Wrong Thing

Why average current, not sleep current, predicts real coin cell battery life

The 2-Year Design That Died in 4 Months

Your datasheet math was airtight. Sleep current at 1.5 µA, a CR2032 rated for 225 mAh, do the division, and you get years of runtime. You wrote “2-year battery life” on the spec sheet with a clear conscience.

Then the field units started dying at 4 months.

Here’s the uncomfortable part: your measurement wasn’t wrong. Your sleep current really is 1.5 µA. You probed it, you saw it on the scope, you optimized the daylights out of it. The problem is that sleep current was never the number draining your cell.

Average current over a full duty cycle is what drains it. Sleep current feels like progress while your radio bursts quietly eat the budget.

Let’s walk through why the number you trusted lied, the math that actually predicts lifetime, and why your oscilloscope physically can’t show you the truth.

Why Sleep Current Lies to You

Sleep current is seductive for one reason: it’s easy to measure and satisfying to shrink. You tweak a register, watch the reading drop from 3 µA to 1.5 µA, and feel like you earned something. You did, just not as much as you think.

A device sitting at 1.5 µA that wakes up to slam 6 mA into the radio for a BLE advertising burst is not a 1.5 µA device. It’s a device with two current worlds, and the loud one wins.

Current
  |
6mA|      ___          ___
  |     |   |        |   |
  |     |   |        |   |
1uA|_____|   |________|   |______
  +-------------------------------> time
   sleep  TX   sleep   TX   sleep
   <------ one duty cycle ------>

Your cell doesn’t care what the current is at any single instant. It cares about the total charge you pull out over time, sleep and TX combined. Optimize one spike out of that picture and you’ve optimized a rounding error.

The Math That Actually Matters

Average current is time-weighted charge. Add up the charge from each state, divide by the total period:

I_avg = (I_sleep × t_sleep + I_active × t_active) / (t_sleep + t_active)

Let’s run real numbers. (All values here are illustrative, meant to be clean and reproducible, not measured from a specific board.)

  • Sleep current: 2 µA
  • Active current: 6 mA during a radio burst
  • Burst length: 3 ms
  • Advertising interval: 1 second

Charge from sleep across ~1 second: 2 µA × 0.997 s ≈ 1.99 µA·s Charge from the burst: 6 mA × 0.003 s = 18 µA·s

Add them: about 20 µA·s per second. Divide by the 1-second period and your average current is roughly 20 µA.

Read that number against your 2 µA sleep figure. The 3 ms burst, active for 0.3% of the time, contributes 9x more charge than the entire second of sleep. That’s where your battery went.

Now divide realistic capacity by that average. A CR2032’s nameplate is around 225 mAh, but under pulsed loads you should derate hard. Usable capacity often lands closer to 180-200 mAh once you account for voltage sag during current spikes and end-of-life cutoff. (Check the pulsed-load curves in your specific cell’s datasheet; vendors vary, and best-case figures aren’t your figures.)

                | Sleep-only view | Real (avg) view
----------------|-----------------|----------------
Current basis   | 2 uA            | ~20 uA avg
Est. lifetime   | ~10 years       | ~1 year
Verdict         | Ships!          | Dies in field

Same board, same firmware, two completely different coin cell battery budget outcomes. The only thing that changed is which number you believed.

Why Your Scope Can’t See It

You might think you’ll just measure the average yourself with a shunt resistor and your scope. Here’s the trap.

Your currents span from nanoamps in deep sleep to milliamps during TX. That’s five or six orders of magnitude. A single shunt resistor can’t honestly capture both ends.

Size the shunt for the 6 mA burst and the voltage drop during sleep is buried in noise. You’ll read something, but it’s garbage at the low end. Size the shunt for nanoamp sleep current and the burst dumps enough current to saturate your front end, or the added series resistance sags your supply and changes the very behavior you’re trying to measure. Pick your poison.

Bandwidth makes it worse. A 3 ms burst has fast edges, and if your scope’s averaging or sample rate smears them, the peak charge gets undercounted. Sleep current profiling with a scope tends to look reassuringly clean precisely because the instrument is hiding the part that kills you. Your measurement “looked fine” and the battery still died because the tool couldn’t see both worlds at once.

The Tools That Can

The category you want is a dedicated current analyzer: auto-ranging across nanoamps to milliamps, with charge integration built in so it hands you average current directly.

Two that show up constantly in BLE work:

Nordic Power Profiler Kit II (PPK2): affordable, runs as both a source meter and an ammeter, popular for exactly this kind of coin cell profiling.

Otii Arc / Ace (Qoitech): higher-end, combining a programmable power supply, analyzer, and logging in one unit for longer captures and automated test.

One caution, and I mean it. Models, current ranges, resolution, and firmware all change over time. Treat this as a category recommendation, not a spec sheet. Verify the current ranges and the exact model against the vendor’s latest docs before you spend money. Don’t quote a number from a blog post (including this one) as gospel when your design margin depends on it.

The Advertising Duty Cycle Is Your Real Budget

Back to the waveform. What sets how often that expensive 6 mA burst fires? Your BLE advertising interval.

This is the single biggest lever on BLE battery life, and it hides in plain sight because shortening it feels harmless. Drop your advertising interval from 1 second to 500 ms and you’ve roughly doubled the active term in your average. Your I_avg jumps, and your “2 years” quietly becomes “1 year,” with no other change.

Connection intervals, TX power, and payload size all feed the same equation. Bigger payloads mean longer radio-on time per event, which is more charge per burst. That’s why keeping your payload tight matters: Hubble supports around 13 bytes of arbitrary payload, enough to carry real sensor data while keeping each transmission short, and short transmissions keep your average current down. Check the advertising packet format and transmission guidance before you decide how often and how loud to talk.

There’s a system-level angle too. A lot of coin cell BLE designs die not from the cell but from the assumption that you need dense local gateways to hear the device. Hubble’s global BLE network lets these low power devices report without you building out gateway infrastructure, so you can pick an advertising interval driven by your battery budget rather than by gateway coverage gaps. That’s one fewer reason to crank the interval down and torch your average current.

The Workflow, Step by Step

Stop guessing and measure the number that matters:

  1. Instrument the board with a current analyzer that auto-ranges across nanoamps to milliamps.
  2. Capture at least one full duty cycle, ideally several advertising events in a row so you don’t miss variation.
  3. Let the tool integrate charge and read average current directly. Don’t eyeball peaks.
  4. Divide your derated cell capacity (not the nameplate) by I_avg for a realistic lifetime.
  5. Iterate on advertising interval, TX power, and payload size, then remeasure. Never ship a number you calculated but didn’t confirm on hardware.

[PLACEHOLDER: add internal link to Hubble low-power embedded design pillar page once published.] [PLACEHOLDER: add internal link to CR2032 / coin cell pulsed-load derating article once published.]

What To Measure Before You Ship

Stop chasing sleep microamps in isolation. Sleep current tells you almost nothing on its own, and your scope can’t honestly show you what does.

Capture a full duty cycle with a tool that sees the whole range from nanoamps to milliamps, integrate the charge, and divide by the period. That single average current number, checked against a realistically derated cell, is the difference between a coin cell design that ships and one that dies in the field at month 4.


Fact-check notes for editor: all numeric examples (2 µA sleep, 6 mA burst, 3 ms, 1 s interval, resulting ~20 µA avg) are illustrative and chosen to be clean/reproducible. The CR2032 usable-capacity range (180-200 mAh derated) is presented as a defensible range, not a single vendor figure; confirm against the specific cell datasheet being referenced. Tool specs for PPK2 and Otii are intentionally not quoted; verify current models/ranges against vendor docs at publish time.


Hubble Network turns real-world average current into battery life you can trust—no guesswork about whether your device survives past month 4. See how it works →