This project implements Wi-Fi control for RGB LEDs using an ESP32S module and the WLED firmware. It allows users to remotely manage LED colors and effects through a web interface or dedicated apps.
The core of this project is an ESP32S development board connected to RGB LEDs. The WLED firmware is flashed onto the ESP32, transforming it into a versatile Wi-Fi connected LED controller. Users can connect to the ESP32's access point or integrate it into an existing Wi-Fi network to control the LEDs.
The custom hardware design includes an ESP32S module and circuitry for driving RGB LEDs.
Here's an image of the PCB layout:
Here's the circuit schematic:
The detailed hardware schematic and board files can be found in the board-design/ directory:
ESP32S RGB.sch(Schematic file)ESP32S RGB.brd(Board layout file)
Important Hardware Note: The PWM signal for controlling the LEDs is inverted in the hardware. This means:
- A PWM value of 0 results in maximum brightness.
- A PWM value of 255 results in the LED being off.
WLED typically has settings to invert PWM output if needed, which should be configured to match this hardware design.
The project uses PlatformIO with the Arduino framework for the ESP32. The primary software component is the WLED firmware, which provides a rich set of features for LED control, including:
- Web interface for control and configuration.
- Support for various LED effects and palettes.
- Integration with home automation systems (MQTT, Home Assistant, etc.).
- Over-the-air (OTA) updates.
The src/main.cpp file is configured to initialize and run the WLED firmware.
- Clone the repository:
git clone <your-repository-url> cd WifiLedESP32s
- PlatformIO: Ensure you have PlatformIO IDE installed in VS Code or PlatformIO Core CLI.
- Build and Upload:
- Open the project in PlatformIO.
- Build the project (this will also download library dependencies like WLED).
- Upload the firmware to your ESP32S board.
- WLED Configuration:
- After flashing, the ESP32 should create a Wi-Fi Access Point (AP) named "WLED-AP" (password: "wled1234").
- Connect to this AP.
- Open a web browser and navigate to
4.3.2.1. - Configure your Wi-Fi network credentials and LED preferences.
- Crucially, in the WLED LED settings, ensure you configure the output pins correctly and set the PWM output to be inverted if WLED doesn't automatically handle the hardware's inverted logic based on the LED type selected.
Once configured, you can control the LEDs through the WLED web interface or compatible mobile apps and third-party software.

