Battery-Powered IoT Sensor Draining Too Fast? How I Cut Sleep Current to Microamps

Nikhil Robinson · · 2 min read

A sensor promised a year on batteries but dies in weeks. The usual causes, and the measure-first process I use to fix battery life.

The problem clients bring: "We promised customers a year of battery life and the units are dying in three weeks." The product is already in the field, and a recall would be painful.

What is really going wrong

  • The microcontroller sleeps, but a sensor, LED, regulator or pull-up stays powered.
  • Radios wake far more often than the application needs.
  • Debug logging and peripherals left enabled in the release build.
  • Nobody has measured the actual current profile, so everyone is guessing.

How I solve it

  1. Measure the real current profile with a power analyser and build a power budget from it.
  2. Find every leak in sleep: floating pins, always-on parts, regulator quiescent current.
  3. Restructure the firmware so it wakes, does its work in one burst and goes back to the deepest sleep possible.
  4. Tune radio intervals to what the product actually needs.
  5. Recommend small hardware changes, such as a load switch, when firmware alone cannot fix it.

What the client gets

A measured battery-life estimate they can put in front of customers, and firmware that meets it. Often most of the gain comes from configuration, without a board respin.