This is a QLab Network cue, typed the way you would type it into QLab. The relay’s own firmware reads the address: /rf/1/stop fires the slot’s OFF code, /rf/1/stpo is refused rather than firing the ON code by accident, a bare /rf/learn/3 sweeps every band while /rf/learn/3/868 locks to one, and /rf/stop aborts a fire that is already running. Set a passcode and the relay refuses every cue that does not lead with it (the reason lands in the log); turn QLab sends it on to pass.
The four-segment meter in the status bar, and the RF BAND rows on a slot’s SETUP screen (NOISE, MIN, FLOOR, PEAK, LEVEL). The relay’s own floor tracker reads every band once a second, so the floor settles on the quiet reading, PEAK keeps the worst since boot, and a step down waits out the hysteresis.
Unpair at the relay is the encoder gesture: hold 5 s for the slider, 5 s more to fill it, then UNPAIR on the confirm screen. The relay says goodbye (LEAVING), wipes its WiFi and reboots unpaired. Its RF slots are kept, as they are on the device.
The slider is the charge in the pack, and it drains (or fills on the cable) as the sim runs.
What the relay shows is its own battery.cpp reading that pack: a bolt on the cable, a bare
“%” for 30 s after unplugging while the voltage settles, a 20 s average, and on
battery a number that only falls. Raise the slider unplugged and the relay holds its last reading, as it
does on the device. With a fuel gauge fitted the number is the gauge’s, with no settle or average.
The springboard grid is the buddy’s, pushed over /mini/sb; Guest PIN 1234. A drawing is fetched from the buddy while the Peek page is open.
One sketch, two builds: -DBOARD_ROMEO_MINI picks
board_config_romeo.h — two PH/EN motors, four servos, no addressable LEDs, and an
RST button that fires motor 1 as a failsafe. Switching powers this board off and boots the other.
The controller’s own onMotorDispatch() and onServoDispatch() read the
address: a bare /sN/<angle> moves a servo, /sN/velocity spins a continuous one, /m*
hits every motor, and the legacy /start, /reverse, /test drive M1. Arguments after the
address go as OSC arguments (numbers as numbers).
Only shows while QLab is open: the dot beside QLAB in the status bar turns green once the Buddy has reached the internet; the label stays white.
A Buddy that remembers no show does not take the first Mac that answers. That Mac could belong to another rig on the same network. It asks every Mac for 2.5 seconds. If more than one offers a show, it opens the Workspace picker and lets the operator choose. Tap a row to connect.
Tap a saved network on the Buddy to switch to it. Before any prop is told, the Buddy joins the new network to check it is real, then goes back and tells the props, then joins for good. If the network never answers, the Buddy goes back and nobody moves. Tap the row again while it is checking to cancel.
A Buddy pinned to one Mac ignores every other QLab. While the pinned one is silent and another is answering, the Settings Workspace row says so in amber, Pinned, ignoring the other address, rather than leaving the Buddy quiet for no visible reason.
Each pill is a #timer/ note on the current cue. start and a duration arm and wait for the playhead to leave the cue; pause, resume, end and clear act at once. The Buddy shows the timer top-left straight away. The relay shows it on its screensaver, which it only enters after 30 s untouched: leave the wheel alone and the countdown fills its screen.
VIEW silences GO and PANIC, on screen and on the BOOT button. The Buddy still follows the show.
PING is the Buddy’s own /identify, three packets to the board’s address, and the board’s firmware answers: the relay’s ring and the controller’s strip flash white three times, the Mini blinks its frame. Nothing fires. The rows stay green because each board answers the Buddy’s /ping every 750 ms; one that stops answering greys out after 6 s, as on the device. The same buttons on the Buddy’s Devices screen do the same thing.
Every one of these is the firmware’s own screen. The last five were compiled into this simulator all along with no way to open them.
Opens the Software update screen and puts it in that state. Install is only offered when the manifest carries a checksum, which is why “update available” can be tapped and the others cannot. The second row sets what the website says instead: tap Check Again on the Buddy and it checks, finds it, and Install fills its bar, reboots into a trial and confirms it.
The Buddy polls web APIs the browser cannot reach, so the page plays the servers. A changed value moves that feed’s time stamp; a repeated one does not. A failing feed keeps its last good value through three transient misses, then turns red. A peer’s offer puts Accept Sync / Deny Sync on the page; Accept brings its feeds across.
The Peek screen is the Buddy showing what someone drew on a QPAL. A symbol reaction is a codepoint the emoji artwork does not cover, which the device draws from its own symbol font.
When every controller the Buddy can reach refuses its passcode, the show is replaced by a takeover screen saying so. The status badge turns red with it.
With no internet time, the clock at the bottom right of the screen shows --:-- --. Tap it to set the time by hand: type four digits, pick AM or PM, then press OK. Tap the clock again to hide it.
The real backlight range, driven through the firmware’s own setBrightness().
In order: tap + on Devices, let a prop join the Buddy’s hotspot, tap SYNC. The prop gets your WiFi and a fixed address.
Opens the Hotspot page. Move on a row (or Move All) sends that prop to the hotspot: it shows Moving until it is heard there. Unplug a resident and rename the hotspot and its row turns red, MISSED: it will look for the old name until it is paired again. Hold to turn off with a resident unplugged and the Buddy refuses, because that prop would be stranded.