Emlid's Posts (33)


Recently several cases were designed for Navio+ and Raspberry Pi 2 by community members and we would like to share them in one blog post. Now you have what to choose from. We would also like to thank designers for their great work. So pick one you like and make sure to share the results with us!

Having a flat bottom or even special brackets for vibration dampeners they simplify mounting and will as well protect barometer on your Navio+ from sunlight and air streams

A very nice low profile case with ventilation slots and camera ribbon cut out.
Designer: Mauro Cancino
Technology: 3D Print
Link: click!

Case with antenna cable channel and mounting brackets for vibration dampening. It even includes a logo!
Designer: Pedro Alves
Technology: 3D Printing
Link: click!


If you do not have a 3D printer, make sure to check out this case made from an Adafruit Raspberry Pi case. 
Designer: Al_B
Technology: Modification
Link: click!


Ordering 3D printing is easy thanks to services like Shapeways.

You can also design your own case using Navio+ STL model. Feel free to join the discussion about the designs.

Read more…


Hi all!

We are glad to announce the start of crowdfunding campaign for Reach - compact and affordable RTK GPS receiver, capable of centimeter-level precision.

RTK is a widely used technology well-known in surveying and precision agriculture. Currently available systems cost thousand of dollars and are not affordable to hobbyist, makers and small businesses.


Reach has a tiny Linux computer inside, which runs open-source RTKLIB engine and has comprehensive connectivity options. Bluetooth, Wi-Fi, Serial, USB on-the-go - whatever your application is, integration would be seamless. Reach can be connected to the internet and work independently with NTRIP casters. Here is an example of Reach installed in a vehicle compared to a standalone GPS:


We are working on integration with Pixhawk and other APM based autopilots. Reach can be powered from autopilot port and will send accurate coordinates using NMEA protocol.


Great antennas are the key for RTK performance. Tallysman Wireless, an industry leading company in high accuracy antennas provided their latest advanced antennas for the project. These antennas receive Glonass G1, Beidou B1, GPS L1 and Galileo E1 signals as well as signals from corrections services.

The Emlid Reach program is an excellent example of the potential for huge reductions in cost available of precision RTK positioning systems. Tallysman’s Accutenna™ technology is a great match for the Reach product because it too provides high precision at new price levels.  Just as one wouldn’t expect a high quality image from an expensive TV receiver with a “rabbit ear” antenna, one should not expect the levels of precision the Reach product is capable of with a low precision antenna. Tallysman’s raison d’etre is production of high quality, high precision antennas at an affordable price for systems exactly such as the Emlid Reach product.

Allen Crawford – Director Marketing & Sales, Antennas and RF Products, Tallysman Wireless


Reach highlights:

  • Raw data receiver: U-blox NEO-M8T - 72 channels, output rate is up to 18Hz, supports GPS L1, GLONASS G1, BeiDou B1, QZSS, SBAS, ready for Galileo E1
  • Processing unit: Intel Edison - dual-core 500MHz
  • Connectivity: I2C, UART, GPIO, TimeStamp, OTG USB, Bluetooth, Wi-Fi
  • GNSS Antenna: external with MCX connector
  • Very compact: 25x35mm
  • Lightweight: 20gr


We are now funding the project on Indiegogo platform and early supporters can get an RTK kit with two receivers and Tallysman survey-grade antennas for just 499$.


Read more…


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!

Read more…




Some time ago we’ve released a new version of our Linux autopilot - Navio+. Main new feature is that Navio+ supports HAT standard and is compatible with Raspberry Pi models A+,B+ and also with… Odroid-C1. It is a new board from Hardkernel powered by quadcore 1.5GHz CPU with 1GB of RAM. Odroid-C1 sets a new standard for performance - it is fast, 10 times faster than Raspberry Pi and faster than most of the single-board computers on the market. It also features EMMC storage for high performance memory operations. Another benefit of Odroid C1 is that you can build APM on it in just 45 seconds.  


Here are the benchmark results for Raspberry Pi B+ and Odroid-C1 made by intorobotics.com:




The full comparison article is here.

Besides DMIPS, very important improved metrics are system call overhead and context switching that will positively affect real-time capabilities.

We’ve added support for Navio+ and Odroid-C1 combo in APM. The porting was mostly straightforward thanks to the APM’s HAL and as we already had the drivers for Navio+. As Odroid-C1 is a new board, not all required system features were implemented and we had to do some tuning. Luckily, Hardkernel team is very responsive and great in communication and helped us solve the problems as we found them.

Most of the features are implemented for C1 such as toolchain configuration, build target, IMU, baro, GPIO driver, RGB LED etc.

But we won’t be kept without work, a couple of things are still left to do:

  1. RT_PREEMPT kernel. The real-time patch doesn’t apply as smoothly as on Raspberry Pi’s Linux, so we’ll have to deal with that by manually applying the failed hunks.

  2. RCInput. This is a tricky part on Linux, but on Raspberry Pi it was solved by using DMA. We can go that way too, but Amlogic S805 has quite a few other peripherals we can use - unlike BCM2835 it’s got a lot of spare timers that can generate 1us interrupts. Datasheet was only released a couple of days ago and we’re currently exploring the possibilities.


APM’s port for Odroid-C1 is available here:


For now our main goal is to take Odroid-C1 into the air and we believe that many exciting projects will follow that will take advantage of incredible processing power.


Emlid team


Read more…


We are happy to announce the new version of our Raspberry Pi autopilot - Navio+, that was developed to run APM under Linux. With more than 300 Navios in the wild we’ve got plenty of feedback and now it is time for an upgrade. We have been so busy testing and flying it, that almost forgot to share our latest progress.

For those who never heard of Navio - Navio is a sensor and connectivity shield that allows to run APM’s Linux port directly on Raspberry Pi. Compared to the classic autopilot hardware it is more flexible and provides higher performance for additional tasks as well as for scientific and research purposes. For example, it is possible to perform GPS real-time processing or image recognition.

Full HD video from Raspberry Pi Camera Module can be streamed over long-range Wi-Fi or LTE thanks to the Raspberry Pi’s built-in hardware 1080p H.264 encoder.

To achieve better performance we provide Raspbian image with kernel patched by RT-PREEMPT patch from Ingo Molnar that allows for minimal latencies and real-time scheduling.



Here’s a list of main features of the new version:

  • New version is compliant with Raspberry Pi’s HAT standard, it fits both on Raspberry Pi Model A+ and Model B+. Our favorite combination is with Raspberry Pi A+, it is very compact and fits on a 250mm copter frame nicely.

  • Power module port for Pixhawk-compatible power modules. Power module provides clean power to Raspberry Pi and sensors from a Li-Po battery as well as current and battery voltage information.  

  • New GNSS receiver - U-blox NEO-M8N, latest generation multi-constellation receiver that supports GPS/Glonass/Beidou and provides better precision and higher update rate.

  • Triple source power supply with ideal diodes - now you can power your Navio+ simultaneously from power module, servo rail and Raspberry Pi’s USB. And if one power supply fails Navio+ simply switches to another.


And other improvements:

  • New MCX antenna connector for solid connection.

  • New RGB LED that looks much smoother.

  • Additional LED indicators.

  • Extended voltage range for PPM input - both 3.3V and 5V are supported.

  • AUX input\output for custom purposes.


Navio has already successfully driven rovers (Himoto Mastadon, Wild Thumper) as well as controlled copters (HobbyKing Spec FPV250 V2) and planes (Multiplex Easystar 2, Hobbyking Bixler 2).


You can get more information about Navio+ on our website - www.emlid.com

Best regards,
Emlid team

P.S. Check out the video of Navio copter fighting with an air flow above the table:


Read more…

Maiden drive of APM:Rover2 on Raspberry Pi with Navio


Hello guys!

We were fascinated by the idea of controlling a drone directly from Linux from the very beginning. Navio was created exactly with that purpose in mind. Your support let us finalize the hardware and get to running APM on Raspberry Pi with Navio. We have already showed our progress on drivers and making different parts work, but it was time to actually drive it. Seeing the thing finally make its first autonomous turns in an empty parking lot, even with not tuned PIDs is a large step forward in our project.

Many people already have received Navios and are looking forward to new possibilities with Linux based APM. We have prepared guides on proper setup of equipment:

Here’s the list of currently working features:

  • Onboard IMU - MPU9250 
  • Onboard barometer - MS5611
  • Onboard magnetometer - AK8963 (as part of MPU9250)
  • Onboard GPS - U-blox NEO-7M
  • RC output using onboard PCA9685 PWM generator
  • PPM input decoding using DMA GPIO sampling with pigpio library
  • External GPS over UART
  • External I2C magnetometer
  • Telemetry over USB or UART or WiFi
  • RGB status LED
  • Voltage and current sensing with ADC (ADS1115)

Some of these are still in the prototype state, but we hope to finalize them soon. Thanks to the APM’s HAL all drivers are the same for Rover, Plane and Copter, so the first plane flight on Raspberry Pi with Navio is not far ahead - we’ll make it as soon as we do some additional testing with rover.

Special thanks to Andrew Tridgell and APM team for their help along the way.


Best regards, 

Emlid team


Read more…



Indiegogo campaign for Navio is about to close in 14 hours. Emlid team would like to thank DIYdrones community for the support to our project - your feedback was very helpful to us.

For those who have missed our previous posts about Navio - it is a shield for Raspberry Pi that gives it all the necessary capabilities required for autopilot applications: MPU9250 IMU over SPI, MS5611 barometer, U-blox NEO-7M / NEO-6T GPS module, ADS1115 4-x channel ADC, PCA9685 PWM generator with 13 servo channels, PPM input, DF13 ports for extensions.

It’s main goal is to provide a convenient platform for development and promotion of drones with Linux control. But Navio can be used for any other tasks that require navigation and servo control.

Detailed description can be found on our Indiegogo page.

We have reached several stretch goals, and our supporters will receive additional accessories: a pack of DF13 jumper wires for connecting extensions and active GPS/GLONASS antenna. Also, all Navio boards will get an additional chip - FRAM memory for reliable non-volatile storage.

After the campaign we’ll keep our supporters updated on the manufacturing process.


Our website - www.emlid.com

Navio’s page on Indiegogo


Best regards,

Emlid team


Read more…

Navio: PPM to PWM on Raspberry Pi


To be used in autopilot applications Navio needs to decode RC input. Measuring each PWM channel requires multiple connectors and plenty of wires. PPM sum signal combines all PWMs from the receiver in one sequence, which could be transferred over single wire.

Most modern receivers output PPM, but if you have an older RC gear with only PWM output an encoder can be used. For the S.Bus receivers we are preparing a separate driver, however a S.Bus to PPM converter exists.

In case you want to run the code on Raspberry Pi without Navio please note, GPIOs on Raspberry Pi are not 5V tolerant. A divider is required to lower the voltage of the signal.

We use pigpio library that is capable of sampling GPIO with 1 microsecond resolution over the DMA. The application makes time marks of all edges both rising and falling and measures the delta time between them. If that time is the size of a sync pause, then it is the start of the cycle. After the start of the cycle it measures pulse lengths and stores them.

The acquired PWM values can be used in an application or transferred to the Navio’s onboard PWM generator as it is shown in the video.

PPM decoder GitHub

Navio Indiegogo campaign(Only 6 days left!)

Read more…



Hey guys!


With your help we have successfully funded the Navio campaign and reached three stretch goals. Everyone who pledged for Navio or Navio Raw board on Indiegogo will additionally get:

  • GPS\GLONASS antenna

  • Pack of DF13 wires

  • Onboard FRAM chip


We also plan to develop and release a special case for Navio that can be 3D printed and used to protect it.


Navio campaign is still active and you can get one for yourself on our Indiegogo page.


Navio was primarily designed to be used with Raspberry Pi, but there are a couple of alternative boards that duplicate the form-factor or Raspberry Pi and should also be compatible with Navio. These boards are:


Banana Pi


Created by Lemaker.org, the Banana Pi duplicates the layout and footprint of the Raspberry Pi and packs more power and connectivity. One of the downsides is that 26-pin header was moved closer to the RCA connector and to fit Navio properly you will have to desolder it. Actually, we remove RCA connector from Raspberries anyway to reduce the size.


SOC: Allwinner A20 Cortex-A7 Dual-Core clocked to 1GHz

GPU: ARM Mali400MP2


Ports: 1000Ethernet, SATA, HDMI, LVDS, CSI, 2xUSB host, 3.5 audio

Features: IR-receiver, CAN, OTG connector, Microphone, Power switch



Developed by Solid-Run, the creator of the CuBox product line with which the HummingBoard is similar in features. Design and layout are also the same as in Raspberry Pi, but even more powerful with quad-core processor and 2GB of memory.


SOC: Quad-core Cortex-A9 Freescale i.MX6 clocked to 1GHz

GPU: Vivante GC2000


Ports: 1000Ethernet, mSATA, HDMI, LVDS, CSI, mini-PCI-E, 2xUSB host, 3.5 audio

Features: Wi-Fi, Bluetooth, FlexCAN, Real-time clock, IR-receiver, SPDIF out

We are awaiting arrival of these boards and will post more information as soon as we test them.



Navio on Indiegogo

Emlid blog

Banana Pi


Read more…

NAVIO Autopilot for Raspberry Pi is on Indiegogo!

Emlid team proudly announces the start of pre-order campaign for Navio - autopilot shield for Raspberry Pi. That means that you can get a Navio for yourself at a very attractive price. Please visit Navio page at Indiegogo and watch our video. If you would like to support our project, please help us spread information about Navio.

Navio features:

  • MPU9250 - 9DOF IMU
  • MS5611  - Baro
  • U-blox NEO7-M / NEO6-T - GPS 
  • PCA9685 - 13xPWM 
  • ADS1115  - 4xADC
  • PPM/S.Bus input
  • DF13 SPI, UART, I2C
  • RGB led 

Best regards,

Emlid team


Indiegogo Navio

Read more…

NAVIO: high rate IMU on Raspberry Pi

Hey guys!

We made a small demo of IMU with NAVIO to show real-time performance of the platform.  The algorithm is Mahony quaternion based. The sensor is MPU9150 connected over I2C.

The IMU runs well over thousand of Hertz and takes around 20 percent of CPU. When running on typical for autopilots 200Hz update rate the load falls down to 4-5%, and when pumped up to 3000Hz takes almost 50%.

Raspberry Pi is able to perform other tasks while running an IMU, in the video we demonstrate that such heavy tasks as compilation do not affect the rate of the real-time IMU.

Also, there’s a PWM controller working simultaneously on the same bus, which can be seen by the LED changing colors.

In the final version of Navio we are using MPU9250 that is connected over SPI and can be polled at the full gyro update rate. 

For more information about the project please visit our blog at emlid.com

Read more…

NAVIO: RTK demonstration

Hey guys, we wanted to share a visual demonstration of  RTK GPS.  The demo was made with NAVIO board and Raspberry Pi running RTKLIB. Plots display how RTK GPS solution compares to a single GPS solution from the same receiver.

RTK is a type of differential GPS where two receivers are used - one is stationary and acts as reference station by calculating corrections and sending them to another receiver - rover, that can apply those corrections and increase the accuracy of coordinates.

Corrections in RTK are calculated based on carrier phase measurements and resulting coordinates can be accurate to millimeters. But unlike code cycles, phase cycles are indistinguishable and that creates a problem of integer ambiguity.

In RTK terminology there are different types of solutions:

  • Fix (green on plots) - Solution with fixed integer ambiguity (centimeter accurate).

  • Float (yellow) - Integer ambiguity is not fixed (accuracy floats, may be decimeters).

  • Single (red) - No differential corrections applied (meters accuracy).

RTK is a well-known technology in the field of geodetics, but commercial systems could cost a fortune.

NAVIO is equipped with a special version of u-blox NEO6 receiver - NEO6-T, which outputs raw GPS measurements. And as RTK is differential GPS - two receivers should be used, but one of them could be replaced by corrections from the internet.

We have conducted several tests with NAVIO boards. The antenna was placed on the roof of a vehicle and kept static. 


After that it was driven in a circular path.

RTK is an advanced feature and multiple factors influence quality of the solution - antenna, RF interference, satellite visibility. To keep track of the latter, we usually check ourselves with SatPredictor tool before going to the field. It creates a nice plot with quantity of visible satellites based on your area, date and elevation mask (common rule is to set it to 15deg).


We have different antennas, but usually use Tallysman dual-feed patch as it has very low noise figure and high gain. A rule of a thumb for good RTK performance is to have several satellites with SNR (signal/noise ratio) around 50. A good idea is to have the base permanently installed on the roof of your home or on the roof of club building at the field and broadcast corrections over 3G. This way you can share the base station with your friends and colleagues. Permanent installation would result in a more reliable and predictable satellite visibility. In some areas RTK corrections are already available from universities or other organizations, search for NTRIP servers nearby.

P.S. By the way, float solution does not mean bad solution.


We’ll post a tutorial how to set up RTKLIB soon, you can subscribe to our blog emlid.com or follow us on twitter to stay informed.


Read more…

NAVIO: Raspberry Pi autopilot


Hi guys!

Want to share what we have been working on lately, it is an autopilot shield for Raspberry PI. It is called Navio and has everything what you will usually find on an autopilot platform. A powerful platform like Raspberry gives many opportunities like streaming video, 3g,wi-fi, ethernet connectivity and possibility to run computation intensive algorithms like Kalman filtering or RTK GPS. RTK or real time kinematics is one of the main features of the board, it is equipped with a GPS capable of providing raw data output: carrier phase, pseudo-ranges and ephemeris. Processing this data against a stationary receiver increases GPS positioning accuracy to centimeters. A radio link between the two is required, but you anyway have it to GCS. If network RTK is available in your area, you can use corrections from the internet over 3G thus eliminating the need in second receiver.

Our plans include porting APM to Raspberry Pi + Navio.

MS5611 barometric pressure sensor
MPU9150 (MPU9250 on future models) 3-axis gyro, accelerometer and magnetometer.
ADS1115 16-bit ADC
PCA9685 PWM extender to control servos
u-blox NEO6T GPS module with raw data on SPI, we saved the only UART on raspberry for Xbee or different telemetry.
13 servo connectors
Pixhawk compatible UART, I2C and SPI connectors
RGB LED – just because we love them


What we wanted to know if there is any interest in platform like this, because we have everything ready for manufacturing and to keep the cost down we need to manufacture as many as possible. We have written tutorials how to use the board and are now preparing them for publishing, all code for the board will be released under open source license. Some more pictures and details are available on our website.

Read more…