ArduPilot is an open sourceunmanned vehicle Autopilot Software Suite.

This is the tutorial I am using to set up ardupilot on the beaglebone blue:

We are using ardupilot because we saw a youtuber by the name of rctestflight using it and it looked like it worked well(and it does).

Trademark — Dev documentation

In order to edit the ardupilot config access this file /etc/default/ardupilot also other settings are changeable in the file here: (for example console should be linked with the GCS’s (Ground Control Station’s) ip address)

Other possibilities exist, namely:

Switch -A  -->  "Console", SERIAL0, default 115200
Switch -B  -->  "GPS", SERIAL3, default 57600
Switch -C  -->  "Telem1", SERIAL1, default 57600
Switch -D  -->  "Telem2", SERIAL2, default 38400
Switch -E  -->  Unnamed, SERIAL4, default 38400
Switch -F  -->  Unnamed, SERIAL5, default 57600

Also, keep in mind that in order to connect with GCS the beaglebone blue will need wifi do this through the connmanctl. A problem sometimes is that the wifi is disconnecting I fixed this by connecting my own antena.

This file exists just in case you need to change some settings: /usr/bin/ardupilot/aphw

Lines 5 to 7 of the file switch on power to the BBBlue’s +5V servo rail – i.e. for when you’re using servos. Not necessary for ESCs.

Line 8 enables the PRU(programmable real-time unit).

To get ArduPilot going, choose which flavour you want and type ONE of these: (I have changed this process on my beaglebone blue)

sudo systemctl enable arducopter.service
sudo systemctl enable arduplane.service // no executable
sudo systemctl enable ardurover.service
sudo systemctl enable antennatracker.service /// no executable

After you reboot, your ArduPilot should inflate automatically. Look for the flashing red LED!

It’ll help to familiarise yourself with systemctl ( Some useful example commands:

sudo systemctl disable <name of service>
sudo systemctl start <name of service>
sudo systemctl stop <name of service>

Just in case the ArduPilot parameter settings files: /var/APM/{ArduCopter.stg,ArduPlane.stg,APMrover2.stg,AntennaTracker.stg}

I start my ardupilot through a .sh file, all it does is it calls the executable with the right parameters, this is where you should change the ip.

Download either Mission Planner ( for Windows or QGroundControl ( for Linux & Windows. Both these programs will connect to streams of MAVLink data coming over the network (via UDP on port 14550, for example) or over COM ports.

If you’re having difficulty establishing a link, look at the following:

  • Ensure you’ve opened the necessary ports in the GCS computer’s firewall. Perhaps even disable the firewall temporarily.
  • Be absolutely certain of the GCS computer’s IP address, because if you happen to be ‘dualing’ Windows and Linux on the same machine, routers will sometimes assign different IPs to each of the OSes.
  • If you’re getting a ‘port is already open’-type error, turn off the GCS software’s auto-connect feature, restart the program, and try again manually.
  • Remember that a server set to listen on the loopback address ( won’t see external nodes on your network.

To make sure you are doing it right this is my setup of connections also I am using the em-506 GPS and a simple reciever with ppm connected to the 3v3 and gnd and the sbus pins on the bbb like so:

After that open your GCS’s software and it should automatically connect with your computer. When I first started up the software I needed to calibrate some of the beaglebone’s sensors so if there are any difficulties consider re-calibrating the sensors.

You can re-calibrate by going onto your GCS: mine is QGroundControl; click on the top left icon, click on your sensor. and then follow the prompts to re calibrate.

1. click on icon
2. click vehicle setup
3. click sensors
4. choose
this is the accelerometer calibration as an example

I have also added this command: sudo ./ardurover -C /dev/ttyO1 -A udp: -B /dev/ttyO2 -F /dev/ttyO5

To run on startup because the services aren’t working for some reason: you can edit it with this: sudo crontab -e

Oh and this command aswell to power the power-rails: ./usr/bin/ardupilot/aphw

At the end all I need to run ardupilot is to ssh to my bbb and then run the ./ script.

If all works in the end you should end up with a red flashing led on your bbb and a neat looking ardupilot GCS.

the final product

One thought on “Ardupilot

Leave a Reply