First flight of Linux APM on Raspberry Pi 2 with Navio+

Hey guys!

Today we’ve made the first flight of Linux APM on Raspberry Pi 2 with Navio+.

Navio+ is an autopilot HAT that includes all the necessary sensors: U-blox M8N GPS/Glonass/Beidou receiver, MPU9250 3-axis gyro, 3-axis accelerometer and 3-axis magnetometer, MS5611 barometer, ADS1115 16-bit ADC for battery monitoring, PCA9685 PWM generator and an RGB LED.

Raspberry Pi 2 is a new quad-core version of the most popular single board computer in the world. It was clear that APM would benefit from higher processing power and as Raspberry Pi Foundation decided to stick to the HAT standard for their boards, Navio+ fits and works perfectly without any hardware modifications.  

How does it compare to the good old Model A+/B+? According to the benchmarks made by David Hunt RPi2 gave us about 7 times higher performance.

For real-time performance we fly on PREEMPT_RT patched kernel only. This time, compiling a stable kernel turned out to be quite a challenge. Raspbian for RPi2 is based on Linux 3.18 and at the time of release there was no RT patch for that version. Luckily patch came out just two weeks later, but there were some issues with the USB driver, so we had to spend some time to investigate and fix those. Finally, after everything was solved and after long nights of stress testing we took it for a flight test today.

Despite the strong wind copter behaves nicely, loiters steadily and overall is a lot of fun to fly.

New Raspberry Pi 2 gives clear advantages over the older model, we are able to run main loop at 400Hz without missing a single cycle.  This is what your PERF will look like if you fly RPi2:

Today Emlid team celebrates its first birthday, a year ago we have started the Navio project with an idea to fly on Linux. I would like to thank everyone who worked with us through this year and made all this possible. Special thanks go to our team members who work hard, but do not usually show up as authors of blog posts: Georgii Staroselskii, Egor Fedorov and Vlad Zakharov.

You can get a Navio+ here :)

Have a great weekend!

Views: 6283

Comment by Stephen Gloor on April 24, 2015 at 4:55am

Been smacked over the head with the obvious stick and of course the IP address for communication should be

This line should be:

sudo ArduPlane -A udp: -C /dev/ttyAMA0 > /home/pi/startup_log


python /usr/local/bin/ --master= --logfile=/home/pi/mav.tlog --out= --out=

In my case MavProxy is doing all the distributing of telemetry

Comment by JB on April 24, 2015 at 9:41am

Hey Steve Buddy

Just got my Navio in the mail at home today as well...but now I'm in Germany so I can't play with it! Why did you go with the RasPi 2 instead of the odroid C1 this time? We should catch up one day again for a fly once I'm back.



Comment by Stephen Gloor on April 24, 2015 at 5:40pm

I went with the RasPi because Emlid has the image for it and I could not wait for the C1.  The RasPi 2 is pretty fast and runs everything OK.

Comment by Jake H on July 22, 2015 at 4:10pm

Thanks for sharing this.  Exciting stuff!  

With the Navio+ board on, is it possible to have a pi camera plugged in to the pi2?

Comment by Emlid on July 28, 2015 at 11:51am



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

Join DIY Drones


Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service