KACHANG·SIA
SYSTEM OK
Home  /  Blog  /  WLED on ESP8266 — Setup Guide

WLED on ESP8266 — Full Setup Guide for LED Strips

You want WLED on an ESP8266. The good news: the whole install takes under 10 minutes in a browser tab, no Arduino IDE needed. This page walks through the web flasher, first boot, WiFi setup, wiring for both 12V and addressable strips, event presets, and the honest limits of running WLED on an ESP8266 versus an ESP32.

// WHAT IS WLED

What WLED is (and when to use it).

WLED is a free, open-source firmware for ESP8266 and ESP32 that turns addressable LED strips (WS2812B, WS2811, SK6812, APA102, and others) into a controllable lighting system you can drive from a phone, browser, Home Assistant, or DMX console. It ships with hundreds of effects — rainbow, fire, palette cycles, audio reactive — plus a clean web UI for saving and recalling presets.

It's not the right tool for everything. If you're switching four 12V uplighters on and off for a wedding, WLED is overkill — a $1 relay module and a small sketch is more predictable and easier to debug. If you're running 2 m of WS2812B along a backdrop and want phone-controlled rainbow, WLED is exactly what you want.

The ESP8266 port of WLED is mature and works well up to a few hundred LEDs. ESP32 is the better pick for very large installs, high LED counts, or any audio-reactive effect you want to run smoothly — its extra RAM and dual cores handle the audio FFT without dropping frames.

// WHAT YOU NEED

Parts for any WLED-on-ESP8266 build.

Most of these are reusable across projects. The only thing you'll change per build is the strip type and the power supply.

PartCostWhat to look for
ESP8266 board (NodeMCU v2/v3 or Wemos D1 mini)$4–6Either works. Wemos D1 mini is smaller and tidier for permanent installs.
Addressable LED strip — WS2812B (5V) is the most common$8–3060 LED/m for a smooth look · 30 LED/m for tighter budgets · WS2812B ECO if you want lower power draw
5V power supply (sized to the strip)$8–205V 5A for short runs · 5V 10A+ for 5 m of 60-LED/m at full white. Meanwell and similar are reliable.
USB cable (data-capable, not charge-only)$1–3Used once, for flashing WLED. A cheap data cable is fine.
Level shifter (only for long WS2812B runs)$174HCT245 — needed past ~2 m of strip or whenever colours glitch.
Wire for power injection$2–416–18 AWG silicone wire is the hobbyist favourite. Inject every ~5 m on long runs.
// INSTALL WLED

Flash WLED in under 10 minutes.

You don't need the Arduino IDE, no toolchain, no driver hunting. WLED has a browser-based installer that does everything from a Chrome tab.

Flashing with the web installer

  1. Open wled-install.github.io in Chrome (or Edge). Chrome's WebSerial support is what makes this work — Firefox won't.
  2. Click Install WLED. The page will download the latest WLED_0.x.x_ESP8266.bin build.
  3. Plug your ESP8266 into a USB port on the computer.
  4. Click Connect, pick your board's serial port (usually USB Serial or CH340), and click Install.
  5. Wait ~30 seconds. The installer will say "Done" and reboot the ESP8266.

That's it — no manual driver install, no compile step, no esptool.py command line. If the serial port doesn't show up, swap USB cables (charge-only cables are the #1 cause of "nothing happens"); otherwise install the CH340 driver.

First boot and connecting to WiFi

After the reboot, the ESP8266 broadcasts its own WiFi network. On your phone or laptop, look for:

  • SSID: WLED-AP
  • Password: wled1234

Connect to that network, then open 4.3.2.1 in a browser. You'll land on the WLED UI. From there, go to Config → WiFi and join your normal home/venue network. The ESP8266 will reboot and come back on your network — at which point you can disconnect from WLED-AP and use it like any other device on WiFi.

For events where there's no router at all (common in tents and outdoor venues), just stay on WLED-AP. It works standalone — phone controls the strip directly through the ESP8266, no internet needed.

// WIRING

Wire it for event lighting.

WLED shines on addressable strips, but you can mix in 12V relay control too — same firmware, different wiring. Here's how I typically wire both.

DIAGRAM 1

Addressable WS2812B (the WLED default)

   ESP8266 (Wemos D1 mini)              5V power supply
   ┌──────────────┐                     ┌──────────────┐
   │              │                     │              │
   │ 5V/VIN ──────┼─────┐            ┌──┤ 5V +     +5V ├──► strip 5V
   │              │     │            │  │              │
   │ D2/GPIO4 ────┼─────┼──► strip DIN  │              │
   │              │     │            │  │              │
   │ GND ─────────┼─────┴────────────┴──┤ GND     GND ├──► strip GND
   └──────────────┘                     └──────────────┘

   Add a 470Ω resistor in series with the data line,
   and a level shifter (74HCT245) past ~2m of strip.

The ESP8266 can power very short strips from its 5V/VIN pin (≤30 LEDs, low brightness). Anything bigger draws too much current for the on-board regulator — use a separate 5V supply sized to the strip.

DIAGRAM 2

12V on/off zones (relay + WLED Usermod)

             ┌──────────────┐
   12V + ───┤  LED fixture  │
             │   (12V DC)   │
   12V − ───┤              │
             └──┬───────────┘
                │
         ┌──────┴──────┐
         │   Relay     │   ← switch side
         │   COM ──────┼──── 12V +
         │   NO  ──────┼──── to fixture +
         │   NC         │   (leave NC unconnected)
         └──┬───────────┘
            │
            GND ←───────────── supply GND ─── ESP8266 GND
                ┌──────────────┐
   ESP  5V ─────┤  Relay coil  │
                │   VCC        │
   GPIO D1 ─────┤   IN         │   ← active-low on most modules
                │   GND ───────┼─── ESP8266 GND
                └──────────────┘

For 12V zones via WLED you need the Relay Usermod (a community add-on for WLED that exposes a relay as a "switch" in the UI). It's great for events that mix effects and on/off zones — but the custom Kachang Sia firmware is simpler if relays are all you need.

// PRESETS FOR EVENTS

Save the looks before the event.

The whole point of using WLED for events is that you don't fiddle with the UI on the day — you build and save presets during prep, then recall them with one tap when the band kicks in.

Build three to four presets per event. For a wedding, my typical set is:

  • Ceremony — single warm-white colour, brightness ~30%, no animations. Quiet look.
  • Dinner — soft amber or cool white, brightness ~40%. Conversational vibe.
  • Dance floor — full rainbow or palette cycle at brightness ~80%. Energy for the music.
  • Exit / send-off — slow colour chase or fade-to-warm. Clean ending.

To save a preset: set the colours/effect/brightness in the WLED UI, then go to the Presets tab and click Save current state as preset #N. Recall them with one tap, with the API, with a physical button, or with Home Assistant.

For events that need to be bulletproof, set up a fallback to AP mode: if the venue WiFi drops, WLED will fall back to broadcasting its own network so the show keeps running from any phone that's still connected.

// HONEST LIMITS

Where WLED on ESP8266 stops being the right tool.

WLED on ESP8266 is great — but it's not magic. Here are the limits you'll hit, in the order you'll hit them.

RAM and LED count

ESP8266 has ~50 KB usable RAM after WiFi. WLED uses ~3 KB per LED for buffering. Past ~500 LEDs at full brightness you'll see judder and frame drops. For 500–2000 LEDs, move to ESP32.

No audio-reactive on long strips

The sound-reactive fork of WLED (SR-WLED) does run on ESP8266, but the FFT processing plus the LED buffer exhausts RAM fast. ESP32 + INMP441 mic is the smooth path for sound-reactive — see the music-reactive guide.

12V zones need a usermod

WLED's stock firmware is built for addressable pixels. Driving 12V relay zones needs the Relay Usermod, which is community-maintained and changes faster than the core firmware. If you only need on/off zones, simpler firmware is more reliable.

Power budget hides until full white

60 LEDs/m × 5 m × 60 mA = 18 A at full white. Most people size their supply for the typical use case and get surprised when an effect goes full white and the strip browns out. Always size the supply for the worst case and add 20%.

// WLED vs CUSTOM

If WLED feels like overkill for what you need.

If WLED feels like overkill for on/off event zone control, the Kachang Sia pack offers pre-built firmware with AP, WiFi, and DMX modes — no effects, just reliability. See the ESP8266 Event Lighting Pack for $19.

👉 See the ESP8266 Event Lighting Pack ($19)
// FAQ

Quick answers before you flash.

Can WLED run on an ESP8266?

Yes. WLED has a dedicated ESP8266 build (look for WLED_0.x.x_ESP8266.bin in the installer). It works smoothly up to a few hundred LEDs. ESP32 is the better pick for 500+ LEDs or audio-reactive effects.

How many LEDs can an ESP8266 drive with WLED?

In my experience, ESP8266 stays smooth with WLED up to about 500 LEDs at modest brightness. Past that the RAM starts to drop frames and effects judder. For 500–1000+ LEDs, move to ESP32 — its 320 KB of RAM lets WLED run 2–3× more pixels at the same refresh rate.

Do I need WLED for 12V on/off zones?

No. WLED is built for addressable 5V strips and per-pixel effects. For simple on/off zones of 12V fixtures, a $1 relay module plus a minimal sketch (or the Kachang Sia pack's firmware) is more predictable than WLED — fewer moving parts, easier to debug if something fails mid-event.

Which GPIO pin should I use for the LED data line in WLED?

GPIO2 (D4 on a NodeMCU, D2 on a Wemos D1 mini) is the default WLED data pin and works fine. For long runs or noisy power, add a 74HCT245 level shifter or at minimum a 470Ω resistor in series with the data line to suppress ringing.

// ABOUT THE AUTHOR

Who wrote this guide.

👷

About the author: Jack Loh is an electronics & coding builder based in Singapore. He builds ESP8266 controllers for real event jobs — weddings, parties, exhibitions — and sells the firmware and wiring guides from his own builds.

This page is written from the same builds. The WLED config above is the one he runs at events — practical, not textbook.