← Back

A plant sensor that lasts years on one battery

The ESP32-C3 datasheet promises 5 µA in deep sleep. Reality is 600 µA, and 90 % of that is a single indicator LED. A soldering iron quadrupled the battery life.

A plant sensor that lasts years on one battery

The moisture sensing is the easy part. Sensor, ADC and WiFi all come ready made. The hard part is not wanting to dig the thing out of the pot every month to charge it.

The datasheet lies — or rather, it only describes the chip

The ESP32-C3 datasheet promises around 5 µA in deep sleep. Measured, the dev board drew 600 µA.

The difference isn't the chip, it's the board. Of that 600 microamps, roughly 540 µA is a red power LED that stays lit right through deep sleep. The rest is regulator quiescent current.

That LED does nothing useful on a device buried in potting soil.

Deep sleepBattery life (2500 mAh 18650)
Board as shipped~600 µA~6 months
LED removed~100 µA2+ years

The fix is a soldering iron, tweezers and two minutes: heat both pads, lift the LED off. One component removed, battery life up fourfold.

The rest is software

  • ESP-IDF instead of Arduino. Better power management and a smaller memory footprint.
  • fast_connect. Scanning WiFi channels is wasted awake time when the network never changes.
  • A power switch for the sensor. GPIO5 cuts sensor power during sleep, saving about 6 mA on its own.
  • 15 s awake, 6 h asleep. Soil moisture moves slowly. Sampling more often tells you nothing new and costs battery.

The ESP32-C3 doesn't support EXT0 or EXT1 wake sources, so it wakes on a timer. For this job that's fine.

The lesson

You can't optimise power from a datasheet. You have to measure it — and measuring showed the single largest consumer was a component whose only job is to tell you the device has power.