Connect multiple IMU sensors to single Arduino

Hi all
I am looking to connect upto 3 gyro/IMU sensors to a single Arduino board. What I am trying to do it mount them in 3 different platforms, allocate the sensors name such as S1, S2 and S3. I want to be able to read IMU data from them via the arduino over serial port or log.

If this feasible? If yes, how may I go about achieving this?

Thank you in advance to all

Best Regards

A single MPU-6050 with I2C bus at 100 samples per second works well, and there is enough time to do calculations like a Kalman filter.
But if you want more, you will run into trouble. The MPU-6050 can select only two different I2C addresses, therefor you need some kind of hardware mux when three MPU-6050 sensors are on the bus.

The alternative is to use an Arduino board for each gyro/IMU and transmit the data to a serial TX line. The central unit could be a large Arduino Mega 2560 that collects the data and passes it on to the computer.

The MPU-6000 is the SPI version of the MPU-6050. That makes it easier to retrieve data from more than one sensor with one Arduino board. However, I don't know a good library for the SPI version and I don't know if a Kalman filter can be done for three sensors.

Hi Peter
Thank you very much for your inputs. Its starting to make sense. I was contemplating on creating a wearable sensor that can track my head’s movement (sensor 1) and two arms (sensor 2)

As I said, I am new to this hobby so I think I should spend some time reading up on I2C and SPI pluses and minuses

Also I shall look into the two types of sensors you have suggested and get back to this thread.

Thanks again Peter.


Buy a MPU-6050 from Ebay for a few dollars and test a few libraries with that. I think you have to see for yourself how noisy the data is, and how to get stable data with a filter that combines both gyro and acceleromter data.

You can find a lot technical info on Wikipedia.
The I2C is invented by Philips to be used inside TVs. It is a 100kHz serial bus with two signal lines. A device on bus has an address and the Master of the bus puts that address on the bus to address the Slave.
The SPI is a straightforward digital bus, with a clock, a data-out and a data-in. The clock can be 2MHz for example. A device is selected with a signal, the chip-select.

I'm on my tablet so you have to find the websites yourself:
Google for the most simple sketch to test it : arduino playground mpu-6050
Google for a full tested library :
Google for a Kalman filter (a link at the end of the first post is for the MPU-6050) : arduino forum kalman guide

If you stick with I2C devices, you can use a MUX to select which one you are talking with: