SDG #349 Testing of WLED to LED Lighting reverse engineering
This episode continues the ArcDot LED reverse engineering by turning the captured protocol into working firmware. A closer look at the data revealed that the apparent inverted stop bit on the address byte was in fact a ninth data bit: the fixtures use 9 bit serial at 1 Mbit/s, with the ninth bit cleared on the address byte and set on the data bytes, the opposite of the usual convention. That discovery immediately ruled out driving the lights directly from an ESP32, because its UART peripheral supports only 8 bit data.
The solution is a bridge. WLED on the ESP32 outputs DMX, and a dsPIC33EV board from the earlier RGB touch controller project receives that DMX on one UART and transmits the ArcDot protocol on the other, which also makes the eventual bridge PCB usable with ordinary DMX hardware. WLED’s DMX output has to be enabled by uncommenting a define and building from source, and its configuration is unintuitive: the number of virtual WS2812 LEDs set in LED preferences determines how many three channel DMX fixtures are mapped. The dsPIC firmware detects the DMX break through the UART framing error, buffers 512 bytes, and sends a frame to the lights every 20 ms for a 50 Hz refresh, with an auto addressing routine that reproduces the original controller’s two sets of 160 packets at 25 ms intervals.
Tested in the garden on roughly 72 to 74 lights buried along the borders, auto addressing worked and WLED’s effects ran correctly, though the lights took on a red tint during the white addressing sequence, which points to voltage drop along the string. Around 80 fixtures appears to be the practical limit before power injection is needed. The next step is a schematic and PCB for the bridge.


