MAVLab: an Android app that presents to QGroundControl as an ArduPilot-like vehicle (open-source teaching simulator)

Sharing a small open-source project that uses a standard MAVLink GCS as its ground station. MAVLab (Apache-2.0, Android) runs 6-DOF quad physics, a cascaded-PID autopilot with ArduCopter-style modes, and a MAVLink v2 UDP server — all on the phone. Unmodified QGroundControl and Mission Planner both connect to it (same-phone split-screen or desktop over Wi-Fi) and drive it as a vehicle: discovery, arm/disarm, takeoff/land with COMMAND_ACK, mission upload + AUTO execution with progress reported back, link drop/reconnect.

It’s a first learning layer for beginners before they graduate to ArduPilot/PX4 SITL — not a SITL replacement — aimed at low-connectivity classrooms (we’re based in Nairobi).

GitHub: GitHub - Labs-Ascend/MAVLab · GitHub
Download: Releases · Labs-Ascend/MAVLab · GitHub (v1.5.0 APK)
Technical report: MAVLab: A Phone-First Drone Digital-Twin Simulator for Flattening the Drone-Systems Learning Curve | Zenodo
Full write-up + QGC acceptance discussion (ArduPilot Discourse): MAVLab — a free, open-source phone-based drone simulator that connects to QGroundControl / Mission Planner (teaching tool + technical report)` - General - ArduPilot Discourse

If you know QGC internals: are there parts of the MAVLink surface we implement that are likely to break with newer QGC versions? Feedback welcome.