Building for NAVIO2 on RPi3

Overview

These instructions clarify how to build ArduPilot for the Navio2 board on the Navio2’s RPi3 board itself using Waf build system. These instructions assume the RPi3 has already been setup according to the manufacturer’s (i.e. Emlid’s) instructions here.

Alternatively you can follow Emlid’s instructions on how to build from source found here.

Setup

Use an ssh terminal program such as Putty to log into the Navio2 board’s RPI3.

Note

On Raspbian Stretch, one of the Python requirements might be missing, so please install future by

pip install future

Clone ArduPilot repository

“Cloning” is git’s term for making a local copy of a remote repository (i.e. one held on the GitHub servers).

Developers should clone the main ArduPilot repository (if they simply want to download and compile the latest code) or their own fork (if they want to make changes to the source code and potentially submit changes back).

Instructions for commonly used tools are below but whichever tool is used, the URL for the source repo will be required. This can be found on the right side of the screen on each Github repository home page but in general the URL is:

  • https://github.com/ArduPilot/ardupilot.git for the main ardupilot repo
  • https://github.com/your-github-account/ardupilot for your fork of the ardupilot repo
../_images/APM-Git-Github-Clone.jpg

Cloning with the command line

  • open a terminal and navigate to the directory where you would like the clone to be stored

  • clone your fork:

    git clone https://github.com/your-github-userid/ardupilot
    cd ardupilot
    git submodule update --init --recursive
    

    or the main project repo:

    git clone https://github.com/ArduPilot/ardupilot
    cd ardupilot
    git submodule update --init --recursive
    

Install some required packages

If you are on a debian based system (such as Ubuntu or Mint), we provide a script that will do it for you. From ardupilot directory :

Tools/scripts/install-prereqs-ubuntu.sh -y

Reload the path (log-out and log-in to make permanent):

. ~/.profile

Now you should be able to build with waf as described in BUILD.md.

Add some directories to your search path (Facultative)

Note

ONLY if you didn’t run the install-prereqs script from previous step.

Add the following lines to the end of your ”.bashrc” in your home directory (notice the . on the start of that filename. Also, this is a hidden file, so if you’re using a file manager, make sure to turn on “show hidden files”).

export PATH=$PATH:$HOME/ardupilot/Tools/autotest
export PATH=/usr/lib/ccache:$PATH

Then reload your PATH by using the “dot” command in a terminal

. ~/.bashrc

Note

Waf should always be called from the ardupilot’s root directory.

To keep access to Waf convenient, use the following alias from the root ardupilot directory:

alias waf="$PWD/modules/waf/waf-light"

Configure

Choose the board to be used:

waf configure --board=navio2

Build

Now you can build arducopter. For copter use the following command:

waf --targets bin/arducopter

To build a helicopter, specify “arducopter-heli”. The following frame types are specified in the “Frame Type” item of the Mission Planner menu “INITIAL SETUP”.

Quad Hexa Octa Octa-Quad Y6  Heli Tri

In the end of compilation binary file with the name arducopter will be placed in ardupilot/build/navio2/bin/ directory.