Detecting I2C addresses of two BNO055 sensors on Teensy 3.6

frodojedi

Member
I'm trying to use two Adafruit BNO055 sensors connected to two different I2C ports on a teensy 3.6.
The BNO055 sensor comes with a breakout board: https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sensor

I connected the two sensors to SCL0, SDA0 and SCL1, SDA1 respectively (i.e., pin 7, 8 and 18, 19).

I used the I2C scanner coming with the examples of Wire library (File -> Examples -> Wire -> Scanner) but I can get only the first sensor (on SCL0, SDA0): "Device found at address 0x28 (BNO055,EM7180,CAP1188"
The second sensor is not detected. How can I make the sensor visible to Teensy and get the second I2C address?
 
Thanks. I have just used the basic_scanner as well as the advanced_scanner of the i2c_t3 library but I don't get anything on the serial monitor, not even the first BNO055 that was displaying with the scanner from the Wire library. Any idea? I don't understand what I have to do. In the comments in the file there is a note "Pull the control pin low to initiate the scan." What does it mean exactly? What is the control pin ? Do I have to connect a button to Pin 11 and press it?
 
I actually connected the button to pin 12 and the scan now works. However, I get a strange behaviour: both sensors have the same address (0x28), detected on Wire and Wire1, despite indeed the fact that they are connected to the different I2C ports. Is that correct? Why?
 
The address is local to the bus, its set in the hardware of the device. If you have a device that doesn't allow selection of alternate I2C addresses you have to use multiple busses or an I2C multiplexer.
 
Back
Top