SparkFun Forums 

Where electronics enthusiasts find answers.

Questions &/or issues related to products in the Qwiic category should be posted in this forum. To learn more about Qwiic, consider checking out our pillar page on the Qwiic system.
#208353
I would like to daisy chain multiple BNO080s. I used the example1_Basics from the SparkFun_ICM-20948_ArduinoLibrary-master and added a Processing program to watch the results using one BNO080.

Now I want to move on to having more than one of the BNO080s daisy chained together. I don't expect any problem modifying the Processing program to show the separate results. But, I'm starting from scratch when it comes to the daisy chaining. I looked through the IMU forum and did not recognize any Qwiic examples. The only thing I have seen on coding for daisy chaining is the topic titled "Daisy Chaining Quiic Twists - Dev-15083." Are Qwiic sensors similar enough that the Twist example is all I should need? If so, I'll dig deeper into it and try to pull out the relevant parts before asking more questions. If not, can someone please point me to a more relevant example (or the fundamental guide that will get me started)? I suppose a fundamental question is do I have to learn I2C (say from https://www.i2c-bus.org/i2c-primer/) and program this up from scratch, or is there existing code I could tag along and learn from?
#208462
Hi SlopeSurfer,

You can chain two of these sensors together on a single I2C bus by adjusting the "ADR" (or Address) jumper on the back of the board. The board ships with it open and the address defaults to 0x4B and if you close the jumper, it will switch the I2C address to 0x4A. If you want to use more than two of these over I2C, you will need a MUX like the SparkFun Qwiic Mux Breakout. That will allow you to have up to 8 devices with identical addresses on a single I2C bus. I would recommend reading through the Hookup Guide for that breakout to get a general idea of how to use it. The example in that guide is for a different accelerometer but you can apply the same theory used there to use it with a BNO080 breakout.

Another option to use multiple BNO080 Breakouts with a single microcontroller is to use SPI. This will allow you to have all of the sensors sharing the communication pins for SPI (MISO, MOSI and SCK) and then you can tie each BNO080's CS (Chip Select) pin to an available I/O pin on your microcontroller to pick which breakout you want to talk to. We do have a few SPI Examples in the BNO080 Arduino Library if you want to try using SPI instead of I2C. Just be aware that you will need to solder to the BNO080 as you cannot use the Qwiic connectors for SPI communication.

I hope this helps you get started using multiple BNO080 Breakouts with a single controller. Let us know if you have any other questions or issues and we would be happy to help as much as we can.