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.

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 sleep | Battery life (2500 mAh 18650) | |
|---|---|---|
| Board as shipped | ~600 µA | ~6 months |
| LED removed | ~100 µA | 2+ 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.