Is it possible to use multiple MPU9250s for data acquisition at the same time?

I want to use 10 MPU9250s in human motion capture, but how make all MPU9250 work at the same time so that make the data collected meaningful. The MCU what I use is RPi Zero, and transfer data using one I2C.

  • 1
    This has absolutely nothing to do with Arduino, so you should not have posted it here. Even if you were using an arduino as your MCU not a raspberry pi, this is really a question about the sensor, not the MCU. Likely you are going to have to spend some time understanding the DMP inside the sensor. Or else relax your requirement. The lack of a specific requirement for timing skew additionally makes your question unanswerable. – Chris Stratton Nov 28 '16 at 18:04

The I2C address of the MPU9250 is selectable (between 0x68 AD0 line LOW, and 0x69 AD0 line HIGH), so to use 10 sensors over I2C you could do the following:

  1. Connect the AD0 pin on each sensor to a Raspberry Pi GPIO digital output pin.
  2. By default have all GPIO pins set to output LOW
  3. When you want to read a particular sensor:
    • Set the GPIO pin for that sensor to HIGH
    • Communicate with that sensor on address 0x69 (all others are on address 0x68 so ignore the commands)

Of course, this will 'cost' you 10 GPIO pins.

Also, don't forget to set that sensors GPIO pin to LOW when you are finished with it (temporarily).

  • If i use this idea,there are 10 MPU, how make sure the collected data at the same time. If cannot at the same time,the data are unuseful. – Hysen Nov 29 '16 at 6:41
  • Not possible using this idea (which is reading sequentially). For reading them all at the same time you'd need each sensor connected to it's own MCU (likely something small like a ATtiny) – KennetRunner Nov 29 '16 at 9:34

Not the answer you're looking for? Browse other questions tagged or ask your own question.