I'm trying to advise 5 project teams of college seniors working on robotic projects. We have a need for multiple IMUs on each robot. Two, maybe three. It looks like two of the Adafruit LSM6DS3TR-C + LIS3MDL - Precision 9 DoF IMU - STEMMA QT / Qwiic Product ID: 5543 can be bussed together on one I2C connection.
If that works, but I need 3 IMUs, then I need a processor board with two I2C sockets. Or, some adapter. Can someone help me validate this idea and identify the parts needed? At this point, I'm open to any processor type that has stock availablity.
Multiple IMUs
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- adafruit_support_mike
- Posts: 67454
- Joined: Thu Feb 11, 2010 2:51 pm
Re: Multiple IMUs
Use a TCA9548A I2C multiplexer:
https://www.adafruit.com/product/2717
It has eight switchable output buses, so you can use it to connect up to eight devices with the same I2C address to the same microcontroller. With appropriate switching, only one device is visible to the microcontroller at any moment.
https://www.adafruit.com/product/2717
It has eight switchable output buses, so you can use it to connect up to eight devices with the same I2C address to the same microcontroller. With appropriate switching, only one device is visible to the microcontroller at any moment.
- adafruit_support_bill
- Posts: 88096
- Joined: Sat Feb 07, 2009 10:11 am
Re: Multiple IMUs
It is possible to have multiple of the same devices on the i2c bus as long as they have unique i2c addresses. For example, the LSM6DS3TR-C has two possible addresses configurable by jumpers:
https://learn.adafruit.com/adafruit-lsm ... rs-3122168
https://learn.adafruit.com/adafruit-lsm ... rs-3122168
- sj_remington
- Posts: 998
- Joined: Mon Jul 27, 2020 4:51 pm
Re: Multiple IMUs
It is possible to have several of the same I2C devices on the bus, as long as the device has an address control pin. This is the case for the LSM6DS3TR-C + LIS3MDL (Product ID: 5543), which have ADG and ADM inputs, but they are not brought out to edge connectors, so you would have to make connections directly to jumper pads on the board.
Simply use extra processor I/O pins to control the address pins, so that only one of the devices is addressed at any one time. This is basically the same idea as the "CS" (chip select) pin on the SPI bus.
Simply use extra processor I/O pins to control the address pins, so that only one of the devices is addressed at any one time. This is basically the same idea as the "CS" (chip select) pin on the SPI bus.
Please be positive and constructive with your questions and comments.