WLED Controller Reboots When All LEDs Turn White: Shared Supply Brownout
- 2026-11-02 15:55
- /
- Arraystar LED
Your controller is not dying of old age. It is brownout-resetting because a 10 A spike when all pixels go white sags the rail below the 3.0 V the ESP32 needs to boot. I split the supply, add bulk capacitance, and the reboot loop stops.

The reboot everyone blames on the SD card
The symptom is specific: the strip looks fine at 30 percent brightness, but the moment a scene commands all pixels to pure white, the whole controller reboots, the lights drop to half, and ten seconds later they come back. WLED logs show a boot line right at the moment the white frame is rendered, and sometimes a brownout detector message. People flash a new firmware, swap the ESP32 board, and keep chasing software when the problem is on the power rail.
A 5 V, 60 LED per metre strip pulled to full white can draw 18 A per five metres. A 10 A supply feeding both the strip and the ESP32 on the same rail simply cannot deliver that current instantly. The voltage sags to 4.2 V, the ESP32 undervoltage detector trips, and the board restarts. The strip itself may never even see the fault because the controller died first.
Why the rail sags when you go to white
LEDs are not resistors. They draw current in short pulses, and a strip at full white on a switch-mode supply presents a near-instant step load. The supply itself has a response time of maybe 200 to 500 microseconds, and the wire from the supply to the strip has its own inductance. For that half millisecond, the only charge available is the bulk capacitor on the strip input. If that capacitor is small, or if the controller is tapping the rail upstream of it, the controller sees the sag first and resets.
Measure the rail at the ESP32 5 V pin during a white flash, not at the supply terminals.
| Rail voltage at controller | Behaviour | Cause |
|---|---|---|
| 4.8-5.2 V steady | No reboots | Healthy margin |
| Dips to 4.3-4.6 V on white | Occasional glitch | Undersized bulk cap |
| Dips below 3.7 V | ESP32 brownout reset | Shared supply, no isolation |
| Dips below 3.0 V | Controller will not boot at all | Supply too small for load |
The fix, in order of cheapest to best
What I add first
- Solder a 1000 microfarad, 10 V electrolytic across the strip input, as close to the first pixel as you can.
- Add a 470 microfarad cap directly across the 5 V pin and ground of the ESP32, with 0.1 microfarad ceramic in parallel.
- Lower the WLED output current in the LED settings by 10 to 20 percent until the spike no longer trips the detector.
- If the supply is shared, give the controller its own small 5 V, 2 A supply.
The decoupling cap on the ESP32 is the step people skip. The 1000 microfarad on the strip stores charge for the LED load, but it is on the other end of a 2 m wire with inductance. A 470 microfarad cap right next to the ESP32 holds the logic rail up for the few hundred microseconds the supply needs to catch up.

How big a supply do you actually need
Add up the worst-case current. A WS2812B pixel at full white draws about 60 mA. A 60 LED per metre strip is 3.6 A per metre at full white. Ten metres is 36 A. You size the supply for 80 percent of that number, so a 40 A supply, and you add 20 percent headroom for the controller and for future expansion. Running a 36 A load on a 40 A supply leaves almost no room for the inrush, which is why the sag still happens even with a correct-looking rating.
I size for 1.25 times the calculated peak. A 36 A run gets a 50 A supply, which costs more up front but removes the brownout completely. Cheap supplies also sag more under load than their nameplate suggests, so a quality 30 A unit often outperforms a no-name 40 A unit.

What to measure before you buy parts
Before you replace anything, put a multimeter across the ESP32 5 V pin and run a white effect. Watch the minimum reading during the spike. If it stays above 4.5 V, the supply is fine and the brownout is from a loose wire or a bad USB plug. If it dips to 4.0 to 4.4 V, add capacitance. If it dips below 3.7 V, the supply is undersized or the wire gauge is too small.

- Measure rail voltage at the controller, not at the supply terminals.
- Check the feed wire gauge: 18 AWG is the floor for runs over 3 m at 5 V.
- Add bulk capacitance first, before up-sizing the supply.
- Disable the WLED brownout detector only as a last resort; it exists to catch this exact fault.
Recommended Products
Frequently Asked Questions
Why does my WLED controller reboot only when all LEDs turn white?
Because going to full white is the highest-current state, often 60 mA per pixel. The inrush sags the shared 5 V rail below the ESP32 brownout threshold of about 3.0 V, and the board resets. It is a power problem, not a firmware bug. Add a 1000 microfarad cap at the strip input and a 470 microfarad cap at the ESP32.
What is an ESP32 brownout and how do I recognize it?
The ESP32 has an on-chip brownout detector that resets the chip when the 3.3 V supply drops below about 2.5 to 2.7 V. In the serial monitor you will see a brownout detector message or a boot line at the moment of the fault. In WLED, the lights drop out for a few seconds and come back. It always happens during a current spike, never at idle.
Should I give the controller its own power supply?
On any run over about 5 m or more than 150 pixels, yes. A small 5 V, 2 A supply for the ESP32 separates the logic rail from the LED current spikes. The grounds must still be tied together so the data signal has a reference, but the 5 V inputs are independent. This cures brownouts that extra capacitance cannot.
What size capacitor should I put at the strip input?
1000 microfarad, rated 10 V or higher, placed as close as possible to the first pixel power pad. A 5 V strip wants at least 1000 microfarad per 5 m of run. Add a 0.1 microfarad ceramic cap right next to the pixel for high-frequency noise. The electrolytic handles the bulk sag; the ceramic handles the fast edge.
Can I just disable the brownout detector in WLED?
You can, in the hardware settings, but I would not. The detector is the only thing telling you the rail is sagging. If you disable it, the ESP32 keeps running through undervoltage, the flash memory corrupts, and you get random lockups that are far harder to debug. Fix the rail instead.
Need help with your LED project?
Get factory-direct pricing, free samples and engineering support within 24 hours.
Email: info@arraystarled.com | Phone: +86-0755-2103-6746 | WhatsApp: 0086 1581 8514 077
Need to size your power supply? Use our LED Strip Power Calculator to find the right driver in seconds.








