22/10/2003
Individually addressable RGB LEDs, often referred to as WS2812B or NeoPixels, have become a staple in the maker community for any project requiring vibrant, dynamic illumination. While coding these LEDs from scratch is achievable, many users seek a simpler, more convenient solution for adding ambient lighting or creating dazzling visual effects without deep diving into programming. Enter WLED – a powerful, free, and open-source mobile and web application that puts comprehensive control of a vast array of addressable LEDs right at your fingertips. WLED transforms the complexity of controlling these LEDs into an accessible and enjoyable experience, making it the go-to option for both beginners and seasoned enthusiasts.

What is WLED?
WLED is essentially a custom firmware that runs on microcontrollers, most commonly the ESP32 and ESP8266. It acts as a web server, enabling you to control addressable LED strips (like WS2811, WS2812B, WS2813, and others) directly from your smartphone, tablet, or any device capable of sending HTTP requests over a network. Beyond its core function, WLED offers extensive integration capabilities, supporting open protocols for communication with popular smart home platforms such as Amazon Alexa, Google Assistant, and Philips Hue. Its open-source nature means it's constantly evolving with community contributions, ensuring a rich feature set and ongoing support.
Getting Started: Installing WLED on an ESP32
The WLED project has streamlined the installation process, making it remarkably straightforward to flash the firmware onto your ESP32 board. The primary method involves using a web-based installer, which simplifies the process to just a few clicks.
Method 1: The WLED Web Installer (Recommended)
This is the most user-friendly and fastest way to get WLED up and running.
- Connect your ESP32: Use a USB cable that supports data transfer to connect your ESP32 board to your computer.
- Navigate to the Installer: Open a modern desktop web browser (Google Chrome, Microsoft Edge, or Opera are recommended as they support the Web Serial API) and go to install.wled.me.
- Initiate Installation: Click the 'Install' button on the website.
- Select Port and Connect: A prompt will appear asking you to select the COM port your ESP32 is connected to. Choose the correct port and click 'Connect'. If no port appears, ensure your USB drivers are up-to-date or try a different USB cable.
- Flash WLED: Click the 'Install WLED' button. You'll be asked to confirm the installation, which will erase all data on the device. Note: Some ESP32 boards may require you to press and hold the 'BOOT' button before clicking the final confirmation to initiate the flashing process.
- Wait for Completion: The installation typically takes only a few minutes. Once it's done, click 'Next'.
- Configure Wi-Fi: You'll be prompted to enter your Wi-Fi network credentials (SSID and password). Crucially, the ESP32 only supports 2.4 GHz Wi-Fi networks; 5 GHz is not supported. Click 'Connect'.
- Access WLED: Upon successful connection, you should see a "Device connected to the network!" message. Click 'Visit Device' to access the WLED User Interface (UI). Make a note of the provided URL, as you'll use this to access your lights in the future.
Method 2: Using esptool.py
For users who prefer a command-line approach or need more advanced control, esptool.py is a robust alternative.

- Install esptool.py: Follow the official instructions to install esptool.py.
- Download WLED Binary: Obtain the latest WLED release binary file (.bin) from the official WLED GitHub repository. Choose the binary appropriate for your board (e.g., `WLED_0.x.x_ESP32.bin` for most ESP32 devices).
- Flash Bootloader (ESP32 only): For ESP32 boards, you first need to flash a bootloader. Execute:
esptool.py write_flash 0x0 ./esp32_bootloader_v4.bin - Flash WLED Firmware: Execute the command to flash the WLED firmware, adjusting the offset for ESP32:
esptool.py write_flash 0x10000 ./WLED_0.x.x_ESP32.bin. Remember to hold the 'BOOT' button if prompted during connection. - Erase Flash (if needed): If you encounter issues, consider erasing the flash first:
esptool.py erase_flash.
Understanding the WLED User Interface (UI)
Once WLED is installed and accessible via its IP address or mDNS name (e.g., `wled.local`), you'll interact with a well-organised interface. The UI can be broadly divided into several key sections:
| Section | Description | Key Features |
|---|---|---|
| Configuration | Global settings and device control. | Power (On/Off), Timer, Sync (for multi-device setups), Peek (animation preview), Config (LED count, GPIOs), Brightness slider. |
| Color Picker | Customising the colours of the LEDs. | Static colour selection, animated colour palettes, custom colour saving. |
| Effects/Animation | Selecting and modifying visual effects. | Extensive library of pre-made animations (e.g., Fade, Blink, Police, Rainbow), customisable speed and intensity. |
| Segment | Advanced control for LED arrays/matrices. | Splitting LEDs into multiple segments, applying different colours and effects to each segment. |
| Presets | Saving and recalling favourite configurations. | Creating custom light shows, building playlists to cycle through effects. |
Configuring WLED for Your Setup
Tailoring WLED to your specific hardware and preferences is crucial for optimal performance.
Changing the mDNS Address
To make accessing your WLED device easier, you can assign it a memorable mDNS address.
- Navigate to 'Config' > 'WiFi Setup'.
- Scroll down to the 'mDNS Address' field and enter your desired name (e.g., `mylights.local`).
- Scroll to the bottom and click 'Save & Connect'.
- Reconnect to the new address.
Configuring LED Preferences
This section tells WLED about your LED strip and how it's connected.
- Go to 'Config' > 'LED Preferences'.
- Under 'Hardware Setup', select the correct 'LED Type' (e.g., WS2812B).
- Set the 'Length' to match the total number of LEDs on your strip.
- Note the 'Data Pin' (GPIO) number. This is the pin on the ESP32 that sends signals to the LEDs. GPIO16 is often the default.
- Click 'Save'.
Wiring Addressable LEDs to ESP32
Connecting your LED strip to the ESP32 is a straightforward process, typically involving three main connections:
Basic Wiring:
- LED Strip +5V/VCC to ESP32 VIN (or a suitable 5V output pin if available and sufficient).
- LED Strip GND to ESP32 GND.
- LED Strip Data Input (DIN) to the ESP32 GPIO pin you configured in the WLED settings (e.g., GPIO16), preferably through a 330 Ohm resistor. This resistor protects the data pin from voltage spikes.
Important Considerations:
- Power Requirements: While a few LEDs can be powered directly from the ESP32's USB connection, larger strips drawing significant current (each RGB LED can draw up to 60mA at full brightness) will require an external power supply. Ensure the external supply's voltage matches your LED strip (commonly 5V or 12V).
- Grounding: Always connect the ground (GND) of the external power supply to the GND of the ESP32 to ensure a common ground reference.
- Data Signal: The data signal should only go from the ESP32 to the LED strip. Do not connect the data pin to the external power supply.
- Voltage Compatibility: Most ESP32 boards operate at 3.3V. While 3.3V data signals often work with 5V LED strips, for maximum reliability, especially with longer strips, a level shifter might be considered, though often not strictly necessary.
Upon successful wiring and power-up, your LEDs should illuminate, typically with a soft yellow light, indicating they are ready to be controlled.
Using the WLED Mobile App
The WLED mobile app provides a convenient, wireless way to control your LEDs.

- Download the App: Install the WLED app from the Google Play Store or Apple App Store.
- Discover Devices: Open the app and tap the '+' icon to add a new device. Use the 'Discover Lights' feature to find your WLED controller on the network.
- Add Controller: Once found, tap the discovered device to add it to your app.
- Control Your LEDs: You can now select colours using the colour wheel, browse through the extensive library of effects, adjust brightness, and even create custom playlists or presets.
Troubleshooting Colour Order
If the colours displayed don't match your selections, navigate to 'Config' > 'LED Preferences' and adjust the 'Color Order' setting under 'Hardware Setup' until the colours are correct (common orders include RGB, GRB, BGR).
Advanced Control and Integration
WLED's capabilities extend beyond the mobile app:
- Web Interface: Direct control is always available via the WLED's IP address in any web browser.
- API Control: WLED features a comprehensive API, allowing integration with home automation systems (like Home Assistant), custom scripts, and other applications via HTTP requests.
- Standalone Access Point: You can configure WLED to run its own Wi-Fi network (WLED-AP) if you don't have access to a standard Wi-Fi network, enabling direct control without an existing network infrastructure.
Frequently Asked Questions (FAQs)
Q1: What microcontroller should I use with WLED?
The most popular and well-supported microcontrollers for WLED are the ESP32 and ESP8266 series. The ESP32 is generally recommended due to its greater processing power and features.
Q2: Can WLED control non-addressable LEDs?
While WLED is primarily designed for individually addressable LEDs, some versions and configurations might offer limited support for analog LED strips through PWM control, but its main strength lies in digital addressable strips.
Q3: My ESP32 doesn't show up in the installer. What should I do?
Ensure you are using a data-transfer capable USB cable, have the correct USB-to-serial drivers installed (CP2102 or CH340G), and are using a compatible browser (Chrome, Edge, Opera).

Q4: Do I need a separate power supply for my LEDs?
Yes, for any LED strip beyond a very small number of LEDs (e.g., more than 10-15 LEDs), a separate, appropriately rated power supply is highly recommended to avoid overloading the ESP32 and ensure consistent brightness.
Q5: How do I update WLED to a newer version?
You can use the same web installer (install.wled.me) and ensure you do not check the 'Clean install' option if you want to retain your settings. Alternatively, you can use esptool.py or OTA (Over-The-Air) updates if your current WLED setup supports it.
Q6: What Wi-Fi band does WLED support?
WLED requires a 2.4 GHz Wi-Fi network. It does not support 5 GHz networks.
Tips and Recommendations
- Start Simple: Begin with a small number of LEDs to familiarise yourself with the installation and control process.
- Power Management: Always calculate your power needs based on the number of LEDs and their brightness. Undersized power supplies can lead to flickering or non-functional LEDs.
- Resistor Placement: For optimal data protection, place the 330 Ohm resistor as close to the LED strip's data input pin as possible.
- Experiment: WLED offers a vast array of effects and customization options. Don't hesitate to explore different presets, colours, and segment configurations to create unique lighting experiences.
- Community Resources: The WLED community is active and helpful. Refer to the official WLED documentation and forums for advanced troubleshooting and inspiration.
With WLED, you gain an incredibly versatile platform for controlling addressable LEDs, transforming ordinary spaces into dynamic visual environments. Whether you're building ambient mood lighting, intricate pixel art displays, or synchronised light shows, WLED provides the tools and flexibility to bring your creative visions to life.
If you want to read more articles similar to Master Your LEDs with WLED, you can visit the Automotive category.
