Edge uses a custom Emlid's ArduPilot build.
The building process is not that hard and is basically the same as for other ArduPilot-supported boards like Navio2.
We recommend cross-compiling as it is a fast and convenient way to get things done.
Where to get the code
You can find the sources in our Emlid ArduPilot repository.
The support for Edge in ArduPilot upstream repository will be added soon.
How to build
Here we will describe the process of building ArduPilot using cross-compilation on a Linux-based host machine running Ubuntu.
The additional information about the building process (including how-to for Windows) can be found in ArduPilot documentation.
First, install the required packages:
$ sudo apt-get install build-essential git
$ sudo pip install future
Now you have to install the appropriate compiler tools.
You can either install a generic Linux ARM compiler with
$ sudo apt-get install gcc-arm-linux-gnueabihf
or setup the Raspberry Pi's one using the instructions here.
Now it's time to download sources:
$ git clone https://github.com/emlid/ardupilot.git
$ cd ardupilot
Checkout to the particular branch we're using for Edge:
$ git checkout Copter-3.5.3-Edge
Update all submodules:
$ git submodule update --init --recursive
Create a convenient alias for ArduPilot's building software called
$ alias waf="$PWD/modules/waf/waf-light"
waf that we are building ArduPilot for Edge:
$ waf configure --board edge
And, finally, build the whole thing:
$ waf copter -j5
The additional information about
waf can be found on ArduPilot building instructions page on GitHub.
How to run
Transfer the compiled binary to your Edge (assuming that you and Edge are on the same WiFi network):
$ cd ./build/edge/bin
$ rsync -avz arducopter email@example.com:~
Perform an SSH connection to your edge with
$ ssh firstname.lastname@example.org
The default ssh login is
pi, password is
And run the freshly-compiled ArduPilot with
$ sudo ./arducopter -A udp:your_IP_address:14550
You can find your IP address with the
Now you should be able to connect your Edge to your QGroundControl and check that everything is fine.