RF Board.

Hosted site · Simulated feed
Clock--:--:--
Channels up–
RF health–
Lowest battery–
Service segment: Pre-service · next in 0:45
✓ Board reset — back to soundcheck: all batteries, RF histories, dropouts, segment and timer restored. Simulation is running again.
Channels monitored
10
8 in use · 2 spare / guest
Healthy
–
RF strong, battery fine
Warnings
–
Weak RF or battery under 30%
Dropouts (session)
0
RF hits below −90 dBm

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.

    Time now
    --:--
    Service segment
    Pre-service
    Countdown
    5:00

    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.

    CAM 1 · WIDEON AIRNDI · Stage wide — simulated feed
    CAM 2 · LEAD VOCALON AIRNDI · Tight — simulated feed
    CAM 3 · WORSHIP TEAMON AIRNDI · Choir loft — simulated feed
    CAM 4 · CONGREGATIONON AIRNDI · House — simulated feed

    ProPresenter · Clock

    --:--:--

    Countdown Timer

    5:00

    Service Flow

    Now: Pre-service
    Next: Opening worship

    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.

      How you use it this week at BCX
      Share this page’s link — it opens everywhere
      • 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
      Jump to feed tester ↓

      How do I hook things to it? — physical hook-up, in order

      You don’t plug mics or audio cables into this board. The board only watches data — audio keeps flowing receiver → console exactly as it does today. If you unplug the board, the sound never notices. You’re adding one small data network beside the audio, in about 10 minutes.

      1. 1

        Put a small network switch by the RF rack

        Any unmanaged gigabit switch (5–8 ports is plenty). Place it next to the wireless receivers and plug it into power. This switch is the meeting point for everything below — nothing connects to the internet or the house network.

      2. 2

        Cable each receiver to the switch

        One Cat5e / Cat6 Ethernet cable per receiver: from the receiver’s rear NETWORK / CONTROL / Ethernet port (not the audio XLR out) into any port on the switch. No Ethernet port on the back = that receiver can’t report data — see the Receiver check below.

      3. 3

        Cable the collector laptop to the same switch

        A second Ethernet cable from a spare laptop / mini-PC into the same switch. Turn its Wi-Fi off so it stays on the show network, and set its wired address to a fixed 192.168.1.50. This laptop runs the collector program — it’s the only new software in the chain.

      4. 4

        Give each receiver a fixed address

        In each receiver’s front-panel menu (Network → IP → Manual), set 192.168.1.101, 102, 103… one per unit, subnet 255.255.255.0. Fixed addresses mean the collector finds the same receiver in the same place every Sunday, even after a power cycle.

      5. 5

        Power up in order, then connect this board

        Switch first → receivers second → collector last. Wait ~30 seconds, start the collector, then on this page go to Live Feed Tester below, leave the address as ws://192.168.1.50:8765/rf, and press Connect to live feed. The badge at the top flips from SIMULATED to LIVE and the cards start moving on real data.

      What plugs where — at a glance

      FromCableTo
      Each receiver — Ethernet portCat5e / Cat6Network switch (any port)
      Collector laptop — EthernetCat5e / Cat6Same switch
      Receiver audio out (XLR)XLR — unchangedConsole / Fairlight, as today
      Booth / green-room screenWi-Fi or EthernetThis board’s link — or the same switch if you run the board locally
      AntennasCoax — unchangedReceiver antenna A / B, as today
      What you need in the room: the switch, one Ethernet cable per receiver + one for the collector, and the collector laptop. That’s the whole parts list.
      What you don’t need: internet at the rack, a cloud account, or any change to the audio path.
      Stuck? Work down the list: is the switch light on for that receiver’s port? Is the laptop’s Wi-Fi off? Do the receiver IPs and 192.168.1.50 share the same 192.168.1.x range? Those three checks fix almost every no-feed case.

      To undo a live connection, press Back to simulation in the tester — or press ↺ Reset board at the top of any view, which disconnects the feed and restores the soundcheck state.

      01 · On stage

      Wireless receivers

      Shure / Sennheiser networked receivers already know RF level, audio, battery, and frequency for every channel — continuously.

      →
      02 · On the LAN

      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.

      →
      03 · One stream

      WebSocket feed

      Collector publishes one simple JSON stream: { ch, rfDbm, audioDb, batteryPct, freq } — no accounts, no cloud needed on a local show network.

      →
      04 · This site

      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 classLive feed?Path
      Shure ULX-D / AxientYesNetwork poll — RF, audio, battery, freq
      Sennheiser EW-D / D6000YesNetwork poll / Sennheiser Control Cockpit
      G4 with WSMPartialVia WSM data — RF + battery, slower rate
      Analog, no EthernetNoNo 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. 1

        Collector v1 — read-only

        Poll one receiver brand, publish the WebSocket stream, auto-reconnect. No control, only monitoring — safest first step.

      2. 2

        Channel mapping

        Map receiver channels → names / roles / photos (Daniel, Sarah, Pastor…) in a small config file the engineer edits per show.

      3. 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. 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.

      Feed: SIMULATED — no collector connected. Cards are driven by the built-in simulator.
      Collector contract — each message is one JSON frame: { "channels": [ { "ch": 1, "rfDbm": -54, "audioDb": -18, "batteryPct": 82, "freqMhz": 512.125 }, … ] } Frames at 4–10 Hz. Unknown channels are ignored; missing channels keep simulating.

      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.

      1. A

        Discover

        Find receivers on the LAN (fixed IPs recommended — set them once in the receiver menu so addresses survive power cycles).

      2. B

        Poll

        Every 250 ms read per channel: rfDbm audioDb batteryPct freqMhz antenna

      3. C

        Publish

        Serve ws://<collector-ip>:8765/rf with the JSON frame above. That’s the whole API — this page is the only client it needs.

      4. 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 fieldReceiver sourceRateShureSennheiser
      rfDbmRF signal level, active antenna4–10 HzYesYes
      audioDbReceiver audio output level4–10 HzYesYes
      batteryPct + ETATransmitter battery telemetry~1 HzYesYes
      freqMhzTuned frequencyOn changeYesYes
      antenna A/BDiversity antenna activity4 HzYesYes
      RF history graphThis page — rolling 60 s buffer of rfDbm—Built from the stream, no receiver support needed