SDG #374 Smart Home Lighting: Adding Wireless DMX to My ESP32 Controller
This build tackles a very practical smart home problem: a wall mounted scene controller already works over wired DMX, but one room has only a power cable and no appetite for chasing out plaster. The fix is to keep the existing Waveshare ESP32-S3-Touch-LCD-4 as the user interface and push channel levels over ESP-NOW to a second unit, an ESP32-S3-Touch-LCD-4.3B-BOX, which generates the actual DMX output from its onboard RS485 driver. The 6 to 36 V input is a useful detail for anyone running 24 V distribution, and the enclosed version makes loft or cupboard mounting realistic.
The interesting engineering is in the receiver firmware rather than the radio link itself. Raw packet-to-DMX passthrough remains available, but dropped packets could make the lights jump between levels, so a smooth mode interpolates between received values with an adjustable time constant. Signal loss handling is equally considered: outputs hold for a configurable period, then fade down rather than snapping to black. Pairing uses a shared magic number and channel scan with settings stored in NVS, and a diagnostics page exposes RSSI history, sender MAC, radio channel and dropped packet counts.
Oscilloscope verification is worth watching, including UART serial decode of the DMX stream, switching between 16 and 512 slot packet lengths, and refresh rates of 25 Hz and 100 Hz. One limitation surfaces: the scope’s decoder cannot be set to the two stop bits DMX uses, though the byte values still read correctly. Range tested at roughly 15 m through brick walls, with a soak test planned to check for memory leaks and link stability alongside Wi-Fi.
The full project write-up, with diagrams and the current firmware features, is in the ESP32 wireless DMX touch dimmer article.


