IMU data from Reach Kit

I successfully compiled spidev for Reach M+ (had to cross compile) but after running your script I got an error in at, self.spi_dev_number) calling. The error is “IOError: [Errno 2] No such file or directory”.

My question: are the spi parameters dependant of the Reach Model (M+ Vs RS+) or is it that there is no driver for the M+ ? I can’t find the files Igor talked about previsouly (/home/reach/MPUtest)…


I found the answer after using RTIMULIB and getting a look at the RTIMULib.ini file: on Reach M+, line 6 in should be “imu = MPU9250(spi_bus_number = 0 , spi_dev_number = 0 )”.

Now I wonder why magnetometer values are all 0.


Had to calibrate the magnetometer to receive non zero values.

RTIMULib fused output seems roughtly identical wether accelerometer, gyroscope and magnetometer are activated or only the accelerometer is. I expected the more numerous the inputs, the more precise the output. Through my tests it look likes the fusion only act has a low filter on the roll and pitch angles, reducing the acceleration effects for instance. Is it normal though that with all sensors activated the ouptut is not well compensated (10deg error when decelerating during a pure one axis translation)?

A quick warning for everybody who is using IMU data in their project. Emlid has decided to stop providing root access to M+ and other devices

This is already the case in the current dev build

It doesn’t seem to be possible to access the SPI device and the IMU with the new configuration.

I advise you to update to the new version carefully if this is a concern for you. The last working version AFAIK is 2.18.1 .

I just unwrapped and connected an RS2, availability of IMU data was one of my main reasons for buying it.

Do I read this thread correctly concluding that it’s impossible to get out IMU data a reach RS2 ?

I very much know Linux and programming. But without root access and without any userland exposed IMU data I can’t do anything here? Also no IMU data is exposed on an HTTP API or similar?


Hey there,

We’re looking into the possibility to provide IMU access now. I’ll update you once we have any news on this question.

Thank you!


I am holding off purchasing the M2 until we have IMU support. Hopefully it is soon, I build something else in interim.


Hey there,

We’ve released the v2.22.0 stable update that provides access to SPI for non-root users. Now you can get IMU readings from SPI.

I’d like to point out that we usually don’t recommend running custom scripts directly on Reach as we hardly can predict how it affects ReachView performance.

Check out this guide to update your Reach receiver.


Emlid guys, we really need IMU data for lever arm corrections. Without it the RTK precision is useless. The antenna phase center has to be recalculated for camera optical center. Please sort it put asap. Thanks!

One of the reasons we chose to purchase the Reach M2 was the integrated IMU. I understand that the Reach is a GNSS receiver and not an IMU, but it is a disappointment that IMU output is not supported!

We found a number of ways to integrate with the IMU, but they all look like they have poor results or are deprecated. Please consider pushing up the timeline for IMU support, it will dramatically increase the capability of the Reach devices!

For posterity, here is all the information I could find about IMU integration, for us they were largely dead ends and we are going to integrate with a different device for now.

1 Like

I was just wondering if this has gone anywhere? I am looking to setup monitoring sites based off the Reach M2 and the ability to access the internal IMU would save me having to install additional sites site or use a secondary IMU.

Hi James,

At the moment, we don’t support IMU in the software. Still, you can access its data over SPI if you have experience in working with Linux:

1 Like


I just purchased a reach m+ to review as a candidate RTK GPS/IMU sensor for our robots in the lab. However the complete lack of IMU support on device is to say the least unfortunate. Especially because it was advertised an having an IMU. This NEEDS to be a priority.

This could be easily done in a day or two by adding a custom NMEA message that spews out raw sensor data at 30-60hz. Don’t bother with sensor fusion at first.

If you not willing to provide IMU support that at least stop locking down the OS to prevent users from doing it themselves. Currently you provide access to the mpu9250 via exposing the spi bus in userspace using a cross compiled statically linked binary. However the Magnetometer on board is still not accessible as this requires i2c access.

Getting userspace data off the device is also problematic and only possible over wifi. I currently have an unused uart port on the reach m+ that would be ideal to efficiently offload data at low latency. Running the wifi is great during setup but not ideal during regular operations because of heat dissipation and interference concerns. Please consider adding the reach user to the dialout and i2c groups. (Just add a disclaimer that userland code will not be supported)

Other than this feature gap I think it is a great product. If fixed I would recommend to colleagues.

PHD Student
York University - Robotics Lab
NSERC Canadian Robotics Network


I’ld like to get access to the IMU-Data.
Anybody knows the user/password for logging in through ssh on the new firmware (2.22.5) ?
some searches on the forum reveal reach:reach, but I cannot get in with these.

Going in!

Andy - try user:root and password:emlidreach. But I am rusty now…

well root:emlidreach used to work up to the prior firmware. Now that root-access is disabled we need to log in with a regular user, but I cannot find working credentials :frowning:

Yes you are right - I just updated my devices to the latest firmware so forgive me.

Hi Andy,

You can use reach:emlidreach credentials.

Hello @tatiana.andreeva ,

It looks like on my RS2 the IMU on /dev/spidev0.0 is accessible for non-root users.
On my reach modules, the IMU is still on /dev/spidev5.1 but that is only accessible by root.
Could this be fixed as well?
(all running v2.22.5)

Sorry for the late reply, we have to separate node and we fuse the information later in a third node

Hi Andy,

Thanks for your patience with this request.

As we don’t support the IMU access in our software, it’s hardly possible for us to be of much help with the particular settings and IMU configurations. According to our tests, the IMU data should be accessible over SPI for non-root users on our devices. However, we can barely share more details on how it could be done.

to be sure we understand each other: I am aware of the changes on the IMU/non-root, and I did succeed in accessing the IMU-data on all my hardware, it’s just a problem with the new firmware on old Reach module. Info below shows there really is a permissions issue on /dev/spidev5.1


Not working:

1 Like