ESP32 Brownout Reset Error
Troubleshoot and resolve issues when the ESP32 keeps restarting due to power instability, triggering the brownout detector.
Common Causes
- 🔌
Inadequate Power Supply
The ESP32 requires a stable 3.3V supply with sufficient current. Low-quality USB ports or weak regulators can cause instability.
- ⚡
Voltage Drops During High-Current Tasks
Activities like Wi-Fi transmission or GPIO use can cause sudden current spikes that lead to brownouts or resets.
- 🔌
Faulty or Power-Only USB Cable
Some USB cables only provide power or have poor conductivity, leading to unreliable voltage delivery.
- 🧰
Hardware or Soldering Defects
Faulty components, loose connections, or poor solder joints can disrupt power delivery and cause erratic behavior.
Symptoms
Brownout Reset with Serial Monitor Output
Appears as
rst:0xf (BROWNOUT_RST), boot:0x13 (DOWNLOAD(USB/UART0))
or a similar message in the serial monitor. This means the ESP32 detected an unsafe voltage dip — usually below 3.3V — and reset as a protective measure. It often happens during boot or Wi-Fi initialization and can be consistently reproduced under similar load conditions.
Reboots When Wi-Fi or Camera Is Activated
The ESP32 resets right after initializing Wi-Fi
WiFi.begin()
or camera
esp_camera_init()
functions. These components draw a sudden spike in current — up to 300–500mA — and if the power source can’t respond quickly enough, a brownout occurs. This is especially common on ESP32-CAM boards powered via USB.
Reliable on External Power, Unstable on USB
The board operates without issue when powered via VIN with a regulated power supply, but becomes unstable when powered through USB. This strongly indicates current limitations from the USB port or high resistance in the USB cable, which introduces small but critical voltage drops during high load.
Solutions
Use a High-Quality, Regulated Power Supply
Prefer a 5V regulated supply rated for at least 1A (even if your project usually draws less). Look for low ripple and fast response to load changes. Laptop USB ports often limit current dynamically, especially when running on battery. If you’re seeing brownouts, try a wall adapter or bench supply connected directly to the 5V or VIN pin.
Add a Bulk Capacitor Near the ESP32
Soldering a 470µF–1000µF low-ESR electrolytic capacitor between VCC and GND (as close to the ESP32 as possible) helps absorb short-term voltage dips. This is especially effective for ESP32-CAM or boards with on-board regulators that aren’t rated for fast current spikes. For best results, pair with a 0.1µF ceramic capacitor in parallel to handle high-frequency noise.
Power Peripherals Separately
Motors, servos, LED strips, and even I2C OLED displays can draw sharp bursts of current or create noise on shared power rails. Connect these devices to their own regulated power supply and use common GND with the ESP32. This helps isolate the ESP32 from peripheral-related power instability.
Improve Cable, Port, and Wiring Quality
Use a short, thick USB cable (e.g., 24 AWG for power lines) to minimize resistance. Avoid powering through long USB extensions or hubs unless they’re externally powered. On breadboards, minimize wire length and avoid sharing the ESP32’s power rail with noisy or high-current components. Breadboard contacts can also introduce resistance that causes localized voltage drop.
More Details
ESP32 Brownout Reset (rst:0xf
) #
If you're seeing this in your serial monitor:
rst:0xf (BROWNOUT_RST), boot:0x13 (DOWNLOAD(USB/UART0))
Brownout detector was triggered
…it means the ESP32 reset itself because the voltage dropped too low, even briefly.
This usually happens during startup, Wi-Fi init, or when peripherals like cameras begin drawing current.
Situations Where It Commonly Occurs #
Brownouts are rarely caused by faulty code or the board itself. They're almost always a power delivery issue.
Some common situations:
- The board resets right after
WiFi.begin()
- Code uploads fine, but it crashes before reaching
setup()
- It works on one USB port, but not another
- Flickering power LED under load
- ESP32-CAM fails at
esp_camera_init()
with no obvious error
Steps to Debug the Issue #
You can confirm the cause programmatically:
#include "esp_system.h"
void setup() {
Serial.begin(115200);
delay(1000); // let Serial stabilize
Serial.println(esp_reset_reason()); // Returns ESP_RST_BROWNOUT if that was the cause
}
If you're running into this, here's what actually helps:
1. Power it better
A laptop USB port might only deliver 100–300mA before current limiting kicks in. The ESP32 can spike to 400–500mA during Wi-Fi startup. Try:
- A wall-powered USB adapter
- A powered USB hub
- Supplying 5V directly to the VIN pin from a regulated source
2. Change your cable
Low-quality USB cables often have high resistance. They can technically “work,” but still cause just enough voltage drop to trigger a brownout. If you're not sure, try a short, thick cable — ideally one that charges other high-draw devices.
3. Add a capacitor
A bulk capacitor near the ESP32 can absorb transient drops:
+---------+
| ESP32 |
| |--- GND -------+
| | |
| |--- 3.3V ------+----||---- GND
470–1000µF electrolytic
This is especially useful on ESP32-CAM boards or projects using Wi-Fi and sensors together.
4. Reduce startup current
Disable Wi-Fi and Bluetooth if you're not using them:
WiFi.mode(WIFI_OFF);
btStop();
If your project doesn't need full CPU speed:
setCpuFrequencyMhz(80);
If it's idle for a while:
esp_sleep_enable_timer_wakeup(10 * 1000000); // 10 seconds
esp_deep_sleep_start();
Conclusion #
One last note: if swapping the board “fixes it,” that doesn’t mean the original board was bad. It might just have a regulator with less margin. If you're powering multiple peripherals, consider isolating them from the ESP32’s supply.
Brownouts aren't mysterious — they're just a signal that your setup isn't supplying clean enough power, fast enough, when it's needed most.

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.