Navio2: GPS + MPU9250

Hi there,

I got a Navio2 board and have a few questions regarding the GPS and MPU9250 modules:

  1. Why are the GPS, MPU9250 and LSM9DS1 are connected to one SPI interface? Why not connect each sensor on a different SPI interface?
  2. What is the micro-controller used for?
  3. What is MPU9250_INT used for? I’m assuming it sends interrupts when data is ready on the MPU9250?
  4. Is there any way to access the pinout of the raspberry pi from the Navio2 board? For example the SPI interface for the GPS, MPU9250 and LSM9DS1?
  5. For Ardupilot, What are the data rates that you acquire from the GPS and the IMU (MPU9250 or LSM9DS1)? Where can I find the code under Ardupilot project to interface and switch between GPS and the IMU?


@wfarid Hi!

  1. There are only two SPI interfaces available on Raspberry Pi. The second one is taken by the microcontroller.
  2. Microcontroller is used as a peripheral extender for Raspberry Pi - to generate PWM signals, read ADC values.
  3. That’s correct.
  4. Pinout is in the docs.
  5. MPU9250 is sampled at 1KHz, GPS data rate is 5Hz.

What do you mean by “switch between GPS and IMU” ?

Hi Mikhail,

Thanks for your answers! The follow-up to my questions is below:

  1. What about the LSM9DS1, is there an interrupt signal for it too? I don’t see that on the pinout.
  2. But how do I access the pinouts through the Navio2 board. Given the link that you provided and given that the connection map doesn’t give access to the SPI port on which the GPS and the IMUs are connected to, how can I connect the SPI interface to a logic analyzer for example?
  3. Under the Ardupilot project, I’m assuming that you switch the data acquisition between GPS and the IMU on the SPI interface (since both sensors are on the same interface with different chip selects), right? Could you point me to the files in Ardupilot where the Navio2 data acquisition takes place?


  1. There’s no interrupt for it.
  2. You can use a separator header with longer pins or solder to the bottom of pins on the RPi.
  3. SPI devices are handled in the code here.

(about 5.) PLease how can I change mpu’s samling rate using ardupilot??