Powering an ESP32 or ESP8266 off a battery

I am building a compact device with WiFi which if it could run off a commonly available battery it would vastly improve its uses.

Due to constraints of the enclosure, the biggest battery that is commonly available is the AAA.

Let’s see if we can get this to all work from an AAA sized battery, or smaller!

Initial prototype MVP board. It has been tested in a variety of roles and is now proving quite stable.

This is the general board in an early stage with the AAA as planned, but untested.

Initial idea, AAA battery vertically, but forgot about wifi, step up, and esp32cam.

Battery woes

At this point I wanted to see how long the AAA would last with the hardware so I would have some idea of its future uses.

Using one battery requires a step up converter to bring the 1.5v of the battery up to 3.3v that the ATTiny85 and ESP12F/8266 require. I had a 5v step up board so I decided to try it with the regulator to see how long it would last, but it wasn’t good.

A tiny common step up board

Each time the ESP12F powered up, the ATTiny85 would reset. I tried a number of things from multiple capacitors, more batteries, etc. The multiple batteries gave some success but it couldn’t make a valid web request, and the batteries wouldn’t fit in the enclosure. I had a similar issue when I tried to run this from USB in the beginning – the USB port just couldn’t provide the regulator with enough current.

Also I tested the 5v step up and 3.3v regulator combination which managed to last around 24 hours of the ATTiny85 running for 20s each minute. This isn’t enough.

So I have decided at this time that the battery mode will have to bypass the regulator, and use a 3.3v step up board instead. This limits the subboard possibilities but it’ll have to do, and hopefully be vastly more efficient.

If this doesn’t test well then I have to look for another battery – either 2 x AAAA size, or CR2025/CR2032 coin cells. These aren’t as common, but a positive side effect will be that both options can allow for solid subboards above them.

Battery Solutions

After a lot of research it seems I should be able to run this off the AAA as planned without the regulator in play. With a possible lithium (LIR2032) coin cell option I have found I can place it in the same position as the AAA cell, so it’s sitting there until I work out more.

This is an interim board to be considered after testing, as a lithium coin cell can power this directly. It all still fits!

The coin cell idea comes from this youtube video where it requires a tiny HT7333 3.3v regulator which of course takes up more space, it’s available in a transistor sized package so that’s doable.

More trial and error

I did a number of trials with my test board and capacitors, along with an LIR2032 battery and 5v step up converter. This wasn’t quite enough to get a successful photo uploaded from an esp32cam. Even adding multiple capacitors and such. However earlier on I discovered this video:

This demonstrates the ability to power a straight ESP32 off of an LIR2450. The only changes were a tiny 3.3v low dropout regulator, and a massive 1000uF capacitor. So this shows I should be able to power all of this off of a battery at least but not sure of the ESP32cam. It will all depend if the new 1000uF capacitor is enough with the 5v step up board.

If that combination isn’t great then it will basically be a point of ruling out the 5v step up almost, which then allows the 3.3v step up to be soldered to the board directly.

Coin cells and current

I ended up trying a very similar arrangement as the above video without much success. I couldn’t get the wifi to boot up successfully with my coin cells. The issue I believe is the LIR2032 sized batteries. These only contain about 40mA, and the sustained current they can provide is too low at around 60mA. This is far below the 80mA the esp32 requires, and much lower than the 100mA the larger LIR2450 batteries can provide in the video above. So these coin cells have been ruled out.

AAA sized 10440 batteries

I am having a lot of success with the 10440 sized 3.6v batteries with a large capacitor and a HT7333 low dropout regulator, almost the identical setup to the video.

This has allowed the esp32 to start up for about 10s every minute, lasting for a number of hours. The total cycles seems to be around 270 web requests. Success!

I have yet to receive the 3.3v step up boards or the proper capacitors, so until then this is the best I can do but once they arrive I hope it provides better efficiency, and the ability to use a standard AAA.

3.3v step up boards

These absurdly tiny boards finally arrived a few days ago, so I have been frantically testing but no success yet. I tried adding multiple batteries, multiple step up boards in parallel, big capacitors. There’s too much voltage drop. I even built a dedicated 1.5v power supply which still couldn’t handle it. I think the ESP32 is in permanent boot mode so it just sucks the current from anywhere it can find it. An esp8266 didn’t have any different outcome.

More research has determined this thing needs a massive capacitor for the extreme current draw at the beginning just to survive the boot. Maybe that needs to be bigger when boosting from 1.5v? I’ll see once the capacitors arrive. I know it’s possible to do this – just how?

Brilliant little boards though for anyone who needs higher voltage from a AAA – just not a lot of current for these!

Trials and failures

I have been experimenting with any and every way to get an ESP32 to boot off of a AAA battery with no luck.

ESP32 attempting to be powered with 2 x AAA’s, 4 x step up boards in parallel, and 7 x 400uF or so capacitors.

What is puzzling me is the success of the previous test with a 3.7v 10440 battery and a LDO regulator. There are only two results I have found from searching – one said they had used a led driver circuit which provides an immense amount of current but heats up the battery. There was no circuit provided. The other said to connect the CH pin of the ESP32. I had that connected on a previous chip but I have broken it in my testing. So at some stage I’ll wire up that pin on this board and see how it goes. But I feel like I’m missing something obvious…