ESP32 low-power topic

Topic for ESP32 low-power and ESP32 low-power development boards

These boards can either have onboard LoRa support or not.

The ESP32 is popular in the IoT and maker communities for its connectivity, versatility and accessibility. Thanks to its Arduino support it is usable for a wide audience.

The ESP32 is not one of the most power-efficient MCU’s (especially when WiFi is used) and may not be the first choice for low-power battery powered applications, but it is used on several popular LoRa development boards.

It is possible to use the ESP32 for low-power applications (it even has a special low-power coprocessor). Unfortunately most of the current popular ESP32 (LoRa and non-LoRa) development boards are not designed for low-power operation and are not battery friendly (the board design however is not something that the ESP32 MCU should be blamed for).

In practice it is (still) difficult to get an ESP32 board that is designed for low-power applications. The purpose of this topic is to collect and provide a source of information for ESP32 low-power applications and ESP32 low-power development boards.

Information for this topic can be (links to) articles, applications (repositories), tips to minimize power usage with ESP32 (boards) and information about available ESP-32 low-power boards. Maybe this can make the ESP32 a bit more attractive for DIY LoRaWAN projects.

ESP32 specifications:

  • WiFi support (which has contributed much to the popularity of the ESP32)
  • Bluetooth (BT) support
  • Dual core 32-bit microprocessor operating at 160 or 240 MHz which
    can be lowered to as low as 10 MHz to save power (80 MHz if WiFi or BT are needed)
    (some versions like the ESP32-S2 and the ESP32-Cx models have a single core)
  • Ultra low power (ULP) co-processor
  • Memory: 520 KiB SRAM, 448 KiB ROM
  • Flash memory (external) commonly 4 MB up to 16 MB
  • Some modules/boards increase RAM (PSRAM) up to 8 MB
  • 34× programmable GPIOs
  • 12-bit SAR ADC up to 18 channels
  • 2× 8-bit DACs
  • 10× touch sensors (capacitive sensing GPIOs)
  • 4× SPI, 2× I²C, 2× I²S, 3× UART serial interfaces
  • PWM up to 16 channels
  • SD/SDIO/CE-ATA/MMC/eMMC host controller, SDIO/SPI slave controller
  • Cryptographic hardware acceleration
  • 5 μA deep sleep current
  • Wake up from GPIO interrupt, timer, ADC measurements, capacitive touch sensor interrupt
  • Espressif SDK includes RTOS support (also usable for Arduino)
4 Likes

In order to test the low-power performance of the esp32 I had to acquire a few boards and I didn’t really like any of them.

ESP32 Power consumption test

1 Like

The module has been designed to be used in Sleep mode without excessive current draw. I read 9uA when powering from the Vin and Gnd pins.with the processor in deep sleep mode.

The module has been designed to be used in Sleep mode without excessive current draw. I read 12uA when powering from the Vin and Gnd pins.with the processor in deep sleep mode.

The module has been designed to be used in Sleep mode without excessive current draw. I read 12uA when powering from the Vin and Gnd pins.with the processor in deep sleep mode.

The module has been designed to be used in Sleep mode without excessive current draw. I read 12uA when powering from the Vin and Gnd pins with the processor in deep sleep mode.

1 Like

Guide to Reduce the ESP32 Power Consumption by 95%

ESP32@10MHz uses 8mA

ESP32 Tips to increase battery life

  • 25-35uA in deep sleep
  • VIN: 3.3 – 12V
  • ESP32-WROVER-B
  • 8MB PSRAM
  • 8MB Flash

ESP32 Deep Sleep with Arduino IDE and Wake Up Sources

1 Like

https://kudzu.gr/solutions/kudzu-iot/#sprout-mainboard

From Europe (Greece).

  • Stable operation with as low as 2V input voltage
  • Ultra low sleep power consumption (5μΑ / 10μΑ / 150μΑ according to configuration)
  • Integrates a LiPo Charger and a Fuel Gauge to monitor the internal battery
  • Data logging on SD-Card or F-RAM for more demanding solutions
  • LoRa (868Mhz)

You may have a look at the WiPy from PyCom, default PyCom runs MicroPython on it but it is a “normal” ESP32 and can be operated with the Arduino IDE also, I measured 16 uA deep sleep current. Or you use the LoPy with integrated LoRa (SX1276). Donwside: All PyCom boards have no USB connector. You have to use the PyCom expansion board or an FTDI cable.

Another downside is that Pycom boards don’t support automatic C/C++/Arduino firmware uploading but also don’t have the required GPIO0 button to manally put the ESP32 in firmware upload mode, not even the Expansion Board has it. To upload firmware to the Pycom boards requires prying with a wire to connect GPIO0 to ground, then press the reset button, release the reset button and then remove the wire again.
The Pycom boards therefore are not very development friendly for C/C++ and Arduino.

This one looks great.
Same sizes and almost same mounting holes as the huzzah32 but half the price and hopefully a lot less deep sleep power consumption

An other ESP32 low power board ist the FireBeetle from DFRobot. With ~9 uA in deep sleep for the FireBeetle (1) and ~14 uA for the FireBeetle 2.

Be aware to initialize the onboard LED to get this numbers in the FireBeetle 1 and cut the trace on the solder jumper on FireBeetle 2 to reach 14 uA, details see DFRrobot FireBeetle - #3 by clemens - Hardware bazaar - Hiveeyes .