Lighting
Beginner
WLED: A Smart RGB Strip with 100+ Effects and Zero Code
Flash the ready-made WLED firmware from your browser, wire up a WS2812B strip and control it from your phone, Home Assistant or by voice.
Why WLED
WLED is one of the most popular open-source firmwares for the ESP32/ESP8266. It turns the board into a full-featured addressable LED controller:
- 100+ effects and 70+ palettes, segments, presets and playlists;
- iOS/Android app plus a web UI;
- Home Assistant, Alexa, MQTT and E1.31/DDP integration (for music and PC sync);
- over-the-air (OTA) updates.
No programming required — you only need to get the hardware right.
Parts
- ESP32 DevKit
- WS2812B addressable strip (5 V), e.g. 60 LED/m
- 5 V power supply — see the sizing below
- 330 Ω resistor in the data line
- 1000 µF / 10 V capacitor across the strip power
- Recommended: 74AHCT125 level shifter (3.3 V → 5 V) for a solid signal
Power sizing
Each WS2812B draws up to ~60 mA at full white.
| LEDs | Max current | Suggested PSU |
|---|---|---|
| 30 | 1.8 A | 5 V 3 A |
| 60 | 3.6 A | 5 V 5 A |
| 150 | 9 A | 5 V 10 A + power injection at both ends |
WLED has a current limiter (LED Preferences → Maximum Current). Enter what your PSU can really deliver and the firmware will dim automatically.
Wiring
PSU 5V ──┬───────────────► strip +5V
├──[1000 µF]──┐
└─► ESP32 VIN │
PSU GND ──┴─────────────┴─► strip GND ─► ESP32 GND
ESP32 GPIO16 ──[330 Ω]──► strip DIN
- Ground must be shared between PSU, strip and ESP32 — otherwise you'll get flicker and garbage colours.
- Don't power the strip from the board's USB — the ESP32 regulator can't handle it.
Flash from the browser
- Open install.wled.me in Chrome or Edge (Web Serial support required).
- Plug in the ESP32 via USB, click Install and pick the port.
- Wait about a minute. If the board won't connect, hold
BOOTwhile flashing starts.
First-time setup
- Join the WLED-AP Wi-Fi network (password
wled1234). - A captive page opens (or go to
http://4.3.2.1) → WiFi Settings → enter your home network. - After reboot, find WLED in the app (auto-discovery) or via its IP in your router.
- Config → LED Preferences:
- LED type: WS281x;
- Length: number of LEDs;
- GPIO: the pin wired to DIN (16 in our diagram);
- Maximum Current: e.g. 4500 mA for a 5 A PSU.
Handy features
- Segments: split one strip into zones with different effects.
- Presets + schedules: "sunrise" at 7:00, night light at 23:00.
- Home Assistant discovers WLED automatically via the WLED integration.
- Sound reactive: add an INMP441 I²S microphone and use a WLED build with audio support.
Troubleshooting
- First LEDs show random colours — add the 330 Ω resistor and a level shifter, shorten the data wire.
- Colours turn yellow toward the end of a long strip — voltage drop; inject power at the far end.