ritual table - show control system
2025-2026 · SYSTEM DESIGN · INTERACTIVE · SHOW CONTROL
show control layer built on top of the ritual table RFID puzzle.
one prop. one operator. figure out what breaks before show day.
five RFID readers, one Arduino, one Raspberry Pi 5 — connected to QLab audio and QLC+ DMX lighting through a layered communication stack. the puzzle mechanic was simple. making it reliable in a live context was not.
this was the first iteration. the escape room system grew out of what was learned here.
—
how it works
player places a ritual object on the correct position → Arduino detects the RFID tag → JSON state packet sent to Raspberry Pi over USB serial → Node-RED dispatches: candle placement sound in QLab, DMX fixture on in QLC+, GM dashboard updated. all five placed correctly → two-stage win sequence: 2-second blackout, then lighting chase and atmospheric audio.
GM monitors everything from a browser dashboard: device status, placement indicators, game clock, override controls. separate fullscreen countdown display for players, served over WebSocket, colour-coded to game state.
—
how it got here
· v1.0 — ran entirely on the Arduino. no network. confirmed the core mechanic worked before adding complexity.
· v2.0 — introduced MQTT over Wi-Fi and Node-RED. QLab and QLC+ triggered automatically for the first time. felt like a real show control system.
· v2.1 — Wi-Fi drop mid-game froze the puzzle entirely. added non-blocking connection logic so the Arduino kept running independently when the network went down.
· v3.0 — Wi-Fi instability kept recurring under show conditions. dropped wireless from the Arduino entirely. switched to wired USB serial. stability over architectural elegance.
· v4.0 — running Node-RED on a laptop wasn't viable for a physical installation. switched to a dedicated Raspberry Pi 5 — smaller, quieter, no screen needed, stays in the room. all devices through a network switch.
· v4.2 — four production bugs identified and resolved: win animation running indefinitely after reset; Arduino appearing offline during blocking animations; reset commands dropped mid-animation; heartbeats re-triggering the win sequence every 2 seconds.
· v4.2.2 — added fullscreen player countdown display over WebSocket. auto-reconnecting, deployable on any screen on the network.
—
tools: Arduino · Raspberry Pi 5 · Node-RED · QLab 5 · QLC+ 5 · DMX · MQTT · OSC · WebSocket · USB serial
full version history and bug documentation: repository
expanded into a three-prop system → escape room
ritual table system architecture
dashboard
timer
video demo