How it works
Confirmed, not assumed.
A footswitch that sends a command and lights up regardless is easy to build. The hard part — and the reason this exists — is knowing whether the console actually did what you asked.
Try the failure modes.
Press and hold the pedal. Then switch the network scenario and do it again — the interesting behaviour is what happens when things go wrong.
The console answers straight away.
Console · channel 1 fader
Pedal
Press and hold. Release to restore.
- infoConnected to X32 · /ch/01/mix/fader
The four rules
1. Press captures a baseline
When you press, the pedal reads the current value from its cache of live console state and remembers it. That captured value — not a number stored in the config months ago — is what release restores. If the engineer trimmed you between songs, the trim survives your stomp.
2. Writes are confirmed, then retried, then reported
Every write is optimistic but verified. The pedal sends the value and waits for the console to report it back. No acknowledgement means a retry, up to three attempts. If the console still hasn't confirmed, the pedal stops pretending: the LED flutters red and the state is reported as failed rather than shown as success.
This is the whole point. A green light means the desk did it. Not that a UDP packet left the pedal.
3. It never fights the engineer
If a value arrives from the console that is not the one the pedal asked for, a human moved it. The pedal cancels its pending write immediately and stands down. Front of house always wins a disagreement, which is the only sane rule when the alternative is two systems fighting over your vocal level during a chorus.
4. It learns the correction
If the engineer adjusts your channel while you are holding, the pedal records the difference between what it asked for and where the fader ended up. The next press applies that learned offset, so you stop making the engineer repeat themselves.
What the light is telling you
Colour is never the only signal. Every state has a distinct cadence as well, so it stays readable under stage lighting and for colour-blind eyes.
- Fast blink
Joining Wi-Fi.
100 ms on, 100 ms off
- Slow blink
Wi-Fi up, connecting to the console.
500 ms on, 500 ms off
- Heartbeat
Connected and idle. A short flash so you can see it is alive without it being distracting on a dark stage.
60 ms every 3 s
- Double flash
Captive portal is open and waiting for setup.
flash, flash, pause
- Fast flutter
A write was never acknowledged after its retries.
80 ms on, 80 ms off
Feedback LEDs are driven by state read back from the console, so they go dark when the connection drops rather than showing a stale value. A rule can also require a confirmed value before it lights at all.
See it on your own console.
The reference build is a dev board, a footswitch and about an hour.