Power supply for the ESP32

esp32
#1

Hi there,

@clemens just reminded me that I promised to drop some words about issues coming from insufficient or unstable power supply to ESP32-based modules and how to mitigate them. We researched this issue together with @tonke the other day, thanks!

Hint: If you are encountering problems like described here and you will not be able to make it work just by swapping the USB cable, a little amount of soldering might be involved.

Reference

With kind regards,
Andreas.

#3

Introduction

To get started, the official documentation from Espressif has an appropriate troubleshooting section in its esptool documentation. Please read this carefully, especially when it comes to debugging issues revolving “stable power supply” after experiencing connectivity or responsiveness problems with your board.

TLDR;

Things might go south if power circuit fails to meet the large spikes of ESP32 power demand when using WiFi and/or when attached peripherals draw too much power.

  • Check your USB cable.
  • Check your power supply.
  • Apply the cap trick by adding a missing capacitor to your board.

Power supply

The official documentation already has a detailed section about insufficient power supply, see troubleshooting insufficient power.

1 Like
#4

Issue collection

You might want to read from others having similar issues with ESP32-based development boards from different vendors.

Faulty USB cable

Motto: Check your cables and wiring. In doubt, swap them.

Try just change your USB cable (I got some flash problems with a cheap cable).
https://github.com/espressif/arduino-esp32/issues/333#issuecomment-324620137

For me it was a bad usb cable.
https://github.com/espressif/arduino-esp32/issues/333#issuecomment-472773039

Power supply

For me it was a power issue, I am using a EzSBC esp32 dev board. Interesting it happens when I upload a sketch that requires a lot of pin usage. The way I “fixed” the situation was to apply 3v 2amp external supply to the 3v pin on esp32, plus an external ftdi to rx/tx, with common ground. Applying 5v 2amps to Vin on module did not solve the problem.

Failed to connect to ESP32: Timed out waiting for packet header · Issue #226 · espressif/esptool · GitHub

Missing cap

Fixing this issue already goes by “applying the cap trick” ;]. Enjoy.

Some third party ESP32 development boards use an automatic reset circuit for EN & GPIO pins, but don’t add a capacitor on the EN pin. This results in unreliable automatic reset, especially on Windows. Adding a 100nF (or higher) value capacitor between EN pin and GND may make automatic reset more reliable…

ESP32 Boot Mode Selection · espressif/esptool Wiki · GitHub
– via: Establish Serial Connection with ESP32 — ESP-IDF Programming Guide v4.0-dev-402-ga20d02b7f documentation





#5

Please be aware when running your device on battery: This is obviously very much prone to unstable behavior when running on low voltage, see also A fatal error occurred: Timed out waiting for packet content - problem after writing to SPIFFS memory of ESP32 · Issue #263 · espressif/esptool · GitHub. So, please watch and check the charging state of the battery before wondering about erratic behavior.

#6

Closing the loop

by citing from the article @clemens originally just shared with us (thanks again!),

Helmut gives very specific advice:

Bottom line