Page 1 of 2

ESP32 Power consumption considerations

Posted: Mon Aug 07, 2017 10:27 am
by frax84
Hello,
i made some test to get an idea of power consumption of ESP32 (devkitC by Olimex). I tried different scenarios and i want to summarize the data in a sort of table:

VCC=5V
N. CORES ACTIVE: DEFAULT

SCENARIO-----------------------------------------CPU80MHz-------------CPU160MHz-----------CPU240MHz
- CPU + ELECTRONICS + BT-----------------------113mA------------------123mA-----------------141mA
- CPU + ELECTRONICS------------------------------38mA------------------- 51mA -----------------73mA
- CPU (deep sleep) + ELECTRONICS-------------3.5mA-------------------3.5mA-----------------3.5mA

NOTE: With the term "ELECTRONICS" i summarize the contribution in the consumption of everything on the board except for ESP32

Comparing these results with the Table 6 of the esp32 datasheet:
https://www.espressif.com/sites/default ... eet_en.pdf

I'm not able to get a full grasp of what is drawing how much. From Table 6 of datasheet we have that, in modem sleep, with CPU powered on:
Max speed (i suppose 240MHz): 20 mA
Normal speed (i suppose 160MHz): 5 ~ 10 mA
Slow speed (i suppose 80MHz): 3 mA
Even if there should be a difference of 17mA between the slowest and the fastest case i get a difference in the range 28-35mA. At first i thought that this could be due to one or two core usage but i read this post:
viewtopic.php?f=12&t=1198&p=10623&hilit=40+44mA#p10623
where Igrr said
At 80 MHz, with two idling CPUs the chip consumes 44mA (without any radios), and with one CPU it consumes 40mA.
Probably i'm missing something. Can anyone explains what happens?

frax

Re: ESP32 Power consumption considerations

Posted: Mon Aug 07, 2017 11:28 am
by WiFive
First, get the latest datasheet. Also, not sure whether modem sleep for Bluetooth is enabled yet.

Re: ESP32 Power consumption considerations

Posted: Mon Aug 07, 2017 2:48 pm
by frax84
I know that modem sleep is still not in ESP-IDF. I neglected it because i suppose that Antenna can be considered (almost) off in that time so that i can consider the current draw almost completely from CPU. The estimation is rough so i don't care 1-2mA of error.
You were right for the datasheet. My bad for not noticing the updated version.In here the updated Table 6 is shown:

Max speed 240 MHz: 30 mA ~ 50 mA
Normal speed 80 MHz: 20 mA ~ 25 mA

Considering these values my tests have a better margin, even if to make things really right i need to consider the lower limit of Normal speed Vs something more than the upper limit of Max speed. By the way, so far so good.

Ty for help WiFive

Re: ESP32 Power consumption considerations

Posted: Tue Aug 08, 2017 9:37 am
by frax84
I have one more doubt about the considerations we did. From my test i have:
CPU (80MHz) + ELECTRONICS------------------------------38mA
CPU (deep sleep) + ELECTRONICS-------------3.5mA
This makes, as a rough estimation, 3.5mA the consumption of the electronics (regulator, led, etc.). If the CPU should use 20-25mA to work @80MHz, what is consuming the remaining 10-15mA?

Re: ESP32 Power consumption considerations

Posted: Tue Aug 08, 2017 10:06 am
by WiFive
Well that says the ELECTRONICS use 3.5mA in idle mode but not necessarily in active mode.

Re: ESP32 Power consumption considerations

Posted: Wed Aug 09, 2017 9:38 am
by frax84
Yes, this is a good point, but i'm wondering about what's happen a bit more in detail. Actually there are not so many components on the board and i don't understand how the deep sleep on the esp32 could influence the consumption of the rest of the board.
We have regulator, led, Serial interface (CP2102) and flash memory.
1) Regulator should have a current consumption <100uA;
2) led should be some mA, let's say 2-5mA (probably almost all the 3.5mA i get from the board in deep-sleep);
3) CP2102 could be a candidate for consumption, having a normal consumption of 20mA (100uA in suspend mode), but i verified the chip is always in suspend mode when the board is supplied by a voltage supplier and not PC.
4) Finally, we have the flash memory. This is harder to evaluate because of my ignorance. Considering a generic flash module:
http://www.elinux.org/images/f/f5/Winbond-w25q32.pdf at pag.48
can be read that "Current read data" can go from 4 up to 12mA (based on the frequency used) and the standby current is 25uA.
With this consumption, if the flash memory is put in standby when the esp32 is in deep-sleep i could consider everything off except for the power led and the current of 3.5mA could make sense.
By the way, during the normal mode i'm not able to evaluate the contribution of the flash memory on the overall consumption. The only explicit command about the flash memory in my main.c is nvs_flash_init().
Any suggestion?

frax

Re: ESP32 Power consumption considerations

Posted: Fri Oct 27, 2017 11:46 pm
by pontificator
Hi,

Using an oscilloscope I have measured current consumption of DOIT ESP32 DevKit with ESP-WROOM-32 module running Arduino WiFiScan demo sketch.

While executing WiFi.scanNetworks() function very first time, module consumes average current of 0.5A for 10 ms with four peaks of approx. 0.7A during that period.

After that module consumes average 130 mA with 0.6A current spikes. The spikes have duration of 0.5 ms and appear in bursts with spike rate of 100 ms.

Apparently it is about 2 times worse than promised in the ESP-32 data sheet. I expected to see about 0.3A max (50 mA for CPU and 240 mA max for WiFi transmitter).

Running ChipID demo sketch with WiFi off, current consumption is steady 50 mA, as expected.

Is it a problem of ESP-32 silicon or of ESP-WROOM-32 WiFi circuitry? Is it possible to get ESP-WROOM-32 modules with correct current consumption?

Update:
I have noticed that Espressif DevKitC has antenna hanging out of board. When I cut a piece of DOIT ESP32 DevKit PCB beneath antenna, the peak current consumption reduced by approx. 1/3
ESP-32 DevKit modified.png
ESP-32 DevKit modified.png (778.62 KiB) Viewed 147196 times
Thus, apparently the problem was caused by incorrect DOIT ESP32 DevKit design.

Re: ESP32 Power consumption considerations

Posted: Mon Apr 01, 2019 8:35 pm
by rustyx
pontificator wrote:
Fri Oct 27, 2017 11:46 pm
After that module consumes average 130 mA with 0.6A current spikes. The spikes have duration of 0.5 ms and appear in bursts with spike rate of 100 ms.
100ms is the WiFi beacon rate.
But my ESP32 dev kit (thus including the USB chip and power LED) consumes 40mA when connected to WiFi, spiking to ~150mA every 100ms.

Re: ESP32 Power consumption considerations

Posted: Tue Apr 02, 2019 1:33 am
by ESP_Angus
rustyx wrote:
Mon Apr 01, 2019 8:35 pm
pontificator wrote:
Fri Oct 27, 2017 11:46 pm
After that module consumes average 130 mA with 0.6A current spikes. The spikes have duration of 0.5 ms and appear in bursts with spike rate of 100 ms.
100ms is the WiFi beacon rate.
But my ESP32 dev kit (thus including the USB chip and power LED) consumes 40mA when connected to WiFi, spiking to ~150mA every 100ms.
Earlier versions of IDF didn't enable any power saving modes by default. Recent IDF enables WiFi modem sleep by default, and further power savings are possible by enabling "max" power saving mode or enabling light sleep as well.

Re: ESP32 Power consumption considerations

Posted: Tue Apr 02, 2019 1:36 am
by mikemoy
A better approach to testing current draw is to get a ESP32 Test Board. Like one of these. With the ESP32 removed test the current draw of the board alone. Then pop the ESP32 in there and subtract the new reading from when it was removed.
81nUR4BcgmL._SL1500_.jpg
81nUR4BcgmL._SL1500_.jpg (207.49 KiB) Viewed 123248 times