Worked with the BNO080 this autumn, roll is great. Had a lot of trouble with vibrations with the MMA, but the BNO doesn’t seem to be influenced by them.
Direction stable but I didn’t have enough time to make it point north when I was driving north.
Ended up using the pitch for roll because of the mounting position of the BNO. When I get the
calibration right for the compass, I’ll have to adjust that. Did one calibration and switched off the auto calibration. Should try once with autocalibration perhaps, see what happens.
I bought one when I saw CQuick’s post (Hillside combine installation and the BNO080 IMU)
He calculated the Euler angles in the ino , but the Sparkfun library will give you these as well:
//BNO080 init
if (aogSettings.BNOInstalled || aogSettings.InclinometerInstalled == 3)
{
Wire.setClock(400000); //Increase I2C data rate to 400kHz
myIMU.begin();
myIMU.enableRotationVector(50); //Send data update every 50ms
}
if (aogSettings.BNOInstalled)
{
if (myIMU.dataAvailable() == true)
{
float pitch = myIMU.getPitch();
float roll = myIMU.getRoll();
float yaw = myIMU.getYaw();
yaw_degrees = yaw * 57, 3; //180.0 / 3.14159265
if ( yaw_degrees < 0 ) yaw_degrees += 360.0;
yaw_degrees = 360 - yaw_degrees;
yaw_degrees16 = int(yaw_degrees * 16);
}
}
Works on a Nano with 4.3.10, with 1.5mtr cable and a levelshifter on the BNO side.