Back to Troubleshooting

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.

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.

No registration required. Start solving issues right away!