NAVIO+ Linux board with APM:Copter 3.3

Click here to skip the commentary and just see the vehicle flying.

The video above shows my first attempt (which was successful) to fly APM:Copter using a Linux board (the NAVIO+ shield + RaspberryPi2 from  Ardupilot and APM:Copter have flown before on Linux computers (Tridge flew ArduPlane Aug 2014, and Victor Mayoral first flew APM:Copter using an Erle-Brain board) but it was a first for me and is still fairly rare.

Compared to the Pixhawk the NAVIO+/RPi2 has enormous amount of CPU power (quad core 900Mhz) meaning it should be good for vision applications like red balloon popping, visual follow-me, precision landing and maybe wifi broadcast for real-time video all without the need for an extra companion computer.  We also hope the extra CPU will allow 4kHz sampling of the IMU which will nearly eliminate aliasing and the need for vibration isolation (we currently sample at 1kHz).

We don't yet take advantage of that extra computing power within ardupilot though so it flies much like an APM2 or Pixhawk with all the same flight modes and most of the same features.  A few things are not supported yet including the safety switch, external LEDs, buzzer and Optical Flow.

The setup for the board is more difficult than the Pixhawk, in particular upgrading to the latest version of APM:Copter involves logging into the RPi2 and then downloading and installing a package.  Alternatively you can download the firmware directly from the ardupilot github repo and compile it right on the board.  The emlid site has good documentation on this procedure.

During the setup I had some specific problems:

  • I did not use an external compass and the internal compass's offsets were huge (1000 on Y axis!) which required disabling the compass arming check.  Surprisingly though the IRIS flew fine even in Loiter and Auto modes.
  • The RC receiver is not powered from the NAVIO+ board meaning a BEC must be used (or I hacked an I2C cable and connected it to the servo rail) which is inconvenient for bench testing.  I hope in future versions of the board this is changed.
  • The two-board sandwich is taller than an APM2 or Pixhawk which meant I had to bend some pins to make it fit within the IRIS case (see pic below).  Perhaps a future version could include right angle headers.

On the software side there's still some work we need to do to improve the Linux experience so if there are developers out there who would like to help us with this, please contact the dev team on gitter or on  Linux is the future and we've got a lot of fun work to do!

Note: in the video I incorrectly say SBUS isn't support but it is supported!

Views: 5574

Comment by Rai on June 3, 2015 at 12:17am

Thanks for the review and information Randy!!

Comment by Thorsten on June 3, 2015 at 1:43am


this is awesome!
4kHz sampling sounds like a killer-feature.
The downside of this system is a high complexity and a higher weight. 
Another killer feature would be the possibility to switch over to a companion pixhawk in some failsafe case.


Comment by Linus on June 3, 2015 at 2:08am

Interesting times ahead i guess :)

Now i need a Navio+ for my rover ;)

Comment by Paul Meier on June 3, 2015 at 3:21am

Great try Andy, looking forward to do same with Pi camera and befinitiv video transmission method.

Would you please share how you insulated the navio i.e. 3DR/3M foam or other method ?

Many thanks in advance.

Comment by benbojangles on June 3, 2015 at 4:05am

Do you think the Pi is capable of running Ardupilot (Navio), Gstreaming video, object tracking, send & receive telemetry over Wifi or phone network (WVdial)? I mean, all of these things all together at the same time? Feels a bit crazy, but I guess it's never been tried.

Comment by Emlid on June 3, 2015 at 4:23am


Thank you for this great video and detailed comments!

Regarding the compass offsets, AK8963  has higher range and it looks like the scaling is off and pre-arm would not pass, but as only normalized measurements are used in the flight code it works fine. It is on our issue list.

We do not recommend SBUS as it significantly increases system load due to the way we do decoding, it generates more interrupts than PPM.  So using PPM will leave you more processing power to play with :)

Comment by Randy on June 3, 2015 at 4:52am

@Paul, I just used the 3M vibration foam that 3DR sells (because I had some).  I wished in this case that it was a little thinner because there wasn't much clearance for the board within the IRIS case.  Anyway, after bending some pins it all fit.

@benbojangles, Yes, I'm pretty sure that the RPi2 could handle running ardupilot, streaming video, object tracking and telemetry over wifi or the phone network all at the same time without any problem.  I didn't do a serious test but ardupilot by itself only consumed about 8% CPU on just a single core.  With 4 cores in total there was a lot of CPU left for everything else.

@Emlid, Ah right.  the compass scaling is off.  that totally makes sense and means it's not a flight critical issue.

Comment by Jiro Hattori on June 3, 2015 at 5:02am

@Randy, I am glad you have become on a same boat.

There something to be cared, do not want an issue for this very early stage experiment.

1) Compass offset of internal compass and do not support external I2C compass.

2) No S-BUS support that it is very narrow option for the receiver.

3) Sensitivity for interference on GPS, however very good accuracy of position

4) Optionally hope to support; streaming video, optical flow, lidar, pixy precision landing

Comment by Gary Mortimer on June 3, 2015 at 6:17am


Comment by Jason Franciosa on June 3, 2015 at 8:23am

We have 2 of these as well and they are very nice. Definetly a bit more work to get going than a pretty much plug and play pixhawk, but, i look forward to the advanced features and capabilties with such a powerful system!

I suspect we won't see too much development in terms of additoinal features on the master until pixhawk2 is released with similar increased processing power.


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service