RF Spectrum — 470–614 MHz
Shaded band is the local TV whitespace picture for the simulation; markers are your assigned channels. Watch for markers drifting toward an occupied channel.
Event Log
Dropouts, battery warnings, and segment changes, newest first.
Find your name. Green means your mic is healthy — if your card turns red, hand the mic to the stage manager before the next song.
ProPresenter · Clock
Countdown Timer
Service Flow
Mic Status
This page is the hosted site
You’re looking at it on a real hosted website right now — that’s why the link works on any phone, tablet, or booth computer at BCX with nothing to install. The board, views, and alerts are finished. What’s still simulated is only the data source behind the cards.
To pull an actual feed, you don’t rebuild the website. You add one small program — a collector — on the same network as the wireless receivers, and point this page at it. Below is the exact plan, the hardware check, and a live connection slot you can test the moment a collector exists.
- Now: Demo / layout reference with simulated channels
- At BCX: Ask for the receiver make & model (photo of the RF rack is enough)
- When live: Same link, same cards — collector data replaces the simulator
Wireless receivers
Shure / Sennheiser networked receivers already know RF level, audio, battery, and frequency for every channel — continuously.
Collector program
A tiny program on a laptop / mini-PC on the venue network. Polls the receivers every 250 ms over Ethernet. This is the only new piece of software.
WebSocket feed
Collector publishes one simple JSON stream: { ch, rfDbm, audioDb, batteryPct, freq } — no accounts, no cloud needed on a local show network.
RF Board (hosted)
This hosted page subscribes to that stream and drives the exact cards you see now. Engineering, Green Room, and Video Wall all read the same feed.
Why the browser can’t talk to receivers directly
This is a browser rule, not a limitation of this board — and it’s why every product like this uses a collector.
- !Different networks: This hosted page lives on the public internet. Receivers live on a private venue LAN with addresses like 192.168.1.x that the internet can’t reach.
- !Different protocols: Receivers speak vendor network protocols (Shure / Sennheiser control ports), not web protocols a browser is allowed to open.
- ✓The fix is small: The collector sits on that LAN, translates vendor data → WebSocket JSON, and this page does the rest. Put the collector and the viewing screens on the same show network and no internet is even required.
Deployment options for the live version: (a) keep this hosted page and connect it to a collector via a secure tunnel / venue VPN, or (b) run this same single HTML file locally next to the collector — it’s fully self-contained, so both work with zero rebuild.
Will it work with the rig? — Receiver check
Pick what’s in the rack. This decides live vs. impossible in one step.
| System class | Live feed? | Path |
|---|---|---|
| Shure ULX-D / Axient | Yes | Network poll — RF, audio, battery, freq |
| Sennheiser EW-D / D6000 | Yes | Network poll / Sennheiser Control Cockpit |
| G4 with WSM | Partial | Via WSM data — RF + battery, slower rate |
| Analog, no Ethernet | No | No data exists to pull — hardware limit |
Plan — functionality to build
In priority order for a real show. The board already handles everything in the right column visually.
- 1
Collector v1 — read-only
Poll one receiver brand, publish the WebSocket stream, auto-reconnect. No control, only monitoring — safest first step.
- 2
Channel mapping
Map receiver channels → names / roles / photos (Daniel, Sarah, Pastor…) in a small config file the engineer edits per show.
- 3
Alerts that reach people
Same thresholds as this prototype (RF < −78, battery < 30 / 20%) plus a push / sound cue in the booth so a dropout isn’t missed.
- 4
Show mode for BCX
Read-only Green Room link for talent, Engineering link for FOH — same feed, different views, no login on the local network.
Later — only if wanted
Useful, but not needed for v1 to be genuinely live.
- Frequency coordination — import a scanned / coordinated frequency list and flag conflicts on the spectrum strip
- Recording / replay — log the whole show’s RF history to replay a dropout after the service
- Remote control — mute / gain from the board (requires write access — add only with a kill switch, like the Fairlight bridge plan)
- ProPresenter + NDI, real — replace the simulated clocks / cameras in Video Wall with the actual ProPresenter stage display and NDI sources on the same LAN
What I need from you
Three facts unlock the entire live build. Everything else is already decided above.
- ✓Hosted board — done. This site, shareable link, three views.
- 1Receiver make + model — a photo of the RF rack front + back (network ports) at BCX or CAC
- 2Network access — can a laptop join the same wired network / switch as the receivers during a show?
- 3Channel list — who’s on which mic for the show you want to run it on first
Send the rack photo and I can name the exact collector to build — Shure and Sennheiser need different pollers, and there’s no generic one that does both well.
Live feed tester — connect this board to a collector
This is real, working code in this page — not a mockup. When a collector is running, paste its WebSocket address here and the Engineering cards switch from simulation to the live stream.
Note: a public https page can’t open a plain ws:// connection to a private LAN address from home — that test has to happen on the show network (or with the board file running locally next to the collector). The “demo frame” button proves the live path inside this page right now.
Collector — what gets built
Small, single-purpose, runs on any spare laptop. Sketch for planning — brand-specific polling fills in once the rack is known.
- A
Discover
Find receivers on the LAN (fixed IPs recommended — set them once in the receiver menu so addresses survive power cycles).
- B
Poll
Every 250 ms read per channel:
rfDbmaudioDbbatteryPctfreqMhzantenna - C
Publish
Serve
ws://<collector-ip>:8765/rfwith the JSON frame above. That’s the whole API — this page is the only client it needs. - D
Survive the show
Auto-restart on receiver dropout, heartbeat in the feed status above, and a plain-text log file for after-show review.
BCX checklist — ask at the rack
- Receiver brand + model for every RF channel?
- Are receivers on a network switch I can plug a laptop into?
- Who owns RF coordination — can I get the frequency list?
- Is there a spare wired drop / switch port near FOH or the RF rack?
Data contract — every field on the cards, mapped to its real source
Nothing on this board is decorative. Each reading has a named source in a networked receiver, which is how you know the live version is a swap, not a redesign.
| Board field | Receiver source | Rate | Shure | Sennheiser |
|---|---|---|---|---|
| rfDbm | RF signal level, active antenna | 4–10 Hz | Yes | Yes |
| audioDb | Receiver audio output level | 4–10 Hz | Yes | Yes |
| batteryPct + ETA | Transmitter battery telemetry | ~1 Hz | Yes | Yes |
| freqMhz | Tuned frequency | On change | Yes | Yes |
| antenna A/B | Diversity antenna activity | 4 Hz | Yes | Yes |
| RF history graph | This page — rolling 60 s buffer of rfDbm | — | Built from the stream, no receiver support needed | |