WLED is custom firmware for controlling multi-colour LED lights. It’s designed for string lights, with lots of individual LEDs that can be controlled independently. I’ve recently given it a try for the first time.
ESP devices
WLED runs on Espressif’s ESP32 and ESP8266 chips (although the latter isn’t recommended for new installs). That means it’s like ESPHome, Tasmota and ESPurna, in that it is also open source and customisable. However, whereas these alternatives can be used on a wide variety of devices, WLED is designed just for controlling LED lights. Sure, you can probably configure ESPHome to do the same, but you would end up with a huge and unwieldy YAML file to be able to recreate WLED’s functionality.
You can build your own controllers with an ESP chip like those from Seeed Studio and m5stack, and there are wiring diagrams to help you. It’s recommended that you include some capacitors, fuses and level shifters, along with the MCU chip, and you’ll need to be good at soldering.
Or, you could do what I did, and buy a pre-built controller box with the WLED firmware pre-installed. Amazon will sell you one from Gledopto for £25 (sponsored link), however, I purchased mine from AliExpress for £10.79, which is less than half price. Whilst buying the individual components may be cheaper, a pre-built box doesn’t require any soldering. Gledopto offer a range of different units, and some more expensive models include a built-in microphone to allow the lights to synchronise with music.

Replacing Tuya with WLED
The lights that I wanted to use originally came with a Tuya Wi-Fi controller. I try to avoid Tuya Wi-Fi devices, as they require access to Tuya’s servers to work. WLED can work entirely locally, with no need to connect to cloud servers (apart from for firmware updates). I also found that, whilst the Tuya app offered lots of effects, these weren’t available on other smart home platforms.
The MCU in the Tuya controller looks like a Beken BK7231 chip, and so I may have been able to install OpenBeken or ESPHome on it, but not WLED as WLED is ESP-only. As mentioned above, WLED is designed to control LED lights, whereas OpenBeken and ESPHome would have needed a lot of configuration. Besides, I couldn’t seem to use the Tuya-Cloudcutter exploit, and couldn’t find the pins I would have needed to upload new firmware via UART.
So instead, I bought a replacement WLED controller, and then cut the wires from the old circuit board. Thankfully, the terminals where the wires connected were labelled, and so I could easily match these with the new WLED controller. Like I said, there was no soldering required – on the new controller, I just lifted the plastic pins to open the ports, fed the wires in, and then locked the pins. The controller needs a minimum of 5 volts, which is what you get from USB and so I just wired in the existing USB cable from the Tuya controller. It can accept higher, going up to 24 volts DC.
Once power was provided, the LEDs all light up with a bright orange glow. I then used my phone to connect to the WLED-AP hotspot that appeared, and used the hotspot login screen to give WLED my Wi-Fi network details. And that was it – after that, I could use the controller’s IP address to open a web page to control the lights.
Using WLED to control lights
WLED is very powerful. With LED lights like the ones I used, it can control the colour and brightness of each individual LED. That means each one can be a different colour, and you can have patterns as each one fades on and off and to different colours. It comes with lots of built-in effects, and you can save these as presets that come on as soon as the lights are turned on. Multiple presets can be combined into a playlist.
Whilst the main way to use WLED is using the web interface, there are official apps for iPhone and Android, that will detect your lights using mDNS. That being said, the iPhone app is mostly just a wrapper around the web interface. Third-party apps seem to exist which offer a more native interface, but I haven’t tried these myself yet.

Smart home integration
If you’re a Home Assistant user, then WLED has a built-in integration. New WLED devices should be detected automatically by Home Assistant, and you can control almost all of the features within Home Assistant. This includes setting presets and playlists, amending the speed of effects and the intensity.
Getting your WLED devices into other smart home ecosystems is a little more difficult. There is a Matter bridge, which needs to run on another device that has Docker installed. I tried this, but couldn’t get it to work; I gather from one of the bug reports on Github that it’s not compatible with newer versions of WLED.
With a bit of trial and error, I managed to get it working with Matterbridge. I had to hide some of the sub-entities as otherwise it wouldn’t show and caused errors in the logs. This allowed me to control it with Google Home and Apple Home. However, this control was limited to selecting a single colour and brightness for all LEDs, or switching on and off. Better than nothing, but not as granular as Home Assistant.
WLED isn’t for everyone – I found it easy enough to set up, and I like the high level of control it offers. But it is very much a DIY solution, that requires you to buy (or build) the controller and lights separately, so it’s not for everyone.
I’m planning another WLED project; this time to replace the non-smart controller for my ring light. I’ve seen a guide for replacing the controller; that guide involves building your own controller and 3D-printing a box for it. I think I’ll just buy another Gledopto box.












