4x BNO85 IMU to transmit to Pico W

Hi there,

I’d like to connect four BNO85 IMUs to transmit information to one Pico W. Currently I have two connected (using I2C). I will also need two of these BNO85 IMUs to send to another Pico W via I2c (this second Pico W will be the same set up).

Here is the current initialisation code for the 2 IMUs:

i2c1 = busio.I2C(board.GP27, board.GP26, frequency=800000)
bno1 = BNO08X_I2C(i2c1)

i2c2 = busio.I2C(board.GP9, board.GP8, frequency=800_000) # Adjust SDA and SCL pins for IMU 2
bno2 = BNO08X_I2C(i2c2)

Hey Mitchell,

It sounds like you have already run into the issue of the BNO85’s only being able to use 2 I2C addresses. My understanding is you are using two Pico W’s that both are connected to 2 BNO85’s and your intention is to have one of these Pico W’s to send this data back to the other one. This would mean that by using two Pico W’s you could get around the I2C address limit of the BNO85’s.

If I have interpreted your question correctly I suggesting looking at this I2C Pico slave library for Pico to Pico communication. It may be useful for your project.

If I have otherwise completely misinterpreted your question please let me know and I will be happy to help where I can.

Thanks, Sam.

I think this is the product you need for that project:

It permits up to 8 I2C devices with identical addresses to be connected to a single I2C bus.

2 Likes

I will have 6 BNO85’s. Am wanting to have two seperate “devices” which will each read 4 BNO85’s. Device 1 will read BNO85’s 1-4. And Device 2 will read BNO85’s 3-6.

Thanks for the info. So I could use 3x Pico W’s for the above set up? Is there a better solution? I don’t have to use a Pico W. Though I do also need 5x channels that I can output PWM through.

If you configure both of the Picos with the multiplexor and the sensors on one I2C bus, and then connect the Picos together using the library mentioned above on the other I2C bus, then that seems to meet your requirements. No need for a third Pico. Is there a reason you feel that this would not work?

1 Like