WLED
Control WS2812B and many more types of digital RGB LEDs with an ESP8266 or ESP32 over WiFi!
Top Related Projects
:musical_note: :rainbow: Real-time LED strip music visualization using Python and the ESP8266 or Raspberry Pi
The FastLED library for colored LED animation on Arduino. Please direct questions/requests for help to the FastLED Reddit community: http://fastled.io/r We'd like to use github "issues" just for tracking library bugs / enhancements.
Arduino library for controlling single-wire LED pixels (NeoPixel, WS2812, etc.)
A curated list of amazingly awesome Home Assistant resources.
Quick Overview
WLED is an open-source project that turns ESP8266 and ESP32 boards into feature-rich and user-friendly controllers for LED strips. It offers a web interface for easy control, supports various LED types, and includes effects, animations, and sound reactivity.
Pros
- Easy to set up and use, with a user-friendly web interface
- Supports a wide range of LED types and configurations
- Offers numerous built-in effects and animations
- Includes features like sound reactivity, scheduling, and multi-strip support
Cons
- Limited to ESP8266 and ESP32 boards
- May require additional hardware for advanced features (e.g., sound reactivity)
- Can be overwhelming for beginners due to the vast number of options
- Performance may vary depending on the number of LEDs and chosen effects
Getting Started
- Download the latest release from the WLED GitHub repository.
- Flash the firmware to your ESP8266 or ESP32 board using a tool like ESPHome Flasher.
- Connect your LED strip to the appropriate pins on your board.
- Power on the board and connect to the "WLED-AP" Wi-Fi network.
- Open a web browser and navigate to http://4.3.2.1 to access the WLED interface.
- Configure your Wi-Fi settings and start controlling your LED strip.
For more detailed instructions, refer to the WLED wiki.
Competitor Comparisons
:musical_note: :rainbow: Real-time LED strip music visualization using Python and the ESP8266 or Raspberry Pi
Pros of audio-reactive-led-strip
- Specifically designed for audio reactivity, providing more advanced sound-responsive effects
- Offers real-time FFT analysis for precise audio visualization
- Allows for customization of frequency ranges and sensitivity
Cons of audio-reactive-led-strip
- Less user-friendly interface compared to WLED's web-based control panel
- Limited to audio-reactive features, lacking the versatility of WLED's various effects
- Requires more technical knowledge to set up and configure
Code Comparison
WLED (Arduino-based):
void loop() {
handleConnection();
handleSerial();
handleButton();
handleIR();
handleDMX();
handleNightlight();
doLEDstuff();
}
audio-reactive-led-strip (Python-based):
def visualize_spectrum(y):
"""Visualization for the audio spectrum"""
y = np.copy(y)
y = interpolate(y, config.N_PIXELS // 2)
spectrum = np.fft.rfft(y)
magnitude = np.abs(spectrum)
magnitude *= config.GAIN
The code snippets highlight the different approaches: WLED uses a more general-purpose loop for various LED control methods, while audio-reactive-led-strip focuses on audio processing and visualization. WLED is written in C++ for Arduino, whereas audio-reactive-led-strip uses Python, which may be more accessible for some users but requires a different hardware setup.
The FastLED library for colored LED animation on Arduino. Please direct questions/requests for help to the FastLED Reddit community: http://fastled.io/r We'd like to use github "issues" just for tracking library bugs / enhancements.
Pros of FastLED
- More flexible and customizable for advanced users
- Supports a wider range of LED types and microcontrollers
- Better performance for complex animations and effects
Cons of FastLED
- Steeper learning curve for beginners
- Requires more manual configuration and coding
- Lacks built-in web interface for remote control
Code Comparison
FastLED:
#include <FastLED.h>
#define NUM_LEDS 60
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812B, 6, GRB>(leds, NUM_LEDS);
}
WLED:
#include <WLED.h>
void setup() {
WLED.begin();
}
WLED offers a more user-friendly approach with its web interface and pre-built effects, making it easier for beginners to get started. However, FastLED provides greater flexibility and control for advanced users who want to create custom animations and effects.
FastLED is better suited for projects requiring fine-tuned control over individual LEDs and complex color manipulations, while WLED excels in providing a plug-and-play solution with remote control capabilities and a wide range of pre-built effects.
Both libraries have their strengths, and the choice between them depends on the specific requirements of your project and your level of expertise in working with LED control systems.
Arduino library for controlling single-wire LED pixels (NeoPixel, WS2812, etc.)
Pros of Adafruit_NeoPixel
- Simpler and more lightweight library, ideal for basic LED control projects
- Easier to integrate into existing Arduino sketches
- Better suited for resource-constrained microcontrollers
Cons of Adafruit_NeoPixel
- Limited built-in effects and animations compared to WLED
- Lacks advanced features like web interface, OTA updates, and network control
- Requires more manual coding for complex lighting patterns
Code Comparison
Adafruit_NeoPixel:
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel strip(60, PIN, NEO_GRB + NEO_KHZ800);
strip.begin();
strip.setPixelColor(i, red, green, blue);
strip.show();
WLED:
#include "wled.h"
WLED wled;
wled.init();
wled.strip.setPixelColor(i, red, green, blue);
wled.strip.show();
WLED offers a more comprehensive solution with built-in effects, web interface, and network control, making it ideal for complex LED installations. Adafruit_NeoPixel, on the other hand, provides a simpler approach for basic LED control, making it more suitable for smaller projects or when integrating LED functionality into existing Arduino sketches.
A curated list of amazingly awesome Home Assistant resources.
Pros of awesome-home-assistant
- Comprehensive resource collection for Home Assistant users and developers
- Regularly updated with new integrations, add-ons, and community contributions
- Covers a wide range of topics beyond just LED control
Cons of awesome-home-assistant
- Not a standalone application; requires additional setup and components
- May be overwhelming for beginners due to the vast amount of information
- Less focused on specific LED control features compared to WLED
Code comparison
While a direct code comparison isn't relevant due to the different nature of these projects, here's a brief example of how they might be used:
WLED usage:
#include <WLED.h>
void setup() {
WLED.begin();
}
awesome-home-assistant integration:
light:
- platform: wled
name: LED Strip
host: 192.168.1.100
Summary
WLED is a specialized firmware for LED control, while awesome-home-assistant is a curated list of resources for the Home Assistant platform. WLED offers direct LED manipulation, whereas awesome-home-assistant provides a broader scope of smart home integrations and information. Choose WLED for dedicated LED projects, and awesome-home-assistant for comprehensive smart home setups and knowledge.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Welcome to my project WLED! â¨
A fast and feature-rich implementation of an ESP8266/ESP32 webserver to control NeoPixel (WS2812B, WS2811, SK6812) LEDs or also SPI based chipsets like the WS2801 and APA102!
âï¸ Features
- WS2812FX library with more than 100 special effects
- FastLED noise effects and 50 palettes
- Modern UI with color, effect and segment controls
- Segments to set different effects and colors to user defined parts of the LED string
- Settings page - configuration via the network
- Access Point and station mode - automatic failsafe AP
- Up to 10 LED outputs per instance
- Support for RGBW strips
- Up to 250 user presets to save and load colors/effects easily, supports cycling through them.
- Presets can be used to automatically execute API calls
- Nightlight function (gradually dims down)
- Full OTA software updateability (HTTP + ArduinoOTA), password protectable
- Configurable analog clock (Cronixie, 7-segment and EleksTube IPS clock support via usermods)
- Configurable Auto Brightness limit for safe operation
- Filesystem-based config for easier backup of presets and settings
ð¡ Supported light control interfaces
- WLED app for Android and iOS
- JSON and HTTP request APIs
- MQTT
- E1.31, Art-Net, DDP and TPM2.net
- diyHue (Wled is supported by diyHue, including Hue Sync Entertainment under udp. Thanks to Gregory Mallios)
- Hyperion
- UDP realtime
- Alexa voice control (including dimming and color)
- Sync to Philips hue lights
- Adalight (PC ambilight via serial) and TPM2
- Sync color of multiple WLED devices (UDP notifier)
- Infrared remotes (24-key RGB, receiver required)
- Simple timers/schedules (time from NTP, timezones/DST supported)
ð² Quick start guide and documentation
See the documentation on our official site!
On this page you can find excellent tutorials and tools to help you get your new project up and running!
ð¼ï¸ User interface
ð¾ Compatible hardware
See here!
âï¸ Other
Licensed under the MIT license
Credits here!
Join the Discord server to discuss everything about WLED!
Check out the WLED Discourse forum!
You can also send me mails to dev.aircoookie@gmail.com, but please, only do so if you want to talk to me privately.
If WLED really brightens up your day, you can
Disclaimer:
If you are prone to photosensitive epilepsy, we recommended you do not use this software.
If you still want to try, don't use strobe, lighting or noise modes or high effect speed settings.
As per the MIT license, I assume no liability for any damage to you or any other person or equipment.
Top Related Projects
:musical_note: :rainbow: Real-time LED strip music visualization using Python and the ESP8266 or Raspberry Pi
The FastLED library for colored LED animation on Arduino. Please direct questions/requests for help to the FastLED Reddit community: http://fastled.io/r We'd like to use github "issues" just for tracking library bugs / enhancements.
Arduino library for controlling single-wire LED pixels (NeoPixel, WS2812, etc.)
A curated list of amazingly awesome Home Assistant resources.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot