Skip to content

Sebastian-Sonne/wled_controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 WLED RGB Strip Controller

Custom ESP32-based RGB LED strip controller designed to replace unreliable off-the-shelf LED controllers.

This board is built around an ESP32 development module and runs WLED firmware. It supports both analog RGB strips and digital addressable strips.

LED STRIP CONTROLLER

Why I Built This

The original controllers that came with my LED strips constantly disconnected from the app and were generally unreliable. Instead of continuing to fight them, I decided to design my own controller based on an ESP32 running WLED.

This project is my first ever custom PCB design. It is open-source so others can build, modify, or improve it.

I heavily relied on the excellent WLED documentation when designing this board.


Overview

  • MCU: ESP32 Dev Board
  • Firmware: WLED
  • Input Voltage: 12V DC
  • Step-Down Converter: LM2596 module (external module mounted on PCB)
  • Analog Outputs: 2 independent RGB channels (4 headers total)
  • Digital Outputs: 2 (WS2815 compatible)
  • Level Shifting: Optional SN74AHCT125N

Hardware Description

ESP32

Make sure your ESP32 DevBoard has the same pinout as the one that I used. Otherwise you may fry your MCU

LED STRIP CONTROLLER LED STRIP CONTROLLER

Power Architecture

  • 12V input powers:
    • Analog RGB LED strips directly
    • LM2596 buck converter module → 5V for ESP32 and logic

LED Outputs

Analog RGB Outputs (4 headers total)

There are two independent RGB control groups. Each group controls two identical 4-pin headers.

Header pinout:

12V | G | B | R

Group 1 (2 headers)

  • Green: GPIO 15
  • Red: GPIO 26
  • Blue: GPIO 27

Group 2 (2 headers)

  • Green: GPIO 18
  • Red: GPIO 19
  • Blue: GPIO 21

Each group shares the same control signals across its two headers.


Digital Outputs (2 headers)

Designed for WS2815 (12V addressable LED strips).

Header pinout:

12V | DI | BI | GND
  • Digital Output 1: GPIO 2
  • Digital Output 2: GPIO 4

An SN74AHCT125N level shifter can be used for proper 5V data-level conversion, as recommended in the WLED documentation.


Current Version: v1.0

Known Issues

  • Decoupling Capacitors: Pads were incorrectly sized (assumed 0805). Components do not fit. This will be corrected in a future revision.

  • Development Version: During early assembly, fuse pads were bridged instead of populated with a fuse. This is not recommended for normal use.

Assembly Notes

The board images in this repository show a partially assembled board. Only the analog outputs were required for the current installation.

LED STRIP CONTROLLER


WLED Configuration

Flash WLED using the official installer or esptool.

Configure:

  • LED type (Analog / WS281x / WS2815)
  • Assigned GPIOs as listed above
  • LED count per channel

Official documentation: https://kno.wled.ge/

Huge thanks to the LED contributers, if you ever read this, props for the awesome docs


Repository Contents

  • KiCad project files
  • Custom symbols and footprints
  • Gerbers in Releases

Future Improvements

  • Correct capacitor footprints
  • Review decoupling placement
  • Improve silkscreen labeling
  • Integrate fixed 5V regulator instead of LM2596 module

About

ESP32 based WLED RGB strip controller pcb

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors