What you need
| Part | What to choose | Why |
|---|---|---|
| Controller | An ESP32 board; an ESP8266 such as the D1 mini also runs WLED | The ESP32 drives more strips and LEDs. WLED 16 still supports the ESP8266, with fewer advanced features and smaller practical LED counts |
| Strip | WS2812B at 5 V, or WS2815 at 12 V | Same idea, different supply: see below |
| Power supply | Sized with our LED strip calculator | Full white on a long strip draws far more than a USB port can give |
| Level shifter | 74AHCT125 or 74HCT245, powered at 5 V | A WS2812B wants a data signal of at least 0.7 × its supply, about 3.5 V; the ESP32 gives 3.3 V |
| Resistor | 300 to 500 Ω in the data line, next to the first LED | Protects the first LED from spikes on the data line |
| Capacitor | 500 to 1000 µF, 6.3 V or more on a 5 V strip | Across + and − where the power enters, against the inrush when the supply switches on |
| Fuses | One per feed wire, rated as the calculator says | A big supply can push more current into a short than a thin wire can carry |
| Wire and connectors | Sized with our wire calculator; JST SM plugs for the data and short leads | Thin wire wastes voltage and heats up |
Resistor and capacitor values as in Adafruit’s NeoPixel guide and our strip calculator; the data threshold from the Worldsemi WS2812B datasheet.
5 V WS2812B or 12 V WS2815?
The WS2815 runs its three LEDs in series from 12 V, so it draws much less current for the same number of pixels. For 5 m at 60 LEDs per metre our strip calculator gives:
| Full white, 300 pixels | WS2812B, 5 V | WS2815, 12 V |
|---|---|---|
| Current | 18 A | 5.1 A |
| Supply, with 20% headroom | 21.6 A or more | 6.2 A or more |
| Feed points | 4 | 2 |
| Fuse per feed | 7.5 A | 5 A |
| Level shifter | Advised | Usually not needed (WS2815B-V1) |
Figures from our LED strip calculator for both strips (WS2815 version).
Sizing the power
A WS2812B pixel draws up to about 60 mA at full white. Five metres at 60 LEDs per metre is 300 LEDs: 18 A at full white, so the calculator asks for a 5 V supply of at least 21.6 A with 20% headroom. Sized for typical effects instead, which draw about a third of that, 7.2 A would do, but then WLED’s brightness limiter has to keep the strip within it.
Enter your own strip, length and density: the calculator gives the supply, the feed points, the fuse and wire per feed, and the WLED limit.Open the LED strip calculator
At 5 V the voltage drop along the strip sets how often power has to be fed in. For this strip the calculator puts 4 feed points 1.67 m apart, both ends included, each carrying up to 6 A. Each feed gets its own pair of wires from the supply and its own 7.5 A fuse; for 2 m (6.6 ft) of wire at 5% drop the wire calculator gives 14 AWG, or 2.5 mm² in metric sizes.
Wiring it up
- Ground. Every part shares one ground: supply, strip and controller. If the controller has its own supply, join the two grounds. Without a common ground the data signal has no reference and the strip flickers.
- Data. GPIO → level shifter (its VCC at 5 V) → resistor → DIN of the first LED. Keep the wire from the controller to the first LED short, and put the resistor at the strip end. Follow the arrows printed on the strip: data only flows one way.
- Power. A separate pair from the supply to each feed point, each with its own fuse, rather than one cable chained along the strip.
- Capacitor. Across + and − where the power first enters the strip, with the polarity right.
- Order. Connect ground first, then power, then data, and power the LEDs before the controller.
The WS2815 is wired the same way at 12 V. With a WS2815B-V1 the ESP32’s 3.3 V data signal usually works directly, so the level shifter can often be left out; add it if the first LEDs flicker or show the wrong colours. The controller then needs its own 5 V, from a small 12 V to 5 V converter, since a dev board’s 5 V pin is meant for 5 V.
Safety
- Mains supplies in an enclosure. Open-frame LED supplies have exposed mains screw terminals. Mount them in a closed box with strain relief on every cable and the earth connected, and leave mains wiring to someone qualified where your local rules require it.
- A fuse per branch. Size each fuse to its feed wire, as the calculator does, so a short at the far end still blows it.
- One power source for the board at a time. In the diagram the ESP32 takes 5 V from the strip supply through its 5 V pin. Espressif’s DevKitC guide says the board must be powered from one source only, or the board or the source can be damaged. Flash WLED and do the first setup over USB before you connect that 5 V lead, and unplug it whenever you plug USB in later; the ground wire can stay connected.
- Never power the strip through the board. The 5 V pin of a dev board passes USB power through thin traces; WLED’s own documentation says to keep the limit below 1 A if LEDs draw from it. Feed the strip straight from the supply.
- Heat. Strips at full white get warm: mount them on aluminium profile for long runs, and check that the supply is ventilated.
Installing WLED
Open the web installer at install.wled.me in a browser with Web Serial: Chrome, Edge, Opera on desktop, or Firefox 151 and later. Safari and mobile browsers won’t work. Plug the board in with a USB data cable, pick the version (16.0.1 is the latest stable release, from July 2026), click Install and choose the board’s serial port. Do this without the 5 V lead from the board to the strip supply: one power source at a time.
- No port listed? Try another cable, then install the driver for the board’s USB chip: CH34x (WCH) or CP210x.
- Still nothing? Hold the board’s BOOT button while plugging it in.
- After flashing, the installer may offer to set up Wi-Fi straight away. If it doesn’t, use the hotspot below.
Later updates don’t need a cable: Config → Security & Updates takes a new firmware file over Wi-Fi. Back up your configuration and presets on the same page first.
First setup
- With no Wi-Fi configured, WLED opens a hotspot called WLED-AP. Connect to it with the password
wled1234. - Open
4.3.2.1in the browser if the setup page doesn’t appear by itself. - Go to WiFi settings, scan or type your network’s name and enter its password. Your network must be on 2.4 GHz.
- Give it an mDNS name, such as
desk, so you can later reach it atdesk.local, and change the hotspot password fromwled1234. - Click Save & Connect. WLED joins your network; find it at the mDNS name or through your router.
LED settings
Open Config → LED & Hardware before anything else: WLED doesn’t know your strip until you tell it.
- Type: WS281x, for a WS2812B and for a WS2815 alike.
- GPIO: the data pin, see the table below; Config → Pin Info lists every pin and what is using it.
- Length: the number of LEDs, 300 for our example.
- Color Order: GRB, the default, for most WS2812B strips. If red shows as green, try the others.
- Enable automatic brightness limiter: leave it ticked. Set Maximum PSU Current to the value our LED strip calculator gives, 18,000 mA for the full-white supply of our example, or 6,000 mA for a supply sized for typical effects; WLED accepts 250 to 65,000 mA. Set mA/LED as the calculator says too: a custom 60 mA for a WS2812B, or the “12mA (WS2815)” entry.
- Segments split the strip into parts with their own effect and colour; presets save a look, and Apply preset at boot chooses the one to start with.
| Board | Good data pin | Avoid |
|---|---|---|
| ESP32 DevKit (WROOM) | GPIO16, WLED’s default | GPIO0, 2, 5, 12, 15 (strapping) and 34 to 39 (input only). On WROVER modules GPIO16 and 17 belong to the PSRAM: use GPIO4 or 13 |
| ESP32-C3 SuperMini | GPIO4 to 7 or GPIO10. WLED’s default here is GPIO2, a strapping pin: change it in LED & Hardware | GPIO2, 8, 9 (strapping), GPIO18 and 19 (USB), GPIO20 and 21 (serial) |
| ESP32-S3 DevKitC-1 | GPIO4 to 18 | GPIO0, 3, 45, 46 (strapping), GPIO19 and 20 (USB), GPIO35 to 37 (PSRAM on octal modules) |
| ESP8266 D1 mini | GPIO2 (D4), WLED’s default | Pins other than GPIO1, GPIO2 and GPIO3 (RX) are driven in software, which WLED doesn’t recommend; GPIO3 is hardware-driven too but takes five times the memory per LED |
Strapping and reserved pins from our pinout pages for the ESP32, ESP32-C3 SuperMini, ESP32-S3 and D1 mini; ESP8266 pins from the WLED documentation.
Home Assistant
Home Assistant usually discovers WLED on the network: it shows up under Settings → Devices & services → Discovered. Otherwise, choose Add integration → WLED and enter the host name or IP address. The integration needs WLED 0.14 or newer.
You get a light entity for the strip; with two or more segments, one per segment plus a master light for power and overall brightness. There are selects for presets, playlists and palettes, numbers for effect speed and intensity, and a firmware update entity that offers stable WLED releases.
Troubleshooting
| Symptom | Likely cause | What to do |
|---|---|---|
| Nothing lights, or only the first LED, or it shows random colours | Wrong GPIO or LED type, no common ground, or data entering the wrong end | Check LED & Hardware; join the grounds; feed data into DIN, following the arrows |
| First LED wrong or flickering, the rest fine | Weak data signal at 3.3 V, or a damaged first LED | Add the level shifter and the series resistor; shorten the data wire; cut out the first LED if it is damaged |
| Colours swapped: red shows green | Colour order | Change Color Order (GRB, RGB…) in LED & Hardware |
| Random flicker along the strip | Ground or signal level | Common ground at the supply, level shifter, short data wire, capacitor at the input |
| White turns pink or orange towards the far end | Voltage drop: the blue LEDs, which need the most voltage, drop out first | More feed points, thicker wire, or a lower brightness limit |
| ESP8266 won’t boot with the strip connected | GPIO2 (D4) must be high at boot, and it also drives the board’s blue LED | Don’t pull D4 low at boot; power the strip before the board; a buffer such as the 74AHCT125 keeps the strip off the pin |
| Board resets when the strip turns white | Strip powered through the board, or a supply too small | Feed the strip from the supply; check the limiter value |
The pink or orange tint at the far end is the usual sign of too few feed points.
Frequently asked questions
Which WLED version should I install?
The latest stable release, 16.0.1 on 4 November 2026. WLED moved from 0.15 to 16.0 in 2026; nightly builds are for testing.
What is the WLED-AP password?
wled1234. Connect to WLED-AP, open 4.3.2.1 if the page doesn’t appear, set up your Wi-Fi, and change the hotspot password while you are there.
Which GPIO should I use for the data line?
GPIO16 on an ESP32 DevKit (WLED’s default) and GPIO2 (D4) on an ESP8266. Avoid strapping pins and, on WROVER modules, GPIO16 and 17. On an ESP32-C3, WLED defaults to GPIO2, a strapping pin: pick GPIO4 to 7 or GPIO10 instead.
ESP32 or ESP8266 for WLED?
An ESP32: it drives more outputs (up to 17 strips, compared with 3 on the ESP8266) and more LEDs. WLED 16 still supports the ESP8266 for small builds.
Why are my colours wrong?
Usually the colour order: most WS2812B strips are GRB, WLED’s default. Change it in LED & Hardware until red shows red.
What should I set as Maximum PSU Current?
What your supply can deliver, less headroom: our LED strip calculator works it out, 18,000 mA for 5 m of WS2812B on a 21.6 A supply.
Does WLED need the cloud or Home Assistant?
No. WLED runs on your network with its own web page and app; Home Assistant is optional, through its WLED integration.
Do I need a level shifter with a WS2815?
Usually not with a WS2815B-V1, whose data input generally works with a 3.3 V signal. The WS2815B datasheets don’t agree on the input threshold, though, so if the first LEDs flicker or the data wire is long, add one: it does no harm.
Sources
- WLED: releases (16.0.1, latest stable)
- WLED 16.0 announcement
- Adafruit: WLED 16, what’s new
- WLED web installer
- WLED documentation: Quick Start
- WLED documentation: settings (LED Preferences)
- WLED documentation: multi-strip and pins
- Adafruit: WLED installation (browsers, drivers)
- Home Assistant: WLED integration
- Adafruit NeoPixel Überguide: best practices
- Adafruit NeoPixel Überguide: powering NeoPixels
- Worldsemi: WS2812B datasheet
- Worldsemi: WS2815B-V1 datasheet
- Espressif: ESP32-DevKitC V4 getting started guide (power supply options)
- WLED source: default LED pins (const.h, 16.0.1)
- Unofficial WLED FAQ: recommended level shifters
- Applied EE: single-end power injection (colour shift)