New Project: Arducopter – Navio+

  • MPU9250 inertial sensor
  • barometer
  • Serial port
  • Raspberry Pi build configuration
  • Navio board configuration
  • GPIO driver for Raspberry Pi
  • RCOutput based on PCA9685 with 24.576 external oscillator
  • RCInput – uses pigpio daemon to sample GPIOs with 1MHz rate, should be rewritten to work without pigpio
  • MPU9250 built-in compass driver
  • U-blox GPS SPI driver
  • ADC based on ADS1115


Installing APM

Log in to your Raspberry Pi using SSH or other method, download the deb package with APM binaries using wget and install it. Deb package contains binaries that are compatible with Navio, Navio Raw or Navio+:

wget '' -O apm.deb
sudo dpkg -i apm.deb

If you’d like to build the binary yourself please proceed to the Building from sources.

Running APM

Supported vehicle types are: APMrover2 ArduPlane ArduCopter-quad ArduCopter-tri ArduCopter-hexa ArduCopter-y6 ArduCopter-octa ArduCopter-octa-quad ArduCopter-heli ArduCopter-single

To run APM binary type the following in your RPi’s console (change ArduCopter-quad to your vehicle type):

sudo ArduCopter-quad -A udp:

Where is the IP address of the device with the Ground Control Station – your laptop, smartphone etc.

Arguments specify serial ports (TCP or UDP can be used instead of serial ports) :

  • -A is for primary telemetry
  • -B is for external GPS
  • -C is for secondary telemetry (it can be used without primary telemetry)
  • -E is for secondary external GPS

When using UART for telemetry please note that default baud rates are: 115200 for primary (-A) 57600 for secondary (-C) 3DR Radios are configured for 57600 by default, so te simplest way to connect over them is to run with -C option. If you would like to transfer telemetry over the UART port on Navio you can specify it like this:

sudo ArduCopter-quad -C /dev/ttyAMA0

UDP and serial telemetry can be used simultaneously like this:

sudo ArduCopter-quad -A udp: -C /dev/ttyAMA0

Autostarting APM on boot

To automatically start APM on boot add the following (change -A and -C options to suit your setup) to /etc/rc.local file on your Raspberry Pi:

sudo ArduCopter-quad -A udp: -C /dev/ttyAMA0 > /home/pi/startup_log &

Connecting to the GCS

APM Planner

APM Planner is a ground station software for APM. It can be downloaded from the

APM Planner listens on UDP port 14550, so it should catch telemetry from the drone automatically.


MAVProxy is a console-oriented ground station software written in Python that can be used standalone or together with APM Planner. It’s well suited for advanced users and developers. MAVProxy can be installed with pip:

pip install mavlink mavproxy console wp

To run it specify the –master port, which can be serial, TCP or UDP. It also can perform data passthrough using –out option.

<> --master --console

Where is the IP address of the GCS, not RPi.

Skip board voltage check

As Raspberry has no data about Navio board voltage, prearm check should be disabled as shown here. Pick « Skip Voltage ».

Voltage and current sensing

If you have original power module connected to Navio+, you can get battery voltage and curent readings from it. Simply press on the « Pixhawk Power Module 90A » in APM Planner to setup voltage and current measurement for APM: PM

After that you can check in full parameter list that:


CTRL+C to kill ArduCopter and run again using:

sudo ArduCopter-quad -A udp:

You should see voltage and current values. After that it works everytime.

Further configuration

As other APM configuration procedures are very similar for most APM-running autopilot hardware, please use the APM documentation.

Important: There is no need to perform « 4. Load Copter Firmware » step as APM is installed using deb package or binary on RPi with Navio. Also, frame type is selected by running the corresdonding binary as described above.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.