← All projects
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.

Difficulty
Beginner
Time
1 h
Category
Lighting

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

  1. Open install.wled.me in Chrome or Edge (Web Serial support required).
  2. Plug in the ESP32 via USB, click Install and pick the port.
  3. Wait about a minute. If the board won't connect, hold BOOT while flashing starts.

First-time setup

  1. Join the WLED-AP Wi-Fi network (password wled1234).
  2. A captive page opens (or go to http://4.3.2.1) → WiFi Settings → enter your home network.
  3. After reboot, find WLED in the app (auto-discovery) or via its IP in your router.
  4. 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.