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!

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • @Stephen you can connect one over I2C (preferred) or to spare analog inputs. We have not yet flown with AS sensor, but this is scheduled and should work.

  • @Emlid - I am sure I asked this before however I have lost the reply.  What airspeed sensor is supported?

  • Thank you all for your kind words and support!

  • @Giuseppe Persechino

    Hi! I'm one of the Emlid team members. Thanks for your support!

    There is no need to use external compass in most cases, only if you have some specific setup. 

  • Great work,  I have just ordered my Navio+ board!

    I have only one question about copass.

    @Emild - you suggest the use of an external compass also for the navio+?




  • Just bought one - could not resist the $30 off

    I will run it on my Pi B for now and upgrade to the Odroid C1 when the kernel is ready.

    I think the 2016 challenge might see a few of these boards ....

  • Developer

    fantastic, really well done!

  • Thanks, but it is reasonable without Navoi+ ;-p

    Need to get one from Emlid.

  • My Raspberry Pi 2 without Navio+ runs like this.


  • Great work guys!
This reply was deleted.