I am trying to learn how to nicely power a wifi chip by a rechargeable battery, and have the following arrangement so far (decoupling not shown):

enter image description here

The ESP8266 spends most of its time in deep sleep, but wakes periodically to take a sensor reading and transmit it over WiFi.

  • When asleep (10 minutes): current = 20μA
  • When active (1.2 seconds): current = 80mA (increasing to 180mA for short spikes during transmission)

The battery I am using is a single cell 1200mAh LiPo battery, which then feeds the MCP1700-330 3.3V LDO. Using the arrangement above, I measure the battery voltage dropping as follows during operation:

enter image description here

Currently, the battery life is around 10 months. I am wondering if there is a better way to power the circuit that I can use? (which doesn't add much extra complexity / cost). I am just learning, and this is my first attempt to power something with a battery.

I chose this arrangement because the MCP1700 has a very low quiescent current (1.6μA), and it can regulate the maximum battery voltage of 4.1V nicely down to 3.3V, as accepted by the load devices. I know that the dropout voltage is around 180mV, but am not sure what happens when the battery voltage drops below this (couldn't find it in the datasheet). Does it just track the input? Is it bad practice to do this?

I was planning to add undervoltage detection next, to disconnect the battery when its voltage reaches 3V, in order to protect it. But it seems like the battery is pretty much empty at 3.4V (or is this an effect of the LDO becoming unregulated?).

None of my devices actually need 3.3V, so does it make more sense to use a lower regulator like 2.6V (minimum specified by the ESP)? Or would this then result in too much lost energy (burnt as heat on the LDO) for the largest battery voltages? Should I use a different battery even?

I have read about buck-boost converters being used for this kind of thing (because they can ensure for example 3.3V even when the battery voltage drops below this), but it seems to me that they add more complexity for not much efficiency gain (because the currents are low).

Any feedback would be great, as I am confused as to what the best / standard way would be to go about this. Thanks!

EDIT - Some estimations of wastage

Assuming 1.2 seconds awake time, and 600 seconds sleep time.

Current flowing through LDO regulator when ESP is asleep = 20μA (from my circuit) + 1.6μA (quiescent current of LDO) = 21.6μA.

Current flowing through LDO regulator when ESP is awake= 80mA (dominated by my circuit, i.e. neglect LDO quiescent current).

When the LiPo battery is fully charged to 4.2V:

  • Voltage dropped across the regulator is 4.2V - 3.3V = 0.9V

  • Power dissipated by LDO when ESP is asleep: P = I*V = 21.6μA x 0.9V = 19.4μW.

  • Power dissipated by LDO when ESP is awake: P = I*V = 80mA x 0.9V = 72mW.

  • Energy wasted by LDO when ESP is asleep: E = P*t = 19.4μW * 600 sec = 11.6 mJ per cycle.

  • Energy wasted by LDO when ESP is awake: E = P*t = 72mW * 1.2 sec = 86.4 mJ per cycle.

  • Total energy wasted per cycle = 86.4 + 11.6 = 98 mJ per cycle.

When the LiPo battery is discharged to 3.4V (before nonlinear behaviour starts):

  • Voltage dropped across the regulator is 3.4V - 3.3V = 0.1V

  • Power dissipated by LDO when ESP is asleep: P = I*V = 21.6μA x 0.1V = 2.2μW.

  • Power dissipated by LDO when ESP is awake: P = I*V = 80mA x 0.1V = 8mW.

  • Energy wasted by LDO when ESP is asleep: E = P*t = 2.2μW * 600 sec = 1.3 mJ per cycle.

  • Energy wasted by LDO when ESP is awake: E = P*t = 8mW * 1.2 sec = 9.6 mJ per cycle.

  • Total energy wasted per cycle = 1.3 + 9.6 = 10.9 mJ per cycle.

Over the linear part of the battery's discharge from 4.2V down to 3.4V:

  • Average energy wasted due to asleep = (11.6 + 1.3)/2 = 6.5 mJ per cycle
  • Average energy wasted due to awake = (86 + 9.6)/2 = 47.8 mJ per cycle

It takes 9.5 months to go from 4.2V to 3.4V, which equates to 41000 cycles. So the total energy wasted

  • due to being asleep is 6.5 mJ/cycle x 41000 cycles = 266 J
  • due to being awake is 47.8 mJ/cycle x 41000 cycles = 1960 J

Total wasted energy is 2.23 kJ of which 12% comes from being asleep, and 88% from being awake.

Note, for this calculation, I have only accounted for when the battery voltage is dropping linearly (not including the non-linear behaviour after the "knee"). I have also assumed that the LDO regulator's quiescent current, and the ESP8266 sleep current are constant at 1.6μA and 20μA, respectively. This may not be the case - especially with the LDO, but I couldn't find info in the datasheet.

Energy required by my circuit:

  • When asleep, energy required is 21.6μA x 3.3V x 600 seconds = 43 mJ per cycle. Total energy = 43 mJ x 41000 cycles = 1750 J.

  • When awake, energy required is 80mA x 3.3V x 1.2 seconds = 317 mJ per cycle. Total energy = 317 mJ x 41000 cycles = 13000 J.

Therefore, over the linear discharge time of 9.5 months:

  • When awake, we have 13 kJ used by my circuit and 2 kJ wasted by the LDO.
  • When asleep, we have 1.75 kJ used by my circuit and 0.26 kJ wasted by the LDO.

This makes me think that even if the power supply (LDO or buck-boost) could perfectly convert the battery voltage into 3.3V with zero wastage, the gains in battery life wouldn't be huge (on the order of 10%), because most of the energy is actually consumed by my circuit. So might be better to use 2.6V instead of 3.3V...

EDIT #2 - Effect of different supply voltages

As requested by Neil_UK, I have removed the LDO from the circuit and varied the power supply voltage from 2.5V to 3.6V (as can be tolerated by the ESP8266). It can be seen that the deep sleep current varies from around 15.5μA up to 21μA. There is no meaningful change in the active current, which sits at around 77mA always:

enter image description here

I did not measure any change in time required to connect, but this ofcourse could be because I always have a strong enough WiFi connection. It would be better to measure RF output power, but I don't have the equipment, so this will have to do as a proxy for now.

  • 2
    \$\begingroup\$ @MarcusMüller Because the linear regulator is simplest, and seems to work quite efficiently when the input voltage is not too much higher than the regulated voltage. It also has a very low quiescent current (1.6μA - which has negligible impact on the 20μA deep sleep current of the ESP). \$\endgroup\$
    – teeeeee
    Commented Nov 29, 2022 at 14:45
  • 9
    \$\begingroup\$ at low voltages and very power quiescent power consumption, off the shelf switchmode regulators struggle to be as efficient as 'inefficient' linear regulators \$\endgroup\$
    – Neil_UK
    Commented Nov 29, 2022 at 14:46
  • 1
    \$\begingroup\$ check to see whether the regulator quiescent current increases in dropout, some do, some don't. It's not specified in the data sheet. With a FET output, I would guess that it stays low. It seems to show dropout voltage linearly related to output current, so showing that FET fully on in dropout. \$\endgroup\$
    – Neil_UK
    Commented Nov 29, 2022 at 14:53
  • 1
    \$\begingroup\$ Do the MCU and sensor take a lower quiescent at 2.5 V than 3.3 V? If so, then regulating to that lower voltage will save you quiescent current, assuming the regulator doesn't take more for some reason. I've not done the sums, but can you do them and edit the results into your question - how many Ah is used in sleep, and how many in sensor/MCU active? \$\endgroup\$
    – Neil_UK
    Commented Nov 29, 2022 at 14:58
  • 1
    \$\begingroup\$ The buck will probably have superior efficiency during active time, but you'll have to test its power draw during sleep time. Even if it claims low quiescent, that 20 uA you're presently sleeping at needs to be provided, and that means buck switching, and that means higher consumption than 'quiescent'. Many switching regulators have a 'skip' mode for very low currents, but you'll have to read the data sheet and test the parts to see exactly what that means. 'Very low' to one person might mean 500 uA, especially if the regulator can do 500 mA. \$\endgroup\$
    – Neil_UK
    Commented Nov 29, 2022 at 16:22

3 Answers 3


This is not really an answer, but there's too much here for a comment.

Let's try to understand the consumption, before going about fixing it.

We have 600 s of sleep at around 22 uA (LDO+MCU), and then 1.2 s of activity at 80 mA. The latter has an average current of 1.2x0.08/600 = 160 uA during the 600 s cycle. The MCU/WiFi consumption therefore dominates the total, so efforts should first be directed to reduce this.

One observation is that increasing the cycle time will immediately bring big improvements. RemyHx has suggested in comments using a different MCU ESP32-C3 that can read the sensor in its sleep. An alternative would be to wake the existing MCU only long enough to read the sensor in most cycles, and then periodically wake for longer to dump the results over WiFi. I'll wager it doesn't take 1.2 s to read the sensor.

Does the consumption of the MCU during the active periods vary with power supply voltage? Measure the active current at voltages from 2.5 V to 3.6 V, and see if there's a difference worth having. This may inform your choice of the final regulated output voltage. You should check the sleep consumption as well, but this has a lower impact on the total.

Using a buck regulator gives you the possibility of providing more Ah to your load than you consume from your battery. Taking the average battery voltage to be 3.7 V, and assuming outputting 2.6 V, and using an 85% efficiency figure (guessed at from the data sheet of Andy's suggestion of the LT8608), then you can provide 3.7x0.85/2.6 = 1.21 times the battery current to the load. Is an extra 21% worth having via this route?

If you were to use just a buck regulator, you might find that its sleep performance wipes out that 20% gain. Although the LT860 claims a few uA quiescent with no load, that will rise when it switches. It claims an input current of typically 56 uA and max 96 uA when taking 6 V down to a 2.7 V load at 100 uA, so anywhere from 50% to 90% efficiency. You would need to get one and measure it carefully with your 20 uA sleep load.

Note that the LT8608 is good for 45 V and 1.5 A. Higher voltage means higher resistance components. Higher current means larger area components so higher switching charge and consumption. While it's worth having a part number to design from, there should be parts available better suited to your requirements. I would expect a properly designed part aimed at 5 V and 500 mA could be a bit better efficiency at 100 mA, and much better at the 20 uA output.

A possible way to improve the buck sleep performance would be to use it together with an LDO to handle sleep. It may be possible to simply put the LDO and buck outputs in parallel, with the LDO programmed for 2.5 V, and the buck to 2.6 V. I would expect that each would tolerate its output driven in this way, but you would need to test this. On waking, the MCU would first enable the buck, and then disable it last thing before sleeping.

A much harder to quantify difference is MCU supply voltage versus WiFi consumption. I would expect the rail voltage to affect RF power output. If you operate at low rail voltage, does this increase the time required to make a connection back to the AP, due to missed/retried transmissions?

Can you use an MCU that uses Bluetooth, preferreably LE, or even 6LoWPAN? I worked on a design a while ago that was powered by current transformer from domestic mains, and used a TI MCU chip that incorporated 6LoWPAN, to talk to its base every second. I don't recall what the total current consumption was, but it was commensurate with your power levels.

  • \$\begingroup\$ This is a nice summary, thanks Neil. I have taken the measurements you suggested, and have added them as an edit to the post. It looks to me like only small battery life gains are possible from varying the power supply voltage... \$\endgroup\$
    – teeeeee
    Commented Nov 30, 2022 at 16:58
  • \$\begingroup\$ BLE is the least power hungry protocol I know of(because I don't know many, e.g. never worked with a ZigBee). \$\endgroup\$
    – Vorac
    Commented Dec 5, 2022 at 9:32
  • \$\begingroup\$ Good measurements. Disappointing result, but at least you know now. If you do use a buck, there's no downside to setting the MCU voltage down to the minimum reliable, to get the most benefit from the Vin/Vout ratio. le-top's suggestion of primary lithiums also crossed my mind as a potential route. You swap increased and reliable duration for an annual replacement cost. \$\endgroup\$
    – Neil_UK
    Commented Dec 5, 2022 at 9:50

Any feedback would be great, as I am confused as to what the best / standard way would be to go about this.

I see no reason why you wouldn't choose a switching buck regulator that can work down to 3 volts and still produce an output of 2.6 volts (as you state you can live with). A buck regulator is slightly more complex of course but, if you want to extend battery life, then it's the way to go. But, you have to pick the right buck regulator that has a low quiescent current: -

enter image description here

Image from data sheet.

You'll have to do the math and work things out but, it looks viable to me.

Remember that a buck regulator is ideally 100% power efficient in that it ideally doesn't dissipate power when dropping voltage. A linear voltage regulator does lose power by its very nature.

There are probably decent alternatives to the AD8608 from the usual sources like TI or On-semi.

  • 1
    \$\begingroup\$ Thanks Andy. In the datasheet you linked, I can see on page 4, the graph titled "Efficiency (3.3V Output, 2MHz,Burst Mode Operation)", it looks like the efficiency at 20μA is something like 40%. Is this something that could be a problem? Or am I misunderstanding this parameter? \$\endgroup\$
    – teeeeee
    Commented Nov 29, 2022 at 15:13
  • 1
    \$\begingroup\$ The main issue I see is that this massively increases the cost (the chip looks to be around £7 each, not including the external components). More than an order of magnitude more expensive than the linear regulator I used above. \$\endgroup\$
    – teeeeee
    Commented Nov 29, 2022 at 15:17
  • \$\begingroup\$ It comes down to how much value you place on extending battery life and, remember that this is just one chip from 1 supplier. Try TI for alternatives etc.. \$\endgroup\$
    – Andy aka
    Commented Nov 29, 2022 at 15:19
  • \$\begingroup\$ Regarding what might be a problem, you have to compare this with the linear regulator; it might be dropping 1 volt across it and that is a power of 20 μW. Given that it's quiescent current might be 5 μA (to produce 20 μA at the output), the total power wasted by the linear regulator is maybe 4*5 μA + 20 μW = 40 μW. That's not a great efficiency either so, do the math carefully and look for alternative buck regulators if this one is too expensive. \$\endgroup\$
    – Andy aka
    Commented Nov 29, 2022 at 15:24
  • 1
    \$\begingroup\$ Please post your full comparison calculations as an answer @user253751 \$\endgroup\$
    – Andy aka
    Commented Nov 29, 2022 at 18:28

Abandon the regulator:

Use Primary Lithium cells:

  • a CR123A/CR17345 3V Lithium battery @1500mAh. Low discharge, no loss in regulation, or,
  • 2xAA Energizer L91 "1.5V" (1.8V when fresh) @3000mAh
  • Other Primary Lithium cells 3V or 3.6V at the capacity/size that works for you.

Quick sketch with diode protection

  • \$\begingroup\$ The first two suggestions are not rechargable though, right? That was my reason for choosing the 3.7V LiPo... \$\endgroup\$
    – teeeeee
    Commented Dec 1, 2022 at 10:40
  • \$\begingroup\$ None fo the solutions I propose are rechargeable. Rechargeable cells go up to 4.2Volts, so then you need a regulator. You measured 10 months of autonomy, with a non rechargeable cell you will exceed that and you probably get 3 years of autonomy. You avoid the hassle of recharging and inconvieniences of having a flat battery. \$\endgroup\$
    – le_top
    Commented Dec 1, 2022 at 10:50
  • \$\begingroup\$ In the edit to the original post above, I measured that the majority of the energy is consumed when the ESP is awake (for 1.2 seconds) and transmitting. The amount of energy consumed does NOT vary with power supply voltage, as shown in the graph. So I don't see how abandoning the regulator and using a 3V battery, as you suggest, could ever lead to 3 years of battery life? \$\endgroup\$
    – teeeeee
    Commented Dec 1, 2022 at 11:02
  • 2
    \$\begingroup\$ Your LiPo is 1200mAh. A LR91 is 3000mAh (two in series is still 3Ah, but at about 3V), almost 3 times longer. However the LiPo has a self-discharge which you did not mention, in non-rechargeable batteries this is much lower. LiPo self-discharge is about 5% per month according to literature - so in 10 months, you battery emptied itself by about 50%. A CR123A is less than 1% in one year. I did not check the self-discharge so I was conservative in saying 3 years, but if you have 5% LiPo discharge per month, you can exceed 3 years easily with two L91. \$\endgroup\$
    – le_top
    Commented Dec 1, 2022 at 11:23
  • \$\begingroup\$ Thanks, I understand now - that's helpful. So, when using the two L91 batteries, how far would you discharge them? Do you need some cut-off undervoltage detection in order to make it safe? And if so, what is a good voltage to switch it off? \$\endgroup\$
    – teeeeee
    Commented Dec 1, 2022 at 11:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.