WL

WLED

Firmware for controlling addressable LED strips

Home Automation ★ 18.7k stars Easy setup MIT

WLED is a fast and feature-rich firmware for controlling addressable LED strips with ESP8266 and ESP32 boards. It offers a web interface, effects, and integrations with home automation platforms.

Key features

  • Addressable LED control
  • Dozens of effects
  • Web and mobile interface
  • Home automation integrations

Pros & cons

Strengths

  • Easy to flash and use
  • Vibrant effects

Trade-offs

  • LED strips only
  • Needs ESP hardware

WLED replaces

Last reviewed Aug 26, 2026 · 831 words

A $5 ESP32 board, a 5 m WS2812B strip and 15 minutes of browser time gets you a wall of addressable light that Home Assistant discovers on its own and that responds instantly on the LAN. That is WLED: firmware for ESP8266 and ESP32 boards that runs a web UI, over 100 effects, segments, presets, and an HTTP and JSON API, with no cloud anywhere in the path. It only does LED strips, which is the point, and the hard parts are electrical rather than software.

Flash from the browser, skip the toolchain

Open install.wled.ge in Chrome or Edge, plug the board in over USB, pick your chip, and the page flashes the current release over Web Serial. About a minute later the board broadcasts an access point named WLED-AP (password wled1234); join it, open 4.3.2.1, enter your Wi-Fi details, and from then on it lives at whatever address your router hands it, with the web UI on port 80. That UI is the whole product: pick a colour, an effect, a palette, set the brightness, save it as a preset. If your first board is an ESP8266, budget for an ESP32 next time: it drives more LEDs without stutter and new features land there first.

The wiring is where beginners actually fail

WLED is easy. Powering 300 LEDs is not. A WS2812B pixel draws up to about 60 mA at full white, so a 5 m, 300-LED strip can pull 18 A at 5 V, which no USB port or on-board regulator will supply. Inject power directly into the strip from a proper 5 V supply (at both ends for anything over roughly 150 LEDs), share ground with the board, and size the wire for the current. Two more details that save a forum post: ESP data pins are 3.3 V and long strips want 5 V logic, so put a level shifter (a 74AHCT125 is the standard part) on the data line; and leave WLED's brightness limiter enabled in the LED settings, set to what your supply can actually deliver, because the default 850 mA cap is there to protect a USB-powered dev board, not a 10 A build. If you would rather not solder, controllers from QuinLED, Athom and Gledopto ship with WLED installed and the power handling done.

Home Assistant sees it within a minute

Home Assistant has a native WLED integration: the device appears under discovered integrations via mDNS, and you get a light entity with effect and palette selectors, segments as separate lights, and sensors for estimated LED current and Wi-Fi signal. No MQTT required, though WLED speaks MQTT too if your house is built around a broker. Sync between several WLED devices uses its own UDP protocol, so a strip in each room can follow one master without a hub, and the same board accepts E1.31, Art-Net and DDP for anyone driving it from lighting software or an ambilight setup. For anything beyond on, off and effect, the JSON API takes 5 minutes to learn:

curl -X POST http://192.168.1.60/json/state \
  -H 'Content-Type: application/json' \
  -d '{"on":true,"bri":128,"seg":[{"fx":9,"pal":3}]}'

That one endpoint drives presets, playlists, segments and the nightlight timer, and it is what the mobile app and the Home Assistant integration talk to. If your first weeks with Home Assistant are still ahead, the first-month guide covers where a device like this slots in.

What it is not, and when ESPHome is the better firmware

WLED does one thing. It will not read a temperature sensor, switch a relay or drive a display. If the same board needs to do those things too, or you want a device defined in YAML and managed from inside Home Assistant, ESPHome is the right firmware; it has its own addressable-light component and can even accept WLED's UDP realtime protocol as an effect. The usual split in a house is WLED on anything that is purely lights and ESPHome on everything else, both reporting to the same Home Assistant. The wider home automation category has the hubs and bridges if you are still choosing the centre of the system.

What I'd do

Buy an ESP32 dev board, a 5 V strip at 60 LEDs per metre, a 5 V 10 A supply and a level shifter; flash from the browser; set the current limit before the first full-white test; then let Home Assistant discover it. Put the board on your IoT VLAN like any other device that speaks HTTP without authentication, because WLED's web UI has none by default (a settings PIN exists, but treat the thing as LAN-only). Once one strip works the second takes 10 minutes, and that is the moment you start looking at the walls differently.

Similar home automation apps