RisalDash RisalDash

Guide · Power · Troubleshooting

ESP32 keeps resetting? It’s the power, not your code

Random reboots. The board freezes the moment Wi-Fi connects. The serial monitor prints Brownout detector was triggered. Almost every beginner hits this — and it’s almost never a code bug. It’s the power supply sagging under load. Here’s why, and how to fix it for good.

PowerBrownoutESP32AMS1117Wi-FiHardware
Supply voltage plot: a WiFi TX burst dips below the 2.8 V brownout threshold and resets the board
The classic: a WiFi burst sags VDD under 2.8 V — and the board resets.

What “brownout” actually means

The ESP32 has a built-in brownout detector: if the 3.3 V rail dips below a threshold (~2.4–2.8 V), it resets the chip to avoid running on bad voltage. So the message isn’t the disease — it’s the symptom telling you the rail collapsed.

The trigger is almost always the Wi-Fi radio. Transmitting pulls sudden current spikes of 300–500 mA. If your supply, cable or the onboard regulator can’t deliver that instantly, the voltage drops, the detector fires, and the board reboots — which is why it dies exactly when Wi-Fi kicks in.

The usual causes

The fixes (in order)

Powering peripherals without brownouts

A WS2812 strip, a servo or a motor can each pull more than the whole ESP32. Drawing that through the board’s little regulator guarantees resets. Rule: compute and radio on one supply, muscle on another, grounds tied together. A 5 V module or LED needs a 3.3 V ↔ 5 V level check too if it talks logic back to the ESP32.

On battery

Batteries add their own trap: the AMS1117 wastes current just sitting idle (poor quiescent draw) and needs headroom above 3.3 V to regulate. For battery projects, use an efficient buck/boost — or feed a LiFePO4 cell (3.2 V) almost straight into the 3.3 V rail. Then chase every microamp with deep sleep.

Nine times out of ten the cure is a better cable plus a fat capacitor. Fix the rail and the mysterious crashes, Wi-Fi drops and “random” reboots simply stop.

Wiring 5 V parts to a 3.3 V ESP32? Don’t fry a pin while you’re at it.