← How-Tos
electronics 48 min ago ◯ 6 min read

Coin Cell and Low-Power Battery Design for Wearables and Sensor Nodes

coin cellCR2032low power designsleep currentbattery lifeesp32blequiescent current

Plenty of ESP32 tutorials assume a wall outlet or a fat LiPo pouch is available, but a real class of maker projects — door/window sensors, remote temperature loggers, e-ink tags, key finders — needs to run for months or years off a single coin cell that's smaller than a fingernail. That's a completely different design problem from powering a always-on WiFi project, and getting it wrong means a "one year battery life" sensor that's dead in three weeks. This guide covers coin cell selection, the low-power design decisions that actually matter, and how to budget a battery life estimate you can trust before you build.

Coin Cell Chemistry and Capacity

Not all coin cells are interchangeable, and picking the wrong one is one of the most common beginner mistakes in low-power design.

CellChemistryNominal voltageTypical capacityBest for CR2032Lithium (non-rechargeable)3.0V~220-240mAhGeneral low-current sensor nodes; the default choice for most projects CR2025 / CR2016Lithium (non-rechargeable)3.0V~160mAh / ~90mAhThinner enclosures where CR2032's thickness won't fit CR123ALithium (non-rechargeable)3.0V~1500mAhHigher-drain or longer-life projects that still need a compact cylindrical cell LIR2032Rechargeable Li-ion3.6-3.7V (fresh), sags fast~40mAhRarely worth it — far lower capacity than a primary CR2032, only useful if physical recharging access is guaranteed ML2032 / MS2032Rechargeable lithium-manganese (coin-cell "supercap"-adjacent)3.0V~65mAhRTC backup, not primary power — trickle-charged from a main supply, not standalone

For a standalone sensor node, CR2032 is almost always the right starting point: cheap, widely available, genuinely high capacity for its size, and a stable enough discharge curve to reason about. Avoid rechargeable coin cells as a primary power source — their capacity is a fraction of a primary lithium cell's, which defeats the purpose of a coin-cell design in the first place.

The Real Constraint: Pulse Current, Not Just Average Current

A CR2032's datasheet capacity number is measured under a light, continuous drain — but the internal resistance of a coin cell (typically 10-30Ω, rising as the cell ages) means it cannot supply a large current pulse without its voltage sagging badly. An ESP32 transmitting over WiFi can draw 200-500mA in short bursts; a coin cell asked to supply that directly will sag well below the 3.0V it needs to keep the regulator (and the chip) alive, causing brownouts and resets — even though the cell has plenty of total remaining capacity. This is the single most common failure mode in coin-cell ESP32 projects, and it's a power delivery problem, not a capacity problem.

The practical fix is a buffer capacitor: a 100-470µF low-ESR capacitor (tantalum or a good low-ESR ceramic/electrolytic) placed directly across the battery terminals absorbs the current spike during a radio transmit burst, letting the coin cell recharge the capacitor slowly between bursts rather than trying to supply the peak current directly. This one component is often the difference between a coin-cell project that resets constantly and one that runs reliably for its entire calculated life.

Choosing a Radio for Coin-Cell Budgets

WiFi is rarely the right radio for a genuinely long-life coin-cell project — its connection/association overhead alone can burn more energy per wake cycle than an entire BLE advertisement.

Sleep Current Is the Number That Determines Battery Life

For any project spending 99%+ of its life asleep, deep sleep quiescent current — not active/transmit current — is what actually determines whether a coin cell lasts weeks or years.

Building a Realistic Battery Life Estimate

A rough but genuinely useful calculation: average current draw (mA) = (sleep current × sleep time + active current × active time) / total cycle time. Multiply the coin cell's usable capacity (not its full rated capacity — derate to roughly 70-80% for a realistic cutoff voltage and self-discharge over the product's lifetime) by 1000 to get µAh, then divide by your average current draw in µA to get hours of life.

Worked example: an ESP32 sensor node with 8µA sleep current, waking once per hour for a 3-second BLE advertisement burst at 15mA average during that burst. Active energy per cycle is trivial compared to a full hour of sleep at 8µA, so average current is dominated by sleep draw — in this case, well under 10µA average, which against a derated ~180mAh usable CR2032 capacity projects multiple years of service. The same project reporting over WiFi every hour, drawing 150mA for 2 seconds per cycle, has a meaningfully higher average current and a dramatically shorter real-world life — often measured in weeks rather than years — which is exactly why radio choice matters as much as sleep current.

Practical Checklist

None of this is exotic — it's a handful of component and firmware choices applied consistently. But skipping any one of them (a leaky regulator, an always-on pull-up, a WiFi radio where BLE would do) can turn a "years on a coin cell" design into one that needs a battery change before the project's even interesting anymore.