SDG Electronics

SDG #374 Smart Home Lighting: Adding Wireless DMX to My ESP32 Controller

This build addresses a practical smart home problem: a wall mounted scene controller already works over wired DMX, but one room has only a power cable and no prospect of chasing out plaster. The solution keeps the existing Waveshare ESP32-S3-Touch-LCD-4 as the user interface and sends 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 engineering interest 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 switching abruptly 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 oscilloscope’s decoder cannot be set to the two stop bits DMX uses, though the byte values still read correctly. Range was 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.