Skip to content
Judah Paul edited this page Jul 13, 2026 · 8 revisions

Build

The reference build runs Canary Ground Control on a Raspberry Pi 4B mounted on a Holybro S500 V2 quadcopter, with the Pi wired to the flight controller over USB and online through a 4G modem on a public-IP SIM.

CanaryGC on the Holybro S500 V2

Components

Part Model Role
Companion computer Raspberry Pi 4B Runs the app and holds the link to the flight controller.
Airframe kit Holybro S500 V2 Development Kit 500mm quad: Pixhawk 6C flight controller, PM02 V3 power module, M10 GPS, SiK Telemetry Radio V3, 2216 920KV motors, BLHeli S 20A ESCs, 1045 props, ~915g.
Battery 4S 3000-5000mAh LiPo (XT60) Powers the airframe and, through the PM02, the Pi.
Camera Arducam OV5647 5MP 1080P day/night CSI camera on the Pi with automatic IR-cut for day and low-light video.
Modem Raspberry Pi 4G/LTE cellular modem kit Puts the Pi on the cellular network.
SIM Simbase public-IP SIM Gives the Pi a publicly reachable address.
FC link USB-A to USB-C cable Connects the Pi to the Pixhawk 6C USB-C port.

How it connects

The Pixhawk 6C plugs into the Pi over the USB-A to USB-C cable and enumerates as /dev/ttyACM0, a USB serial device carrying MAVLink. The production compose service maps that device into the app container, so the station talks to the autopilot with no extra radio.

The Arducam sits on the Pi's CSI port and feeds the WebRTC live feed through MediaMTX. See Configuration for the camera-source options.

Betaflight stack

Alongside the Pixhawk, the station connects to a Betaflight flight-controller stack, an HGLRC XJB F428. A Betaflight board speaks the MultiWii Serial Protocol (MSP) rather than MAVLink, so the app reaches it through MSP_SERIAL_PATH for telemetry and for firmware detection and flashing. See Firmware for flashing and board autodetect and Configuration for the MSP link.

Reaching the drone over cellular

Most cellular carriers place a subscriber behind carrier-grade NAT (CG-NAT): the SIM shares one public address with many others and the carrier drops inbound connections, so a browser cannot open a session to the Pi. A public-IP SIM, such as the one from Simbase, assigns the Pi its own reachable address. With it, the station is a plain web page the operator opens from any browser over the cellular link, with no VPN or relay in between.

Clone this wiki locally