Hello, I have two BNO080 sensors, and both are giving me i2c detection issues. I have tested them on an arduino mega, on teensy 4.0 and on arduino uno, but the were randomly detected and not detected, until now that I can’t seem to have them detected anymore
Would you please share an i2c scanner code that I could use to scan bn080 on i2c, for 1 of the arduino I mentioned above?
Then i would report the findings.
Is it possible that the 2 bno080 are stuck in some sort of freezing status that make the bno080 not detected anymore on i2c?
Optional Features
Pull-Up Resistor Jumper
The Qwiic VR IMU has onboard I2C pull up resistors; if multiple sensors are connected to the bus with the pull-up resistors enabled, the parallel equivalent resistance will create too strong of a pull-up for the bus to operate correctly. As a general rule of thumb, disable all but one pair of pull-up resistors if multiple devices are connected to the bus. If you need to disconnect the pull up resistors they can be removed by removing the solder on the corresponding jumpers highlighted below.
I am mounting on a teensy 4.0 , on 1 bus only, two bno050 and one bno080.
Do I need to remove pull-up resistors and from which of the 3 accelerometers?
Scanning…
Device found at address 0x28 (BNO055,EM7180,CAP1188)
Device found at address 0x29 (TSL2561,VL6180,TSL2561,TSL2591,BNO055,CAP1188)
Device found at address 0x4B (ADS1115,TMP102,BNO080,Qwiic Keypad)
Since you bought from Amazon, you’ll have to follow their returns policies if one of the modules doesn’t respond at all.
You should be able to have a few devices with pull ups attached but it does run the risk of odd behavior. You should only need one device to have pull-ups and the others disconnected. It could be worth a try before returning
Try connecting the non working BNO080 board to an Arduino Uno and use the Arduino IDE along with our library and example code to test it. If it’s still not working and you bought it directly from the SparkFun website, fill out the form [on this page with your order number and the URL to this forum post and we will see what we can do to help.
If you bough the board from a distributor of ours you will need to contact them to see if they can replace it.](Return Policy - SparkFun Electronics)
It works on the uno but not on teensy 3.2 or t33nsy 4.0
I am using this scanner code
// Arduino I2C Scanner
// Re-writed by Arbi Abdul Jabbaar
// Using Arduino IDE 1.8.7
// Using GY-87 module for the target
// Tested on 10 September 2019
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
#include <Wire.h> //include Wire.h library
void setup()
{
Wire.begin(); // Wire communication begin
Serial.begin(9600); // The baudrate of Serial monitor is set in 9600
while (!Serial); // Waiting for Serial Monitor
Serial.println("\nI2C Scanner");
}
void loop()
{
byte error, address; //variable for error and I2C address
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for (address = 1; address < 127; address++ )
{
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address < 16)
Serial.print("0");
Serial.print(address, HEX);
Serial.println(" !");
nDevices++;
}
else if (error == 4)
{
Serial.print("Unknown error at address 0x");
if (address < 16)
Serial.print("0");
Serial.println(address, HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000); // wait 5 seconds for the next I2C scan
}
The bno080 is detected on uno but not on teensy 3.2 or 4.0
Could you please fix your library for compatibility?
YellowDog is correct. Please also be aware that the scanner is not working on each and every board. Some board libraries will not send anything on I2C if there was nothing writing to send. The sending is only happening at endtransmission(). Don’t know about teensy library.
I found the bno080 very challenging to work with. Having issues also having the bno080 detected on an arduino leonardo.
For the teensy, I have times when the bno080 is detected and times when it is not. And the detection worked after I installed a modified i2c library for the teensy 3.2 that addresses issues with the bno080