SDG Electronics

SDG #349 Testing of WLED to LED Lighting reverse engineering

This installment picks up the ArcDot LED reverse engineering work and turns the decoded protocol into something usable. The key breakthrough is a re-reading of the captured waveform: what initially looked like an 8-bit frame with an inverted stop bit is actually 9-bit data, with the ninth bit cleared on the address byte and set on every data byte. That is the inverse of the usual 9-bit addressing convention, which explains the earlier confusion and the framing errors in the decode.

The practical sting is that the ESP32 UART peripheral only handles 8 data bits, so a custom WLED plug-in cannot emit the ArcDot packet directly. Rather than bit-bang it through SPI, the chosen route is a two-stage architecture: WLED outputs standard DMX512, and a separate microcontroller translates DMX into the proprietary ArcDot stream. A dsPIC33EV board left over from an earlier RGB touch controller project is reused, since it has two UARTs and genuine 9-bit support. DMX reception is handled by watching for a framing error to detect the break, then filling a 512-byte buffer; transmission runs at 1 Mbit/s on a 20 ms timer for a 50 Hz refresh, with the auto-addressing sequence recreated from the original captures.

Useful side notes for anyone attempting this: WLED’s DMX output requires building from source with two defines enabled, and the fixture count is set indirectly through the LED preferences page rather than the DMX map. The garden install also exposes a real limitation, with visible voltage drop and a reddish tint on strings beyond roughly 70 to 80 fixtures without mid-run power injection. A dedicated bridge PCB is the next step.