C++ C HTML QMake Objective-C Roff Other
Arne-W GraphView: Bugfix for flashlog crashing when no unit data available.
When opened a dataflash log without unit data the application crashed when trying to plot the time filed.
Latest commit 717ab8b Aug 12, 2018
Failed to load latest commit information.
Drivers Commit of APM/Pixhawk drivers, as well as OpenSSL installer downloade… Feb 19, 2014
avrdude Initial commit of APM2.5 Firmware loading config screen via Avrdude Jul 29, 2013
common build cleanups and bugfixes Sep 7, 2017
config.tests/has_flite build cleanups and bugfixes Sep 7, 2017
data ParameterList.xml in data. Jul 31, 2012
debian build cleanups and bugfixes Sep 7, 2017
deploy NSIS Script : Updates for Windows Jun 9, 2016
doc README was added to doc directory with inforamtion on how to run doxy… Jul 18, 2012
docker Build: Refactor docker directory, create Dockerfiles for different di… May 1, 2017
files Update ArduPlane config files, add for Rover and Copter Nov 8, 2017
libs Comms: Update mavlink library to mavlink 2 Jul 21, 2018
packaging Moved the resources subfolder to be outside the project folder Feb 24, 2014
qml APMToolBar Widget: Donate eval Fixes #1103 Mar 4, 2018
redhat Fedora 26 build scripts and spec files Jul 30, 2018
scripts Fedora 26 build scripts and spec files Jul 30, 2018
sik_uploader SiK_uploader fixed Mar 18, 2017
src GraphView: Bugfix for flashlog crashing when no unit data available. Aug 12, 2018
tools build: Add tools to patch Qt for Xcode3.0 Dec 13, 2016
uploader PX4Uploader: Update valid certificates Jun 4, 2015
.gitignore Build: Added files generated during build to gitignore (*.qmlc, .qmak… Jul 26, 2018
.travis.yml build: Update to 2.0.26-rc1 Feb 20, 2018
.vagrantconfig.yml Vagrant: add vagrant file Jul 2, 2017
APMPlanner.plist build: Update to 2.0.21 May 9, 2016
BUILD-EASY.md Create BUILD-EASY.md May 15, 2018
CONTRIBUTING.md GITHUB: add link and commit rules to CONTRIBUTING.md Jul 6, 2014
Installation instructions.rtf Build: Update Install Instructions Dec 18, 2014
QGCExternalLibs.pri Comms: Adapted/unified includes for mavlink 2.0 and made mavlink_stat… Aug 5, 2018
QGCSetup.pri build cleanups and bugfixes Sep 7, 2017
README.md Added missing change log generation step to README.md. Fixes #1128 Jul 26, 2018
Vagrantfile Vagrantfile: update for new dependencies Nov 8, 2017
apm_planner.pro Comms: Adapted code base to support mavlink 2 Jul 21, 2018
apm_planner_version.json build: update update file Oct 5, 2016
drmingw.exe Changes to include drmingw JIT debugger for assisting with debugging … Jan 15, 2014
exchndl.dll Changes to include drmingw JIT debugger for assisting with debugging … Jan 15, 2014
license.txt Added Windows icon and NSIS script from Hendrik May 8, 2010
mgwhelp.dll Changes to include drmingw JIT debugger for assisting with debugging … Jan 15, 2014
qgcunittest.pro Cleanup: couple of extra fixes to file removal Nov 20, 2016
qgcvideo.pro Working on video streaming Aug 15, 2011
qgroundcontrol.qrc Cleanup and remove old files Nov 20, 2016
qgroundcontrol.rc Change icon for the application, and also changed what serial port na… Sep 27, 2013
release_notes.txt build: update release notes and version object Mar 20, 2016
user_config.pri.dist Changed user config default options to maintainer-safe mode Dec 10, 2010


APM Planner 2.0

Travis CI Build: Build Status

Support: ardupilot.com Support Forum for APM Planner 2.0

Support is handled in the forum, we keep issues here known problems and enhancements

Developer Chat: https://gitter.im/diydrones/apm_planner


Credits: http://planner2.ardupilot.com/credits-and-contributors/

Waffle.io Progress Graph

Throughput Graph


see http://ardupilot.org/planner2/

Mac OS X

To build on Mac OS X (10.6 or later):

Install QT

  1. Download Qt 5.4.2 or greater (Does not work with Qt4.x)

    • you can verify the version by typing 'qmake -v' and it should report Qt 5.4.2 or greater as the version.
    • NOTE: Tested with Qt5.9.3 wth success
  2. Double click the package installer

Build APM Planner

  1. From the terminal go to the apm_planner directory created when you cloned the repository.

  2. Run qmake -spec macx-g++ apm_planner.pro

  3. Run make -j8


Building on Linux (tested against Ubuntu 14.04 LTS): (Use Qt5.4.2+ suggested Qt5.9.3)

(NOTE: There is an error in 14.04LTS with libxcb crashing sometimes, try this fix)

(NOTE: If you are using 14:04LTS or other linux and instructions below are not working do it 'The Easy Way')

  1. Install the required packages:

Be sure to run apt-get update first

sudo apt-get update
sudo apt-get install qt5-qmake qt5-default \
  qtscript5-dev libqt5webkit5-dev libqt5serialport5-dev \
  libqt5svg5-dev qtdeclarative5-qtquick2-plugin libqt5serialport5-dev \
  libqt5opengl5-dev qml-module-qtquick-controls
sudo apt-get install git libsdl1.2-dev  libsndfile-dev \
  flite1-dev libssl-dev libudev-dev libsdl2-dev python-serial python-pexpect

In Fedora (tested against Fedora 21), use:

sudo yum update
sudo yum install qt-devel qt5-qtscript-devel \
  qt5-qtwebkit-devel qt5-qtserialport-devel qt5-qtsvg-devel \
  qt5-qtdeclarative-devel qt5-qtquick1-devel pyserial python-pexpect

sudo yum install SDL-devel libsndfile-devel \
  flite-devel openssl-devel libudev-devel SDL2-devel
  1. Clone the repository in your workspace:
cd ~/workspace
git clone https://github.com/diydrones/apm_planner
  1. Build APM Planner:
cd ~/workspace/apm_planner
qmake apm_planner.pro
  1. Run APM Planner:
  1. Permanent installation (optional, if you'd like to install APM Planner in a fixed location)

There are two ways to do this:

a) Using Debuild:

cd ~/workspace/apm_planner/debian
./gitlog-to-changelog.pl > changelog

cd ..
debuild -us -uc -d

Then install the deb via

dpkg -i ~/workspace/apmplanner2_2.0.XX_YYYY.deb

Where XX is the version number, and YYY is your architecture. This method should add it to your launcher too.

If it does not install due to dependancies, you can resolve them with

sudo apt-get install -f

Then attempt to install again.

b) Using make:

cd ~/workspace/apm_planner
sudo make install

This will place the binary in your /bin/ folder and corresponding files in /share/


To build on OpenBSD 6.2

  1. install dependencies
pkg_add qt5 libsndfile sdl sdl2 flite py-serial py-pexpect openssl git
  1. Clone the apm_planner repo
git clone git@github.com:ArduPilot/apm_planner.git
  1. Build the project
cd apm_planner
qmake-qt5 apm_planner.pro

If the project compiled without errors you will find the binary in ./release


To build on Windows there are two options:

Install Qt with the online Qt installer:

  • You will be presented with a list of Qt versions and compiler options to install
  • You can install mulitple versions and compilers beside one another and choose which to use later
  • Select any one (or mulitple) of the following options,
    • Qt 5.5 MSVC2013 32-bit
    • Qt 5.5 MSVC2013 64-bit
    • Qt 5.5 MinGW 4.9.2 32-bit (also select the same version of MinGW under Tools)

Configure QtCreator:

  • The installer is pretty smart but it's good to double check everything was setup corretly
  • Start QtCreator
    • Click on the Tools menu item then Options
    • Select Build & Run on the left hand side
    • Look at the Compilers tab
      • Under Auto-detected should be a list of compilers installed, such as:
        • Microsoft Visual C++ Compiler 12.0 (x86)
        • Microsoft Visual C++ Compiler 12.0 (amd64)
        • MinGW 4.9.2 32bit
      • If using MSVC there will be a few others listed as well but that is normal
    • Look at the Qt Versions Tab:
      • Under Auto-detected should be a list of the Qt versions you installed earlier:
        • Qt 5.5.1 MSVC2013 32bit
        • Qt 5.5.1 MSVC2013 32bit
        • Qt 5.5.1 MinGW 32bit
      • If your desired Qt versions is not listed, or you installed one after the initial setup:
        • Click Add
        • Find the qmake.exe for the version you want
          • For example: c:/Qt/5.5/msvc2013/bin/qmake.exe
          • For example: c:/Qt/5.5/mingw492_32/bin/qmake.exe
        • Click Apply
    • Look under the Kits tab:
      • Under Auto-detected should be a list of the appropriate kits:
        • Desktop Qt 5.5.1 MSVC2013 32bit
        • Desktop Qt 5.5.1 MSVC2013 63bit
        • Desktop Qt 5.5.1 MinGB 32bit
      • If a kit with your desired Qt versions and/or compiler is not listed, or you installed a new Qt version or compiler after the initial setup:
        • Click Add, give it a nice name (like Qt 5.5.1 MSVC 32bit)
        • Select the desired compiler from the drop down
        • Select the Qt version (with matching compiler) from the drop down
        • Click Apply
    • Click Ok at the bottom of the window
  • QtCreator is now configured for fun

Build APM Planner 2.0:

  • Start QtCreator (if not already)
  • Click on File then Open File or Project
  • Find qgroundcontrol.pro, then click Open
    • The first time will ask you to configure project
    • Select the desired version (same list of Kits from above)
    • Click Configure Project
  • Go to Projects tab on the left hand side
    • Select the "Shadow Build" checkbox
    • Browse to a location where you want the application to build to
  • From the Build drop down select Build Project qgroundcontrol (or Ctrl+B)
  • Run the generated apmplanner2.exe and enjoy!

Installing this compiled version:

  • To Do

Repository Layout (2014-3-28: out-of-date, needs to be fixed)

	qgcunittest.pro - For the unit tests.
	qgroundcontrol.pri - Used by qgroundcontrol.pro
	qgroundcontrol.pro - Project opened in QT to run qgc.
	qgroundcontrol.qrc - Holds many images.
	qgroundcontrol.rc - line of code to point toward the images
	qserialport.pri - generated by qmake.
	user_config.pri.dist - Custom message specs to be added here. 
	Maps from yahoo and kinect and earth. 
	Install and uninstall for win32.
	Create a debian packet.
	Create .DMG file for publishing for mac.
	Audio test on mac.	
	Doxyfile is in this directory and information for creating html documentation for qgc.
	Has the audio for the vehicle and data output. 
			widgets and tool tips for pilot heading for the fixed wing.
			tooltips for quadrotor
				Different types of planes and one jeep. 
				The protocol for the fixed_wings and quadrotor and quadhil.holds info about the fixed wing yaw, roll etc. 					Quadrotor. Agian holds info about yaw, roll etc.
			Widgets for hexarotor. Widgets and tooltips for quadrotor.
			different vehicles. Seems to hold the different kinds of aircrafts as well as files for audio and the hexarotor 			and quadrotor.
			Has a lot of widgets defined for buttons and sliders.

	For the UI. Has a bunch of different images such as images for applications or actions or buttons.
	SDL is located in this direcotry. 
		Defines intteger types for microsoft visual studio. 
		Information about the library and to run the library on different platforms. 
	The files for the library mavlink. 
	Has the unittests for qgc
	Parameter lists for alpha, bravo and charlie. 
	Data for stereo, waypoints and radio calibration. 
	Code for QGCCore, audio output, configuration, waypoints, main and log compressor.
	apps - Code for mavlink generation and for a video application.
	comm - Code for linking to simulation, mavlink, udp, xbee, opal, flight gear and interface.
	Has other libraries. Qwt is in directory named lib. The other libraries are in libs.
	lib - qwt library
	libs - eigen, opmapcontrol, qestserialport, qtconcurrent, utils.
	input - joystick and freenect code.
	plugins - Qt project for PIXHAWK plugins.
	uas - Ardu pilot, UAS, mavlink factory, uas manager, interface, waypoint manager and slugs.
	ui - Has code for data plots, waypoint lists and window congfiguration. All of the ui code.
	Library called lxbee.
	Library called QSerialPort.