The Batteries

A project log for ESPmobe - battery powered ESP32 IoT-sensor

A compact, battery powered IOT multi sensor module with wifi & MQTT support. Feat. temperature, humiditity, lux, air pressure, PIR & more

michaelMichael 05/27/2017 at 10:381 Comment

I designed the circuit with the idea to use batteries without a voltage regulator, because they use current every time. The sensor board should stay in low power mode most of the time, so a voltage regulator (even the ultra low power ones) could be responsible to a significant amount of power drain.

Not long ago, Espressif updated their datasheet of the ESP8266. Now they state the operating voltage is between 2.5 V and 3.6 V (in the past, they only guaranteed a minimum voltage of 3.0 V).

By my own experiments, I found a working minimum voltage of 2.3 V using different modules. This allows to use different battery technologies directly. Sadly, the wide known LiPo batteries are no candidates, because their voltage ranges from 3.0 V (drained, better go not lower than that) to 4.2 V fully charged.

For microcontroller circuits there is another interesting alternative: LiFePO4. The nominal voltage of one cell is 3.2 V, which is near the 3.3 V of modern electronics. They are fully charged at 3.6 V (perfect) and can be discharged to 2.5 V – 2.0 V (depends on the manufacturer). I managed to get cells in the AA-battery size with 700 mAh capacity and used two in parallel.

The next possibility are NiMH-cells. You have to use two cells in series because their nominal voltage is 1.2 V per cell. Fully charged they are near 3 V, then they have a long plateau around their nominal voltage and at 2.3 V they are over 90 % drained. Sounds good. I used Eneloops which have a low self-discharge rate. Their capacity is araound 2000 mAh.

As alternative you could also use alkaline batteries. If they last long enough, they could be an option because they are way cheaper than the rechargable NiMH-cells. 1.5 V is their nominal voltage, which is slightly higher if they are new. They can be drained until no voltage remaines, but they are quite dead at 2.3 V (or 1.15 V per cell). The capacitiy is a bit higher than the Eneloops at around 2500 mAh.

I programmed a test procedure to get battery life results in time-lapse: The sensor board wakes up, connects to my Wifi, reads the sensors, reports the states to my MQTT broker, sleeps for 5 seconds an repeats everything. At every wakeup it increments the reboot number and stores it in the RTC memory to last between the wakeups.

I got the following results:

Battery Voltage Range RebootsLifetime (10 reboots/h)
LiFePO4 (2P)3.5 V – 2,26 V53706223 days
Eneloop (2S)2.9 V – 2.27 V82883345 days
Alkaline (2S)3.3 V – 2.26 V91652381 days


At a wakeup rate of 10 wakes per hour or every 6 minutes, every battery technology can achieve the desired goal of 6 months of operation. Of course the lifetime will be lower in the real usecase, because the test didn’t acount for the standby currents. The winners are clearly the alkaline cells, followed by the Eneloops. For environemntal reasons, I will choose the NiMH, because they are rechargable.


Adam wrote 01/22/2018 at 22:30 point

just came across the internet to get to this old project:) i enjoy reading it but do have a question regarding your lifetime results. You didnt use any large capacitor so you had multiple (>300mA) spikes when boot/wifi. We can average this 10s of awake to 100mA current drawn. But even 70mA, even without capacitor, even 0uA during deep sleep and even 5s to connect wifi which is also very optimistic you would need over 5300mAh to reach 380days and >91.000 wakeups... Since you connect AA in series you get 2500mAh max capa.

Just wondering hows that possible to get such lifetime. Did you estimate it or is this real experiment?


  Are you sure? yes | no