ESP32 Power Drop Under Load
Fix brownouts and instability caused by power-hungry peripherals. Learn how inrush currents and shared supply paths can affect ESP32 reliability, and follow proven steps to isolate power, buffer voltage drops, and stabilize your setup.
Common Causes
- โก
Sudden Load Spikes from Peripherals
Motors, relays, or sensors with inrush currents can cause momentary voltage drops that the ESP32 interprets as brownouts.
- ๐
Shared Supply Without Sufficient Buffering
Powering peripherals and the ESP32 from the same source without capacitive buffering can result in unstable voltage during load transitions.
- ๐
Undersized or Inadequate Power Source
USB ports, small regulators, or low-capacity batteries may not sustain the combined load of ESP32 and attached peripherals.
Symptoms
ESP32 Resets When Device Draws Power
The ESP32 reboots or enters a boot loop when peripherals activate, often with a
rst:0xf (BROWNOUT_RST)
message. See ESP32 Brownout Reset.
Intermittent Crashes During Peripheral Activity
Sketch runs normally until a specific event like sensor polling, motor spin-up, or relay switching, which causes a crash or freeze.
Flickering LEDs or Serial Glitches
Visible flicker in LEDs or corrupted serial output during load events suggests voltage instability.
Solutions
Power Peripherals Separately from ESP32
Use a dedicated supply for high-draw components. Only connect grounds between systems to ensure stability.
Add Capacitors Near Load and ESP32
Use 100โ470ยตF capacitors across 3.3V/5V and GND near both the ESP32 and the high-load peripheral to buffer sudden drops.
Upgrade to a Higher-Capacity Regulated Supply
Use a power supply capable of handling peak combined current draw with fast response to transients - ideally 1A or more for most setups.
Use Flyback Diodes for Inductive Loads
Protect against voltage spikes from relays or motors by adding diodes.
More Details
ESP32 Power Drop Under Load #
If your ESP32 resets or becomes unstable when motors, sensors, or relays activate - you're likely experiencing a power drop under load. These issues are often caused by shared power paths without adequate buffering, or by high inrush currents from peripherals.
Even brief voltage dips can cause the ESP32 to trigger a brownout reset
rst:0xf (BROWNOUT_RST)
especially during Wi-Fi activity or when using power-hungry components.
Typical Scenarios #
- Board resets as soon as a relay switches or a motor starts
- Sketch runs until peripherals activate, then freezes or reboots
- Serial output shows brownout errors or stops abruptly
- LEDs flicker, especially during peripheral operation
- Setup works fine when peripherals are disconnected
Why It Happens #
โก Inrush or Load Spikes #
Devices like motors and relays can demand large current instantly, dropping voltage temporarily even if your supply is rated for the load.
๐ No Buffering Between Loads #
If all components are powered from a single line with no bulk capacitors or voltage isolation, any load fluctuation can affect the ESP32โs stability.
๐ Weak Power Source #
USB ports, small battery packs, and even some wall adapters may not react fast enough to sudden current demands, causing voltage dips.
How to Fix It #
โ
1. Isolate Peripherals from ESP32 Power Supply
Use a separate power source for motors, servos, or other high-load devices. Connect only the grounds between the ESP32 and the peripheral system:
[Motor Power] ---> Motor
|
GND
|
+---> ESP32 GND (only)
โ 2. Add Capacitive Buffering Near ESP32 and Peripherals
Install capacitors to smooth power:
Near ESP32:
470โ1000ยตF electrolytic capacitor across 3.3V/5V and GND
Near peripherals:
100โ470ยตF capacitor across power and GND near motor, sensor, or relay
These capacitors absorb inrush and help maintain voltage during transients.
โ
3. Use a Stronger Regulated Power Source
Switch to a bench supply or wall adapter rated for 1A or more with low ripple and fast transient response. USB alone may not be enough.
โ
4. Add Diodes for Inductive Loads
If you're switching motors or relays, add a flyback diode (e.g., 1N4007) across the coil terminals:
[Relay Coil]
+----->|----+
| |
GND VCC
This protects against voltage spikes caused by inductive collapse.
Code-Level Tip #
Add brownout detection debugging:
#include "esp_system.h"
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println(esp_reset_reason());
}
This will output
ESP_RST_BROWNOUT
if a brownout caused the last reset.
Summary #
Power drops under load are one of the most overlooked but critical causes of ESP32 instability. Power your peripherals separately, add capacitors, and protect inductive loads. A stable voltage path ensures the ESP32 runs reliably, even when the rest of your system is active.

Quick Navigation
Additional Resources
Still Stuck with an ESP32 Issue? Let's solve it together.
Our interactive troubleshooting wizard will guide you through common ESP32 problems and their solutions, step by step.