Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SoClose Society

FPV Dashboard

Auto-detect, configure & manage your FPV fleet from the browser.
RadioMaster radios ยท Betaflight flight controllers ยท ExpressLRS โ€” without juggling three configurators.

CI MIT License Next.js 16 React 19 TypeScript PRs Welcome

FPV Dashboard โ€” USB auto-detection


Why?

Setting up an FPV quad means bouncing between Betaflight Configurator, the ExpressLRS Configurator, EdgeTX Companion and a file manager for the radio's SD card โ€” copying settings by hand and bricking things along the way. FPV Dashboard puts the whole workflow in one local web app:

  • ๐Ÿ”Œ USB Auto-Detection โ€” plug in a RadioMaster TX16S/Pocket, a Betaflight FC or DJI gear and it shows up, identified
  • ๐Ÿš Betaflight over serial โ€” read FC config via MSP, flash CLI batches directly (no Configurator needed), with server-side safety guards
  • ๐Ÿ—‚๏ธ EdgeTX SD management โ€” analyze the card, health-score it, inject ready-to-fly models using proper modelN.yml slots + models.yml index, automatic backups
  • ๐Ÿ“ก ELRS guides โ€” step-by-step firmware flashing and binding walkthroughs
  • โš™๏ธ Config templates โ€” battle-tested EdgeTX + Betaflight configs for RadioMaster ร— iFlight Nazgul / Darwin Hulk 2 combos, binding phrase included
  • ๐Ÿ”ง Motor testing โ€” visual layout, per-motor spin test, abortable, throttle-capped server-side
  • ๐ŸŽฎ Simulator setup โ€” Liftoff / VelociDrone / Uncrashed with per-radio axis mappings
  • ๐Ÿ“– Beginner guide โ€” 17 safety-first tips (props off, failsafe DROP, LiPo storage...)

Screenshots

Drone control Radio SD analyzer
Drone tab โ€” live FC status, motor test, CLI flash Radio SD tab โ€” EdgeTX card analysis and injection
Config templates Simulator setup
Templates tab โ€” EdgeTX + Betaflight configs per combo Simulator tab โ€” axis mappings and setup guides
More screenshots

Flash ELRS tab Guide tab

Quick start

git clone https://github.com/SoCloseSociety/radiomaster.git
cd radiomaster
npm install
npm run dev

Open http://localhost:3000 โ€” plug in your gear and hit Scanner.

npm run build   # production build
npm start       # production server
npm test        # unit tests (95: MSP protocol, templates, guards, injector, mocked serial)
npm run lint    # ESLint

Desktop launcher

Launch the dashboard like a native app, without touching a terminal.

macOS โ€” installs "FPV Dashboard.app" (SoClose icon included) into /Applications; it starts the server if needed and opens the browser:

./desktop/install-macos.sh

Windows โ€” double-click desktop/windows/FPV-Dashboard.bat. USB device detection works through serial-port enumeration (COMn), and EdgeTX SD cards are detected by scanning drive letters. The full USB tree (system_profiler) remains macOS-only.

Stack

  • Next.js 16 (App Router, Turbopack) ยท React 19.2 ยท TypeScript 5.9 ยท Tailwind CSS 4.3
  • SerialPort 13 โ€” Node native module speaking MSP v2 (binary) and Betaflight CLI (text) to the FC
  • Vitest โ€” 95 unit tests, including a fully mocked serial port
  • Zero database โ€” JSON file persistence, atomic writes; nothing leaves your machine

Safety & hardening

This dashboard can spin motors and rewrite flight controller config, so the API is guarded:

  • CLI allowlist โ€” only known-safe Betaflight CLI verbs reach the FC; dfu, bl, erase, bare defaults are rejected server-side
  • Motor test cap โ€” motor commands are clamped to a low test throttle; full-throttle requests are refused
  • Port validation โ€” a client-supplied serial port must be one of the detected FC ports
  • Local-only โ€” mutating routes reject cross-origin browser requests (CSRF/DNS-rebinding guard)
  • Serial mutex โ€” MSP reads and CLI sessions are serialized per port; an auto-refresh can never corrupt a flash
  • Guaranteed CLI exit โ€” the FC is never left stuck in CLI mode (CLI blocks arming)
  • One Save Rule โ€” generated CLI batches contain exactly one save, as the last command
  • Backup before write โ€” SD card operations back up models before deleting or overwriting

Supported hardware

Category Devices
Radios RadioMaster TX16S, Pocket (full support) ยท Zorro, Boxer (detection)
Drones iFlight Nazgul Evoque F5D V2 (BLITZ F722) ยท Darwin FPV Hulk 2 ยท any Betaflight FC over USB (MSP read)
Link ExpressLRS (ELRS) 2.4GHz ยท CRSF ยท DShot600
Other DJI Goggles / Air Units (detection) ยท ELRS USB receivers (CP210x / CH340)

API routes

Route Method Purpose
/api/usb/scan GET Detect USB devices, serial ports, EdgeTX mount
/api/betaflight GET Read FC config via MSP
/api/betaflight/flash POST Send validated CLI commands to FC
/api/inventory GET/POST/DELETE Device inventory CRUD
/api/profiles GET/POST/DELETE Flight profile management
/api/templates GET Config templates for radio/drone combos
/api/edgetx GET Read EdgeTX SD card config
/api/inject GET/POST Inject models onto EdgeTX SD card
/api/analyze GET/POST Full SD analysis, backup, clean-inject
/api/simulator GET Simulator info and axis mappings

Roadmap

  • EdgeTX 2.8+ models.yml labels format
  • More radio targets (Zorro, Boxer, MT12 templates)
  • VTX table management (SmartAudio / Tramp)
  • Blackbox log download & viewer
  • Hardware-in-the-loop test rig

Contributing

PRs are welcome โ€” read CONTRIBUTING.md first (there are hardware-safety rules encoded from real incidents: a wrong resource pin once made Motor 4 vanish). Bug reports and feature requests via the issue templates.

If this project saves you a bricked FC or a lost weekend, a โญ helps other pilots find it.

Requirements

  • macOS for full hardware detection (system_profiler USB tree); Windows/Linux get serial-based detection
  • Node.js 20.9+ (Node 22 recommended)
  • USB cable for radio/drone connection

License

MIT ยฉ SoClose Society โ€” SOCLOSE PTE. LTD.

Keywords: FPV drone configuration, Betaflight CLI, MSP protocol, EdgeTX SD card, ExpressLRS ELRS binding, RadioMaster TX16S, RadioMaster Pocket, drone dashboard, quadcopter setup, flight controller flashing, FPV simulator setup.

About

๐Ÿš FPV Dashboard โ€” auto-detect, configure & manage RadioMaster radios, Betaflight FCs and ExpressLRS from a local web app. MSP over serial, EdgeTX SD injection, motor testing, ELRS binding guides.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages