explaingit

mavlink/qgroundcontrol

4,582C++Audience · generalComplexity · 3/5Setup · easy

TLDR

A free desktop and mobile app for flying and planning drone missions, connect to any MAVLink drone, watch it on a live map, draw automated flight routes, and configure the flight controller settings before takeoff.

Mindmap

mindmap
  root((QGroundControl))
    Main activities
      Real-time flight control
      Mission planning
      Drone configuration
    Map features
      Live drone position
      Waypoint drawing
      Altitude settings
    Setup screens
      PX4 configuration
      ArduPilot configuration
      Sensor calibration
    Platforms
      Windows macOS Linux
      Android iOS
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Plan an automated survey mission by drawing a route on a map, setting waypoints and altitudes, and uploading the flight plan so the drone flies itself.

USE CASE 2

Configure and calibrate a PX4 or ArduPilot flight controller through a dedicated setup screen before the first flight.

USE CASE 3

Monitor a drone's battery level, GPS position, and sensor readings in real time on a live map during flight.

USE CASE 4

Build and customize QGroundControl from source to add features or adapt it for specialized hardware.

Tech stack

C++QtQMLMAVLink

Getting it running

Difficulty · easy Time to first run · 30min

Pre-built installers are available for all platforms, building from source requires Qt and takes significantly longer.

No license information is stated in the explanation.

In plain English

QGroundControl, often called QGC, is a desktop and mobile application for piloting and managing drones. It runs on Windows, macOS, Linux, Android, and iOS, and it communicates with the drone using a messaging protocol called MAVLink. If a drone's flight controller speaks MAVLink, which most consumer and professional flight controllers do, QGC can connect to it. The application covers two main activities: real-time flight control and pre-flight mission planning. During a flight you can see the drone's position on a map, monitor its sensor readings and battery level, and issue commands. For mission planning, you draw a route on a map, set waypoints, define altitudes, and then upload the entire flight plan to the drone so it can execute it automatically without constant manual input. QGC also handles the setup and configuration of the drone itself. It has dedicated configuration screens for two of the most widely used open-source flight controller firmware families, PX4 and ArduPilot. Through these screens you can tune flight behavior, calibrate sensors, configure radio inputs, and adjust safety settings before the aircraft leaves the ground. The project is fully open source and built with the Qt application framework, which is how it achieves cross-platform support from a single codebase. Developers can build it from source, add features, or adapt it for specialized hardware. A developer guide and build instructions are linked from the README. A user manual exists at docs.qgroundcontrol.com for those who want detailed guidance, though the README notes the interface is designed to be approachable without it. The license terms are documented separately in the repository.

Copy-paste prompts

Prompt 1
How do I create a survey mission in QGroundControl to map a rectangular field, setting the area, overlap percentage, altitude, and camera trigger interval?
Prompt 2
My drone runs ArduPilot and I want to tune PID values using QGroundControl. Walk me through the parameter editor and which values to adjust for roll stability.
Prompt 3
How do I connect QGroundControl on my Android phone to my drone via a UDP link over WiFi and verify telemetry is flowing?
Prompt 4
I want to add a custom telemetry panel to QGroundControl that shows a specific MAVLink message value. Where do I start in the source code?
Open on GitHub → Explain another repo

← mavlink on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.