https://github.com/judahpaul16/canarygc
A web-based ground control station (GCS) for remote autopilot management via the MAVLink protocol.
https://github.com/judahpaul16/canarygc
ardupilot drone gcs iot mavlink plane px4 quadcopter raspberry-pi rc rover sitl uav
Last synced: 3 months ago
JSON representation
A web-based ground control station (GCS) for remote autopilot management via the MAVLink protocol.
- Host: GitHub
- URL: https://github.com/judahpaul16/canarygc
- Owner: judahpaul16
- License: mit
- Created: 2024-07-14T02:09:53.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-06T06:56:52.000Z (5 months ago)
- Last Synced: 2025-08-11T05:58:28.774Z (3 months ago)
- Topics: ardupilot, drone, gcs, iot, mavlink, plane, px4, quadcopter, raspberry-pi, rc, rover, sitl, uav
- Language: Svelte
- Homepage: https://hub.docker.com/r/judahpaul/canarygc
- Size: 62.1 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
β οΈ **Warning**: This project is in **early development** and is not yet ready for production use. Use at your own risk! **It is your responsibility** to understand the risks involved as well as the **laws and regulations** governing the use of unmanned aerial vehicles (UAVs) in your area. β οΈ

# π Canary Ground Control π‘



A web-based ground control station (GCS) for remote autopilot management via the [MAVLink protocol](https://en.wikipedia.org/wiki/MAVLink).

---
## π€ How Does It Work?
Unlike traditional GCS software, Canary Ground Control is a web-based application that runs on a Raspberry Pi--making it a part of the flight stack. This enables you to manage your autopilot from anywhere in the world, as long as you have an internet connection.

---
## β Why Not Just Use Mission Planner, QGC, or APM Planner β with Tailscale?
You might ask:
βWhy not just run an existing GCS (Mission Planner, QGC, APM Planner), and connect over Tailscale β either from a laptop, or running the GCS directly on the Raspberry Pi?β
> **TL;DR:**
> Traditional GCS software is designed for *desktop-based, short-range* semi-manual operation.
> CanaryGC is purpose-built for *embedded, LTE-connected, persistent, remote UAV control* β where every watt and packet counts.
### Running GCS on a laptop (with Tailscale to the drone):
1. **No Always-On Link**
The GCS must be running on your laptop. If your laptop disconnects (or sleeps), telemetry is lost.
CanaryGC runs *on the drone itself* β providing a persistent link, always available to any browser.
2. **Laptop Required**
You must boot a laptop and connect Tailscale. CanaryGC works from any phone, tablet, or computer β no special software needed.
3. **Tailscale Reliability**
VPN tunnels can be fragile over LTE or CG-NAT. CanaryGC supports public-IP SIMs or static tunnels with no VPN dependency.
---
### Running GCS **directly on the Pi** (with Tailscale + VNC / RDP):
1. **GUI Overhead**
Traditional GCS software (QGC, Mission Planner, APM Planner) is designed as a desktop GUI app (Qt/X11). Running it on the Pi requires installing and running a full desktop environment (X11 server, GPU stack, window manager). This adds CPU and memory load, increases system complexity, and draws more power β reducing flight time.
2. **Remote Desktop Limitations**
Accessing the Piβs GUI remotely (via Tailscale + VNC/RDP) requires constant encoding and streaming of the desktop image β adding CPU load, using bandwidth, and introducing lag. Over LTE links, this results in poor responsiveness and unreliable control β unacceptable for UAV operations.
3. **Battery & Performance Impact**
The additional CPU/GPU usage from running a desktop GCS and streaming remote sessions directly reduces battery life. It also impacts system responsiveness for other critical tasks (LTE modem handling, telemetry routing, camera streaming).
4. **Reliability Risks**
Desktop-based GCS apps are not designed for connection interruptions or lossy networks. VNC/RDP sessions can freeze or drop if connectivity is poor. Recovery often requires manual intervention β not ideal for autonomous or long-range flights.
5. **Increased Maintenance**
Installing and maintaining a full desktop stack and GUI-based GCS on the Pi adds software complexity, increases boot time, and introduces more failure points. Field systems should be simple and robust.
---
### Why CanaryGCβs Web-Native, Headless Design Is Better
CanaryGC is designed for **headless, remote-first UAV deployments**:
* It runs as a lightweight background service β no X11, no desktop.
* The Pi can run a minimal OS, saving power and booting faster.
* Users connect via a web browser β no VNC or desktop tunnels needed.
* The Pi streams only telemetry and control data β not full-screen images β making it far more efficient over LTE links.
* The interface gracefully handles network interruptions and reconnects.
* It works from any device (phone, tablet, laptop) with a browser β ideal for field operations.
---
## π Setup Script
### Production Deployment
```bash
curl -s https://raw.githubusercontent.com/judahpaul16/canarygc/main/contrib/setup.sh | \
bash -s --
```
### Local Testing with SITL
```bash
curl -s https://raw.githubusercontent.com/judahpaul16/canarygc/main/contrib/setup.sh | \
bash -s -- --simulation
```
### Install-Only (Without System Setup)
```bash
curl -s https://raw.githubusercontent.com/judahpaul16/canarygc/main/contrib/setup.sh | \
bash -s -- --install-only
```
---
## π License
This software is made available under the MIT License. See the [`LICENSE`](LICENSE.md) file for more information.