ESP32 power consumption at different CPU speeds
I conducted some basic power consumption tests with an ESP-WROOM-32 module on a bare breakout board, and a simple test script using the Arduino framework.
Script: Switch a GPIO port between high and low state with a 5s interval (delay(5000)
) and write state information to the serial port.
Tested with CPU frequencies 240MHz, 160MHz, 80MHz, 40MHz and 10MHz.
The tests ran fine with correct timing.
(As expected but I had not tested this with lower ESP32 CPU frequencies before).
ESP-WROOM-32 module supply current consumption:
CPU frequency | ESP-WROOM-32 supply current |
---|---|
240 MHz | 37.7 mA |
160 MHz | 27.8 mA |
80 MHz | 21.6 mA |
40 MHz | 11.9 mA |
10 MHz | 8.0 mA |
(The ESP-WROOM-32 module used for these tests is an older version with ESP32 gen 0.)
The tests show that lowering the CPU frequency results in substantial power savings.
This looks promising for ESP32 low-power applications that do not need WiFi or Bluetooth (but it will require a board that respects low-power usage).
Note that use of WiFi and Bluetooth requires a CPU frequency of at least 80MHz.
The test setup was kept very basic to minimize influence from external components. The CPU load was small. Results for real applications may vary and it will be interesting to see low CPU frequency results from others.