Getting started
Install
Download from the Releases page:
| System | File | |
|---|---|---|
| Windows 10 / 11 (x64) | CORV.GCS.Setup.<version>.exe | Installer; you can choose the folder |
| Linux (x64) | CORV.GCS-<version>.AppImage | Portable: chmod +x and run |
| Debian / Ubuntu | corv-gcs_<version>_amd64.deb | sudo apt install ./corv-gcs_<version>_amd64.deb |
| macOS, Apple silicon | CORV.GCS-<version>-arm64.dmg | Drag the app to Applications |
| macOS, Intel | CORV.GCS-<version>-x64.dmg | Drag the app to Applications |
The macOS app is not signed with an Apple Developer ID, so macOS reports a downloaded copy as damaged. Clear the download flag once, after copying it to Applications: xattr -dr com.apple.quarantine "/Applications/CORV GCS.app".
To run from source you need Node.js 18 or newer:
git clone https://github.com/Xarin94/Corv-GCS.git
cd Corv-GCS
npm install
npx electron-rebuild # native serial-port module for Electron
npm start
A serial telemetry radio on Linux needs your user in the dialout group (sudo usermod -aG dialout $USER, then log in again).
First launch
The app opens on the FLIGHT DATA tab in demo mode: a simulated flight over Innsbruck, so the 3D view has something to show before any vehicle is connected. The loading screen waits for the terrain around the aircraft; it goes away by itself after a short timeout if the network is slow.
The tabs along the top:
| Tab | |
|---|---|
| FLIGHT DATA | The 3D view, the HUD and the command bar — see Flight screen |
| FLIGHT PLAN | The mission editor — see Mission planning |
| SETUP | Connection, calibration, failsafes, tuning, parameters, simulator, LiDAR, ROS — see Vehicle setup |
| SYS CONFIG | Flight stack, navigation mode, language, 3D model, HUD fields, offline data, stream rates — see GCS settings |
On the flight screen, the arrow on the right edge opens the side panel: set home, reboot, mute the GCS, ADS-B traffic, RTL options, a target, the message log and log replay. The window has no frame: move the mouse to the top edge for the minimise / maximise / close buttons.
Terrain and imagery
The 3D terrain is built from SRTM elevation tiles, one file per 1° × 1° square (about 25 MB at 30 m resolution, named like N47E011.hgt). The tiles under the vehicle are downloaded automatically when a network is available and kept on disk, in data/terrain next to the installation (in the per-user data folder when the installation folder is read-only). Without a network you can:
- put your own
.hgtfiles intopography/inside the installation folder, or pick a folder in SYS CONFIG → SYSTEM CONFIG → TERRAIN (HGT FOLDER) — from OpenTopography or USGS EarthExplorer; - download an area ahead of time in SYS CONFIG → OFFLINE DATA DOWNLOAD: a latitude/longitude box, the highest satellite zoom to keep, and the SRTM tiles under it.
Satellite tiles are cached as they are shown, so an area flown once works offline afterwards.
Missions, flight logs and LiDAR maps are written to a data/ folder next to the installation (data/missions, data/logs, data/lidar); under Program Files, where that is not allowed, they go to the per-user data folder. Custom aircraft models (.glb / .gltf) go in models/.
Choose the flight stack
SYS CONFIG → FLIGHT STACK → ENVIRONMENT tells the GCS which firmware it talks to:
| Choice | Link it suggests | What changes |
|---|---|---|
| ArduPilot (Copter / Plane / Rover / Sub) | MAVLink serial, 57 600 baud | Everything available |
| INAV | MSP serial, 115 200 baud | Missions upload as INAV waypoint lists; what INAV cannot fly is greyed out while planning; MAVLink-only setup pages are disabled |
| Betaflight | MSP serial | No navigation: the FLIGHT PLAN tab is disabled; telemetry only |
Connect a vehicle
SETUP → COMMS → CONNECTION:
| CONNECTION TYPE | Typical use | Default |
|---|---|---|
| MAVLink Serial | USB telemetry radio (SiK, RFD900, …) or the autopilot’s USB port | 57 600 baud (115 200 on USB) |
| MAVLink UDP | MAVProxy, mavlink-router, a companion computer, Herelink | 127.0.0.1:14550 |
| MAVLink TCP | SITL, also through WSL on Windows | 127.0.0.1:5760 |
| MSP Serial (INAV / Betaflight) | The flight controller’s USB or a telemetry UART | 115 200 baud; Slow link polling for long-range radios |
| MSP TCP (INAV SITL) | INAV’s simulator | |
| CORV Binary (Legacy) | The onboard CORV autopilot over USB | 460 800 baud |
SCAN lists the serial ports; CONNECT opens the link and requests the data streams. The FIRMWARE INFO panel shows what answered. A cellular module (LTEtelem) is connected from SETUP → COMMS → CELLULAR LINK instead — see Vehicle setup.
Once connected, the command bar at the bottom shows the link, the battery, the GPS and the flight mode, and the annunciators beside the speed tape flag anything wrong — see Flight screen. Before a first flight, work through the ArduPilot pre-arm checks and arming pages for your vehicle.
No aircraft at hand?
SETUP → TOOLS → SIMULATION downloads and starts an ArduPilot simulator with one click and connects to it — see Simulator.