Ground control
Custom ground control station development
QGroundControl and Mission Planner cover general-purpose flying well. A custom ground control station earns its cost when the operator's job is narrower or different: one mission type done repeatedly, a specific payload, several vehicles at once, a training environment, or integration into an organisation's existing systems.
Extend an existing GCS or build a new one
QGroundControl is open source, written in C++ with a Qt/QML interface, and supports customised builds. Mission Planner is a Windows application written in C#, closely tied to ArduPilot. If your workflow is close to theirs, extending one is usually cheaper than starting from zero. Both are published under open-source licences that affect how a modified version can be distributed. (TODO: check the licence terms for your distribution model.)
Building new makes sense when the interface is fundamentally different: a single-purpose console with a handful of controls, a 3D training environment, or a browser-based tool. The cost of building new is reimplementing the protocol handling those projects already do well, so that part has to be done carefully.
What a ground control station has to handle
- Links: several links at once, reconnection, and an unmistakable indication when the link to a vehicle is lost.
- Vehicle state: flight mode, armed state, battery, GNSS fix quality and estimator health, presented so that a wrong state is obvious at a glance.
- Missions: planning, upload, download and progress, through the MAVLink mission protocol.
- Commands: confirmations for consequential actions (arm, take off, return to launch) and visible acknowledgement from the vehicle.
- Maps that work without internet, using offline tiles, because field sites often have no connectivity.
- Video from the payload, typically an RTSP or RTP stream, with latency kept low enough to fly by.
- Logging of telemetry for later review and incident analysis.
Designing for the operator
Operators work under time pressure, often outdoors, sometimes in poor light. The interface has to make the current state unambiguous and the dangerous actions deliberate. That usually means fewer controls on screen, a strong visual difference between normal and failsafe states, and confirmations that cannot be dismissed by reflex. Testing it with the people who will actually use it, against simulated failures, finds more problems than any amount of review.
Training simulators
A ground control station connected to a simulated vehicle instead of a real one becomes a training tool: operators practise on the real console layout without committing an aircraft. I built one of these for a client as a licensed desktop application. See the case study linked alongside.
Choosing a stack
Unity and C# suit desktop stations that need 3D views or training scenarios. Qt suits teams extending QGroundControl. A web front end suits dashboards that many people view at once; because browsers cannot open raw UDP sockets, a small backend service bridges MAVLink to the browser over WebSockets. The choice depends on who operates it, where, and on what hardware.
Have a project in this area? Tell me what you're building; I reply within two working days.
Start a project