Convert Figma logo to code with AI

wled logoWLED

Control WS2812B and many more types of digital RGB LEDs with an ESP32 over WiFi!

16,175
3,556
16,175
448

Top Related Projects

16,176

Control WS2812B and many more types of digital RGB LEDs with an ESP32 over WiFi!

9,231

ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.

6,859

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.)

:musical_note: :rainbow: Real-time LED strip music visualization using Python and the ESP8266 or Raspberry Pi

Quick Overview

WLED is an open-source firmware for ESP8266 and ESP32 microcontrollers that enables control of WS2812B and many other types of digital RGB(W) LEDs. It provides a web interface, mobile app, and API for easy configuration and control of LED effects, with support for music reactivity, alexa integration, and more.

Pros

  • Easy to install and use, with a user-friendly web interface and mobile app
  • Supports a wide range of LED types and configurations
  • Highly customizable with numerous built-in effects and the ability to create custom ones
  • Active community and frequent updates

Cons

  • Limited to ESP8266 and ESP32 microcontrollers
  • May require some technical knowledge for advanced features
  • 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

  1. Download the latest release from the WLED GitHub releases page.
  2. Flash the firmware to your ESP8266 or ESP32 board using a tool like ESPHome Flasher or NodeMCU Pyflasher.
  3. Connect your LED strip to the appropriate pins on your microcontroller.
  4. Power on your device and connect to the "WLED-AP" Wi-Fi network.
  5. Open a web browser and navigate to http://4.3.2.1 to access the WLED interface.
  6. Configure your Wi-Fi settings and LED strip parameters in the settings menu.
  7. Start controlling your LEDs and enjoying the various effects!

For more detailed instructions and advanced features, refer to the WLED wiki.

Competitor Comparisons

16,176

Control WS2812B and many more types of digital RGB LEDs with an ESP32 over WiFi!

Pros of WLED

  • More active development and frequent updates
  • Larger community and contributor base
  • Wider range of supported features and integrations

Cons of WLED

  • Potentially more complex for beginners due to extensive feature set
  • May require more system resources due to additional functionalities

Code Comparison

WLED:

void handleNotFound() {
  if (captivePortal()) {
    return;
  }
  handleSet(request->url());
}

WLED>:

void handleNotFound() {
  if (captivePortal()) {
    return;
  }
  server.send(404, "text/plain", "Not found");
}

The code comparison shows that WLED has a more advanced handling of "not found" requests, potentially offering better user experience and functionality.

Summary

WLED is the main repository for the project, while WLED> appears to be a fork or alternative version. WLED benefits from more active development, a larger community, and a wider range of features. However, this may come at the cost of increased complexity and resource usage. The code comparison suggests that WLED has more sophisticated request handling. For most users, WLED would likely be the preferred choice due to its ongoing development and broader support.

9,231

ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.

Pros of ESPHome

  • More versatile, supporting a wide range of sensors and devices beyond LED control
  • Tighter integration with Home Assistant for easier automation and control
  • Allows for custom firmware creation using YAML configuration

Cons of ESPHome

  • Steeper learning curve, especially for those new to YAML and Home Assistant
  • Less specialized for LED control, potentially lacking some advanced LED-specific features
  • May require more setup time compared to WLED's plug-and-play approach

Code Comparison

WLED (Arduino-based):

void loop() {
  WLED::instance().loop();
}

ESPHome (YAML configuration):

light:
  - platform: fastled_clockless
    chipset: WS2812B
    pin: GPIO2
    num_leds: 60
    rgb_order: GRB
    name: "LED Strip"

ESPHome focuses on configuration-based setup, while WLED uses more traditional Arduino-style programming. ESPHome's approach allows for easier customization without deep coding knowledge, but may be less flexible for advanced users who prefer direct code manipulation.

Both projects are excellent choices for IoT and smart home enthusiasts, with WLED excelling in LED-specific applications and ESPHome offering broader device support and Home Assistant integration.

6,859

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 LED programming
  • Supports a wider range of LED chipsets and microcontrollers
  • Better performance for complex animations and effects

Cons of FastLED

  • Requires more programming knowledge and effort to implement
  • Lacks built-in web interface or mobile app for easy control
  • No out-of-the-box support for common features like music reactivity

Code Comparison

FastLED example:

#include <FastLED.h>
#define NUM_LEDS 60
CRGB leds[NUM_LEDS];
void setup() { FastLED.addLeds<WS2812B, 6, GRB>(leds, NUM_LEDS); }
void loop() { fill_rainbow(leds, NUM_LEDS, 0, 7); FastLED.show(); }

WLED example:

#include "wled.h"
void setup() {
  WLED::instance().init();
}
void loop() {
  WLED::instance().loop();
}

WLED provides a more user-friendly approach with built-in functionality, while FastLED offers greater flexibility for custom implementations. WLED is ideal for users seeking quick setup and easy control, whereas FastLED is better suited for developers requiring fine-grained control over LED behavior and advanced effects.

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
  • Easier to integrate into existing Arduino projects
  • More suitable for resource-constrained microcontrollers

Cons of Adafruit_NeoPixel

  • Limited built-in effects and animations compared to WLED
  • Lacks advanced features like web interface 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"
void setup() {
  WLED::instance().initServer();
}
void loop() {
  WLED::instance().handleConnection();
}

The Adafruit_NeoPixel library provides a straightforward approach to controlling NeoPixels, with direct pixel manipulation. WLED, on the other hand, offers a more comprehensive solution with built-in networking and a web interface, requiring less manual coding for advanced features. WLED is better suited for complex, networked LED installations, while Adafruit_NeoPixel is ideal for simpler projects or when fine-grained control over individual pixels is needed.

:musical_note: :rainbow: Real-time LED strip music visualization using Python and the ESP8266 or Raspberry Pi

Pros of audio-reactive-led-strip

  • Specialized for audio reactivity, providing more advanced sound-responsive effects
  • Python-based, offering flexibility for customization and integration with other Python libraries
  • Includes real-time FFT analysis for precise audio visualization

Cons of audio-reactive-led-strip

  • Limited to audio-reactive features, lacking general-purpose LED control capabilities
  • Requires more setup and configuration compared to WLED's user-friendly interface
  • Less active development and community support

Code Comparison

WLED (C++):

void colorWipe(CRGB color, int speed) {
  for (int i = 0; i < NUM_LEDS; i++) {
    leds[i] = color;
    FastLED.show();
    delay(speed);
  }
}

audio-reactive-led-strip (Python):

def visualize_spectrum(y):
    y = np.copy(y)
    y = interpolate(y, config.N_PIXELS)
    spectrum = np.array([qi.color(r, g, b) for r, g, b in y])
    np.concatenate((spectrum, spectrum[::-1]))
    return spectrum

The code snippets demonstrate the different approaches: WLED focuses on general LED control, while audio-reactive-led-strip emphasizes audio processing and visualization. WLED's C++ implementation is more efficient for real-time LED control, whereas audio-reactive-led-strip's Python code allows for easier integration of complex audio analysis algorithms.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Welcome to my project WLED! ✨

A fast and feature-rich implementation of an ESP32 and ESP8266 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 EUPL v1.2 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 EUPL license, I assume no liability for any damage to you or any other person or equipment.