Welcome to the ArduPilot Development Site

ArduPilot/APM is a open source autopilot system supporting multi-copters, traditional helicopters, fixed wing aircraft and rovers. The source code is developed by a large community of enthusiasts. New developers are always welcome! The best way to start is by joining the Developer Mailing List, which is open to all and chock-full of daily development goodness. Lurk for a while to get a feel for it, then participate!

Why the name?

The ‘Ardu’ part of the ArduPilot name comes from Arduino. The original APM1 autopilot board was based around the Arduino development environment. We’ve since outgrown the Arduino environment and no longer use the Arduino runtime libraries, although we do still support building the ArduPilot for the AVR based APM1 and APM2 boards using a slightly modified version of the Arduino integrated development environment. Because we now support more than just Arduino-compatible hardware (such as PX4) we are moving from “Ardu” prefix names for the software projects to the “APM” prefix (APM:Copter, Plane, Rover, etc), which signifies the cross-platform nature of the current code. A timeline history of ardupilot can be found here.

Supported boards

Supported AutoPilot Controller Boards provides an overview and key links for all the supported controller boards, including Pixhawk, PX4 FMU, Arsov AUAV-X2, APM2 etc.

The ArduPilot/APM source code is written on top of the AP-HAL hardware abstraction layer, making it possible to port the code to a wide range of autopilot boards. See this blog post for more information on the move to AP-HAL.

Project List

The ArduPilot (APM) system is made up of (or relies upon) several different projects which are listed below.  Those marked with an asterix (*) are peer projects that have their own owners outside the core ArduPilot dev team.

  • DroneKit (site) – APM SDK for apps running on vehicles, mobile devices and/or in the cloud.
  • Plane (wiki, code) – autopilot for planes
  • Copter (wiki, code) – autopilot for multicopters and traditional helicopters
  • Rover (wiki, code) – autopilot for ground vehicles
  • Mission Planner (wiki, code) – the most commonly used ground station written in C# for windows but also runs on Linux and MacOS via mono
  • APM Planner 2.0 (wiki, code) is a ground station specifically for APM written in C++ using the Qt libraries
  • MAVProxy (wiki) – command line oriented and scriptable ground station (mostly used by developers)
  • MinimOSD (wiki, code) – on-screen display of flight data
  • AndroPilot (user guide, code, google play) – android ground station
  • DroneAPI (tutorial, droneshare) – A developer API for drone coprocessors and web applications.
  • DroidPlanner2 (wiki, code, google play) – android ground station
  • QGroundControl is an alternative ground station written in C++ using the Qt libraries
  • PX4 (wiki) – designers of the PX4FMU and owners of the underlying libraries upon which Plane/Copter/Rover use when running on the PX4FMU
  • MAVLink (wiki) – the protocol for communication between the ground station, flight controller and some periphers including the OSD. A “Dummy’s Guide” to working with MAVLink is here.

Getting Started with ArduPilot Development

The main entry points for developing flight controller/antenna tracker and companion computer code are listed below.

For topics related to Ground Control Station development see:

RTF vehicles

How the team works

Development languages and tools

The main flight code for ArduPilot is written in C++. Support tools are written in a variety of languages, most commonly in python. Currently the main vehicle code is written as ‘.pde’ files, which come from the Arduino build system. The pde files are preprocessed into a .cpp file as part of the build. The include statements in the pde files also provide implied build rules for what libraries to include and link to.


ArduPilot (including Copter, Plane, Rover and MissionPlanner) is released as free software under the GNU General Public License version 3 or later.  See License overview wiki page here.

Didn’t find what you are looking for?

If you think of something that should be added to this site, please open an issue or post a comment on the drones-discuss mailing list.

APM open source autopilot