How robbertjv/mqtt_dmx_bridge works
The product is an ESP32-S3 MQTT-to-DMX bridge with configurable networking, a web setup portal, eight DMX-mapped digital outputs, and two safety watchdogs. The main workflow is controller commands over MQTT, application-level command handling, and DMX/output updates; the watchdogs can latch a failsafe that zeros DMX and inhibits further commands. Configuration is persisted in NVS. Source excerpts are partial, so edges for documented capabilities use the README where implementation wiring was not shown.
Main entry points: main.cpp Application Loop · mqtt_manager.cpp MQTT Manager · dmx_manager.cpp DMX Manager · portal_manager.cpp Configuration Portal
Components 16
Setup and Configuration
- Runtime Configuration
src/config_manager.cpp - NVS Settings
- Configuration Portal
src/portal_manager.cpp
Network and MQTT
- Network Manager
src/network_manager.cpp - MQTT Manager
src/mqtt_manager.cpp - Wi-Fi / Ethernet
src/network_manager.cpp
Control and Safety
- Application Loop
src/main.cpp - Watchdog Manager
src/watchdog_manager.cpp - DMX Manager
src/dmx_manager.cpp
Physical Outputs
- Digital Output Manager
src/output_manager.cpp - DMX512 Bus
src/dmx_manager.cpp - I²C Output Expander
src/output_manager.cpp
Other components
- Operator
- MQTT Controller
- MQTT Broker
- DMX Fixtures
Connections 25
- Operator → Configuration Portal: configures device
README.md - Configuration Portal → Runtime Configuration: saves settings
- Configuration Portal → Network Manager: scans Wi-Fi
- Runtime Configuration → NVS Settings: persists settings
- Application Loop → Runtime Configuration: initializes
src/main.cpp - Application Loop → Network Manager: initializes
src/main.cpp - Application Loop → Configuration Portal: initializes
src/main.cpp - Application Loop → MQTT Manager: processes
src/main.cpp - Application Loop → Watchdog Manager: processes
src/main.cpp - Application Loop → DMX Manager: manages
src/main.cpp - Network Manager → Wi-Fi / Ethernet: selects interface
src/network_manager.cpp - Network Manager → MQTT Manager: provides connectivity
- MQTT Controller → MQTT Broker: publishes commands
README.md - MQTT Broker → MQTT Manager: delivers messages
README.md - MQTT Manager → Application Loop: dispatches commands
- Application Loop → DMX Manager: updates universe
README.md - DMX Manager → DMX512 Bus: transmits frames
README.md - DMX512 Bus → DMX Fixtures: drives fixtures
README.md - Application Loop → Digital Output Manager: updates outputs
README.md - Digital Output Manager → DMX Manager: reads mapped channels
- Digital Output Manager → I²C Output Expander: writes output state
src/output_manager.cpp - Application Loop → Watchdog Manager: reports MQTT state
- Watchdog Manager → DMX Manager: zeros on failsafe
README.md - Watchdog Manager → MQTT Manager: requests heartbeat
- MQTT Manager → MQTT Broker: publishes state
README.md