-
1Build it
Step 2 — Wire the ESP32 to the RS485 module
Connect the four signals between ESP32 and the Waveshare TTL-to-RS485 (C) module:
- ESP32 3.3 V → Module VCC
- ESP32 GND → Module GND
- ESP32 GPIO17 → Module TXD
- ESP32 GPIO16 → Module RXD
Use 3.3 V, not 5 V — the ESP32's GPIOs are not 5 V tolerant. Keep the TTL wires short (under 20 cm); long unshielded wires on the TTL side pick up noise.
Do not connect DE/RE — the Waveshare (C) module handles direction automatically. Wiring DE/RE will break transmission.
Step 3 — Wire the XLR connector
Connect the RS485 module's screw terminals to the XLR panel socket:
- Module A (RS485+) → XLR pin 3 (DMX Data+)
- Module B (RS485−) → XLR pin 2 (DMX Data−)
- Module GND → XLR pin 1 (Shield/Ground, optional but recommended)
XLR-5 and XLR-3 use the same pin numbering for the DMX signals. Use a female panel socket — DMX sources output via female XLR; receivers use male.
Step 4 — Termination resistor (optional)
For DMX cable runs longer than about 10 m, solder a 120 Ω resistor between pins 2 and 3 (A and B) inside the last fixture in your DMX chain. Most professional fixtures include this internally.
Step 5 — Flash the firmware
Two options:
Option A — Pre-built firmware, no toolchain needed. Download the latest release from GitHub (firmware.bin, bootloader.bin, partitions.bin, boot_app0.bin) and flash with esptool. A one-line PowerShell script for Windows is provided in the repo that installs Python + esptool automatically and walks you through the flash.
Option B — Build from source. Install PlatformIO with the VS Code extension, clone the repo, and run pio run --target upload. PlatformIO handles toolchain and library downloads.
Before flashing, put the ESP32 into download mode: unplug USB, hold the BOOT button, plug USB back in while holding BOOT, release after about one second.
Step 6 — First boot and WiFi setup
On first boot the device starts an open WiFi access point named DMX-Gateway. Connect with your phone or PC — a captive portal opens automatically (or browse to 192.168.4.1). Select your home WiFi, enter the password, set your Art-Net universe (default 0), and save. The device reboots and joins your network.
Step 7 — Open the web UI
Browse to http://dmx-gateway.local from any device on the same network. You'll see the live status page with framerate, RSSI, active senders, and all 512 DMX channels as a color-coded grid. Click any channel to take manual control. Configuration, OTA updates, and WiFi reset live under /config and /reset.
Step 8 — Send Art-Net or sACN to it
Point your lighting controller (QLC+, MagicQ, Resolume, TouchDesigner, etc.) at the device's IP and Universe 0. For QLC+ specifically: in the Inputs/Outputs tab, set Output → ArtNet, target IP = the device's IP, universe = 0, transmission mode = Full. Move a fader — the corresponding cell in the web UI lights up cyan and the connected DMX fixture responds.
Thomas Büngener
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.