ESP32 Brownout Detector Errors and Random Resets

ESP32 boards are powerful, inexpensive and extremely useful for WiFi, Bluetooth, IoT, sensor and display projects. But they are also more demanding than simple 8-bit Arduino boards when it comes to power supply quality.

One of the most common ESP32 problems is a random reset, often with a message such as “Brownout detector was triggered” in the serial monitor. The board may restart when WiFi turns on, when a relay switches, when a display starts, or when the project is powered from a weak USB cable.

This is usually not a software problem. A brownout means the ESP32 supply voltage dropped too low for reliable operation.

Typical Symptoms

  • The ESP32 resets randomly.
  • The serial monitor shows Brownout detector was triggered.
  • The board resets when WiFi connects.
  • The board resets when Bluetooth starts.
  • The board resets when a relay, motor, servo or LED strip turns on.
  • The project works from one USB port but not another.
  • The project works with a short USB cable but not with a long one.
  • The ESP32 works alone but fails when sensors or displays are added.

What Brownout Means

A brownout happens when the supply voltage drops below the safe operating level of the chip. The ESP32 detects this and resets itself instead of continuing to run unpredictably.

This is a protection feature. It does not mean the ESP32 is broken. It means the power supply, wiring, regulator or connected load cannot keep the voltage stable enough.

The voltage dip may be very short. A regular multimeter may not show it clearly, but the ESP32 can still detect it.

Why ESP32 Boards Are Sensitive to Power Problems

Compared with a simple Arduino Uno running a basic sketch, an ESP32 can have sudden current peaks. WiFi transmission, Bluetooth activity, flash access, startup and connected peripherals can all increase current demand quickly.

The average current may look reasonable, but short peaks are what cause many brownout problems.

Common situations that increase current demand:

  • WiFi scanning or connecting.
  • WiFi transmitting data.
  • Bluetooth activity.
  • OLED, TFT or LCD backlight turning on.
  • Relay modules switching.
  • Servos or motors starting.
  • LED strips increasing brightness.
  • External sensors powered from the ESP32 board.

Common Cause: Weak USB Cable

A bad USB cable is one of the most common ESP32 power problems. The board may power on, upload sketches and blink LEDs, but still fail when WiFi starts.

Thin, long or low-quality USB cables have resistance. When the ESP32 current rises, the voltage at the board drops.

Try this first:

  • Use a short USB cable.
  • Use a known-good data cable.
  • Avoid very thin charging cables.
  • Plug directly into the computer instead of a weak hub.
  • Try a powered USB hub or good USB power supply.

If changing the USB cable fixes the problem, the code was never the issue.

Common Cause: Weak 3.3V Regulator

The ESP32 chip itself runs at 3.3V. Development boards usually include a small 3.3V regulator. The quality and current capability of this regulator varies between boards.

Some ESP32 boards have good regulators. Others use very small regulators that are barely enough for the ESP32 and a few small sensors.

If additional modules are powered from the ESP32 3.3V pin, the regulator may become overloaded.

Common warning signs:

  • The regulator gets hot.
  • The board resets when external modules are connected.
  • The board works from USB but not from VIN.
  • The board works without WiFi but resets when WiFi starts.

Common Cause: Powering Too Much from the ESP32 3.3V Pin

The 3.3V pin on an ESP32 development board is not a large power supply. It is usually intended for small sensors and low-current modules.

Do not power high-current devices from the ESP32 3.3V pin, such as:

  • Relays.
  • Servos.
  • Motors.
  • LED strips.
  • Large displays with backlights.
  • Radio modules with high transmit current.

Even if the project appears to work at first, it may reset when the load changes state.

Common Cause: WiFi Current Peaks

Many ESP32 brownout problems appear exactly when WiFi is enabled. This can make the problem look like a WiFi library bug, but the real issue is often power.

WiFi current is not constant. The ESP32 may draw more current during scanning, connecting and transmitting. If the regulator, USB cable or power supply is weak, the voltage can dip just when WiFi starts working.

A common troubleshooting test is simple:

  • Upload a sketch without WiFi.
  • Confirm the board runs reliably.
  • Upload a WiFi scan or WiFi connect sketch.
  • If resets begin only with WiFi, suspect power first.

Common Cause: External Loads on the Same Supply

Relays, motors, servos and LED strips can pull down the supply when they turn on. If the ESP32 shares the same weak supply or ground path, it may reset.

This is especially common when:

  • A relay module is powered from the ESP32 board.
  • A servo is powered from the ESP32 5V or 3.3V pin.
  • An LED strip is powered through the breadboard.
  • A motor driver shares thin jumper wires with the ESP32 power input.
  • The load current flows through the same ground path as the ESP32.

Use a separate supply for high-current loads and connect grounds properly when a control signal is shared.

Common Cause: Breadboard Power Rails

Breadboards are convenient, but they are not great power distribution systems. Loose contacts, split rails and thin jumper wires can create voltage drops.

ESP32 boards often sit across a breadboard, with power routed through long rails and jumper wires. This may work for small experiments but fail when WiFi or external modules increase current demand.

Check for:

  • Split power rails that are not connected across the whole board.
  • Loose jumper wires.
  • Power entering at one end while the ESP32 is powered from the other end.
  • High-current loads sharing breadboard rails.
  • Poor contact between the ESP32 header pins and breadboard sockets.

Common Cause: VIN Voltage Too Low or Too High

Many ESP32 development boards have a VIN or 5V pin. The exact function depends on the board design.

If VIN feeds a regulator, the regulator needs enough input voltage to produce stable 3.3V. If the input voltage is too low, the 3.3V output may sag. If the input voltage is too high, the regulator may overheat.

Common mistakes:

  • Feeding VIN with a voltage too low for the onboard regulator.
  • Feeding VIN with 12V on a board with a tiny linear regulator.
  • Assuming every ESP32 board has the same power input design.
  • Backfeeding power through USB and VIN at the same time without understanding the board circuit.

Always check the documentation for the exact ESP32 board.

Common Cause: Missing Decoupling Capacitors

Development boards usually include some decoupling capacitors, but external wiring and modules may still need additional capacitance.

Useful capacitor placement:

  • Near the ESP32 3.3V supply if building a custom board.
  • Near external modules that draw pulsed current.
  • Across the input of LED strips.
  • Near relay or motor driver supply inputs.

For an ESP32 development board on a breadboard, adding a capacitor between 3.3V and GND or 5V and GND may help with short dips, but it cannot fix an undersized supply.

Common Cause: Bad Ground Layout

A brownout is not always caused by the positive supply line. Ground wiring can also create problems.

If high current flows through the same ground wire used by the ESP32, the ESP32 ground reference can shift. This can cause resets, unstable sensor readings or communication failures.

Better wiring:

  • Connect high-current loads directly to their power supply.
  • Connect ESP32 ground to the supply ground with its own path.
  • Keep motor and LED current out of the ESP32 board.
  • Use thicker wires for high-current ground paths.
  • Keep sensor and I2C wiring away from motor and relay wiring.

Quick Test: Run the ESP32 Alone

Disconnect everything except USB and run a simple sketch.

void setup() {
  Serial.begin(115200);
  Serial.println("ESP32 started");
}

void loop() {
  delay(1000);
  Serial.println("Still running");
}

If the board runs reliably alone, the ESP32 itself is probably fine. The problem is likely one of the connected modules, the power wiring or the external load.

Quick Test: Add WiFi Only

Next, test WiFi without any external modules. If the board resets only when WiFi starts, the power supply is still suspicious.

This helps separate a general board problem from a load-related problem.

Quick Test: Measure Voltage at the ESP32

Measure the 3.3V pin relative to GND while the project is running. Also measure the 5V or VIN input if used.

A multimeter may not show very short dips, but it can still reveal obvious problems:

  • 3.3V is already low before WiFi starts.
  • Voltage drops when a relay switches.
  • Voltage drops when LEDs get brighter.
  • Regulator output changes when external modules are connected.

If possible, an oscilloscope gives a much better picture of fast voltage dips.

Quick Test: Lower the Load

If the ESP32 resets when external loads operate, temporarily reduce or remove the load.

  • Disconnect relay coils.
  • Disconnect motors.
  • Set LED brightness very low.
  • Power only one module at a time.
  • Disable display backlight if possible.

If the resets stop, the project has a power distribution problem.

Recommended Power Setup

Project Type Better Power Approach Reason
ESP32 with small I2C sensors USB or stable 5V input may be enough Low external current
ESP32 with WiFi and display Good USB supply or strong 5V regulator WiFi peaks plus display current
ESP32 with relays Separate relay supply if needed, common ground for control Relay coils can disturb controller supply
ESP32 with servos or motors Separate motor/servo supply and driver High startup and stall current
ESP32 with LED strips Separate 5V LED supply, power injection, common ground LED current can be much higher than controller current
Custom ESP32 PCB Proper 3.3V regulator with peak-current margin and good decoupling ESP32 stability depends heavily on supply quality

Recommended Troubleshooting Steps

  1. Open the serial monitor at 115200 baud and look for brownout messages.
  2. Disconnect all external modules and loads.
  3. Run a simple serial test sketch.
  4. Try a short, known-good USB cable.
  5. Try a different USB port or powered USB hub.
  6. Test WiFi with no external modules connected.
  7. Measure 3.3V at the ESP32 board while running.
  8. Add external modules one at a time.
  9. Power relays, motors, servos and LED strips from separate supplies.
  10. Improve ground wiring and add capacitors where appropriate.

Quick Diagnostic Table

Symptom Likely Cause First Thing to Try
Brownout when WiFi starts Weak USB cable, regulator or 3.3V supply Use better USB cable/power supply and test board alone
Reset when relay clicks Relay coil or switched load disturbs supply Use separate relay/load supply and proper suppression
Reset when LED strip gets bright LED current pulls voltage down Use separate LED supply and lower brightness
Works alone, fails with display Display/backlight current or wiring issue Measure voltage and power display separately if needed
Works on one USB cable only Cable voltage drop Use short, thicker, known-good cable
Regulator gets hot Too much current or too much voltage drop across regulator Reduce load or use a better external regulator

Should You Disable the Brownout Detector?

Some online examples show how to disable the ESP32 brownout detector. This is usually the wrong fix.

The brownout detector is warning you that the chip supply voltage is dropping too low. Disabling the warning does not improve the power supply. It only hides the symptom.

If the ESP32 continues running at too low a voltage, it may behave unpredictably, corrupt data, lose WiFi connection or crash in less obvious ways.

For normal projects, fix the power problem instead of disabling the detector.

What Not to Do

  • Do not assume random resets are always software bugs.
  • Do not power relays, motors, servos or LED strips from the ESP32 3.3V pin.
  • Do not ignore USB cable quality.
  • Do not use a breadboard as a high-current power distribution system.
  • Do not disable the brownout detector as a first solution.
  • Do not assume all ESP32 development boards have equally strong regulators.

CANABLOX Practical Note

CANABLOX helps keep the logic side of a project organized and easier to troubleshoot. Controller modules, I2C modules, displays and sensors can be tested step by step instead of being buried in a messy breadboard layout.

However, ESP32 power requirements still matter. When using ESP32, ESP32-C3, ESP32-C6, ESP32-S3 or other XIAO-style controllers in a CANABLOX system, keep high-current loads outside the logic power path. Use proper external supplies for relays, motors, servos and LED strips, and connect grounds correctly when control signals require a shared reference.

Conclusion

ESP32 brownout errors and random resets are usually power problems, not mysterious software failures.

Start with the basics: a short good USB cable, stable 5V input, strong 3.3V regulation, no high-current loads on the ESP32 board, clean ground wiring and proper external power for relays, motors, servos and LEDs.

Once the power supply is stable, many “random” ESP32 problems disappear immediately.

Shopping Cart
Scroll to Top