Personal
Addressable LED Controller
An STM32-based addressable lighting controller designed to drive up to eight WS2812 LED channels from Art-Net and sACN data over Ethernet.

01
Project Summary
This project is an STM32-based addressable lighting controller designed to independently drive up to eight channels of WS2812 addressable LEDs using the industry-standard Art-Net and sACN lighting protocols. The controller receives DMX lighting data over Ethernet, processes the incoming channel data and translates it into RGB values for each connected LED. This enables individual pixel-level control across all eight outputs, with update rates of up to 60 Hz for smooth, responsive lighting effects.
02
Implementation
A custom two-layer PCB was designed to integrate all of the control, communication, power and protection circuitry required for the controller. The system is built around an STM32F405 microcontroller, selected for its processing performance, available memory and multiple hardware timers. These timers provide the precise timing required to generate the data signals for multiple WS2812 LED outputs.
The board accepts a 5-24 V input, allowing it to operate with 5 V, 12 V and 24 V lighting installations. A 100% duty-cycle capable buck converter generates the 5 V rail while maintaining operation from a 5 V input. SN74AHCT logic buffers then level-shift the STM32's 3.3 V outputs to the 5 V logic levels required for reliable communication with the LEDs. Each output is individually fused, while the main power input incorporates MOSFET-based reverse-polarity protection.
Lighting data is received through a transformer-integrated Ethernet connector and processed by a W5500 Ethernet controller. The W5500 handles the Ethernet interface and communicates with the STM32 over SPI, allowing the microcontroller to receive and process Art-Net or sACN data before generating the corresponding RGB data streams for the eight LED outputs.

03
Future Iterations
Future development will primarily focus on improving reliability, protection and system diagnostics. I plan to replace the removable output fuses with integrated electronic protection and current monitoring. This would allow the STM32 to detect overcurrent or output faults, automatically isolate individual channels and report diagnostic information back to the user.
I also plan to develop a higher-density version of the controller using a more powerful STM32 microcontroller, expanding the design from 8 to 16 independently controlled outputs. This would provide greater pixel capacity and simplify deployment in larger, high-density lighting installations.