Desktop Ground Control Station for a custom STM32F405-based flight controller. Built with Electron, React, TypeScript, and Vite — aimed at flight monitoring, sensor calibration, PID tuning, telemetry visualization, flight logging, and firmware management, in the spirit of Mission Planner / QGroundControl but tailored to Falcon's own communication protocol.
See claude.md for the full product spec (pages, widgets, packet structure, commands, and roadmap).
- UI: React, TypeScript, TailwindCSS
- Desktop shell: Electron (via
electron-vite) - State: Zustand
- Charts: Recharts
- Maps (future): Leaflet / OpenStreetMap
- Comms: SerialPort (TCP/UDP/WiFi/LoRa planned)
- Node.js 18+ and npm
npm install
npm run devThis launches the Electron app with the Vite dev server and hot reload.
npm run build # Type-check and build the production app
npm run preview # Preview the built appsrc/
electron/
main.ts # Electron main process (window, IPC handlers)
preload.ts # Preload script (context bridge)
renderer/
index.html # Renderer HTML entry
App.tsx # Root React component / page navigation
main.tsx # Renderer entry point
styles.css # Tailwind entry point
types/
electron.d.ts # Renderer-side types for the Electron bridge
This project is in Phase 1 of the roadmap in claude.md: serial communication, dashboard, calibration, and PID tuning. The current UI is a navigational scaffold (Dashboard, Calibration, PID Tuning, Telemetry, Logs, Firmware, Settings) with a live dashboard mock; serial communication and the remaining pages are still to be implemented.
Serial settings (COM port, baud rate — default 115200) are configured from the Settings page. Dark mode is the default appearance.