Skip to content

UI Settings Page

OneSeventyFour edited this page May 14, 2026 · 2 revisions

UI: Settings page

System knobs. Organized into four top-level sub-tabs.

📷 Screenshot placeholder: the Settings page with the Dongle sub-tab open, showing brightness slider and serial config.

Tab 1 — Dongle

Knobs for the physical dongle box.

Brightness slider

Sets the LED brightness on the dongle (0–100). Saved persistently — survives daemon restart.

Transmit repetition count

How many times each 433fire command is bit-banged on the 433 MHz line. Default 6. Higher = more reliable on noisy channels but adds latency. Doesn't affect 2.4 GHz BYH receivers (those use auto-ACK with retries).

TX config (serial)

  • Serial port — same as system.dongle_port in systemcfg.json. Edit and save → daemon writes the config back, posts select_serial to itself, the bridge reconfigures.
  • Baud — fixed at 115200.
  • Protocol — currently only BKYD_TS_HYBRID.

Debug mode toggle

When on, both the daemon and dongle emit verbose logs. The dongle prints every received frame; the daemon echoes every serial line. Useful for diagnosing problems; expensive to leave on in production because it generates a lot of log volume.

Tab 2 — Receivers

Fleet-wide receiver configuration.

Broadcast fire duration

Set a fire_duration_ms (50–5000) and click Apply to all. Triggers fetch_receiver_config with fire_duration_ms set, without an ident — the daemon broadcasts to every connected BKYD_TS_24_1 receiver. Each receiver writes the new value to its NVS and ACKs.

The default fire duration is 1000 ms (one second). Shorter (~250–500 ms) saves battery but might not reliably ignite some e-matches; longer (~2000+) wastes battery and slows pause/resume. 1000 ms is a reasonable starting point.

Refresh all configs

Click Refresh to fetch every receiver's config (FW version, board version, fire duration, etc.) and update the SQL Receivers rows. Useful after firmware updates to confirm what's flashed where.

Tab 3 — Debug

Diagnostics surface.

RF Scan panel

Triggers an RF spectrum scan via scan_radio daemon command. Shows results as a histogram of channels (0–125) with hit count per channel. The recommended channel is highlighted.

Click Apply next to the recommended channel to update the dongle's rf_channel (refused if a show is loaded or armed).

Daemon settings

  • Receiver inactivity timeout — how long without contact = offline (default 30 s, range 60 s – 6 hr). Affects when the dongle marks a receiver offline in its internal state.
  • Command response timeout — per-command response window (default 100 ms, range 5–500 ms).
  • Clock sync interval — how often the dongle sends CLOCK_SYNC to receivers (default 2000 ms, range 50–30000 ms). Shorter = tighter clock alignment + more RF traffic.

The dongle clamps each value to its supported range; the post-clamp value is reported back as csim and shown next to your input so you can see if your request got bounded.

OTA Flash panel

The OTA flow. See OTA flashing for the full procedure.

Controls:

  • Receiver dropdown (online BKYD_TS_24_1 only).
  • File picker for the .bin.
  • Rate selector (250 kbps / 1 Mbps / 2 Mbps).
  • Start flash / Abort buttons.
  • Progress bar with phase, chunk count, throughput.

Tab 4 — Show config

Pre-fire safety + show defaults.

Protocol config

For each protocol (currently only BKYD_TS_HYBRID):

  • Min battery to fire (%) — the daemon's precheck rejects any cue whose target receiver has battery below this. Default 30%. Bump to 50%+ for important shows.
  • Require continuity — when on, every cue's continuity bit must be set or precheck fails. Most operators leave this off and watch the UI's continuity colors instead — false negatives on continuity (e.g. high-resistance bridges in cold weather) shouldn't block a show.

These changes write to protocols.BKYD_TS_HYBRID.config in systemcfg.json and are re-read on every run_precheck.

Default location

Sets the default lat/lng + zoom that the spatial layout map opens to for new shows. Useful if you always launch from the same site — saves you from panning across the world every time.

Implementation

src/components/settings/
├── SettingsPanel.jsx              # top-level tabs
├── BrightnessSlider.jsx
├── DebugModeToggle.jsx
├── TransmitRepetitionCount.jsx
├── TxConfig.jsx
├── ReceiverConfigSettings.jsx     # broadcast fire_duration_ms
├── DaemonSettings.jsx             # the three timeouts
├── RFScanPanel.jsx
├── OtaFlashPanel.jsx
├── ProtocolConfig.jsx             # min battery, require continuity
└── DefaultLocationSettings.jsx

Clone this wiki locally