BNO055 Sensor Calibration reuse - magnetometer not calibrated

Der Bosch Sensortec Team

I'm testing a BNO055 shuttle board and I'm trying to reuse my calibration values after a Reset/Power-on.
To obtain the calibration values I run the BNO55 in NDOF mode and perform the calibration as described in this video.
I poll the calibration status registers with the corresponding function from the bno055.c driver:

bno055_get_accel_calib_stat(&a_status);
bno055_get_gyro_calib_stat(&g_status);
bno055_get_mag_calib_stat(&m_status);

and wait until all status register report status == 3.
To read out the calibration values, I set the BNO055 in CONFIG mode and call the function:

bno055_read_accel_offset(&a_offset);

 (same for gyro and mag) from the driver file. The calibration offsets are stored in non-volatile memory.

After a reset/power-on of the sensor I reconfigure the BNO055 using the previously obtained offsets by setting the operation mode to CONFIG mode, and write the offset values with:

bno055_write_accel_offset(&a_offset);

(same for gyro and mag). No error is reported from the driver.
Howerver, when putting the BNO055 into NDOF mode and then checking the calibration status registers with bno055_get_accel_calib_stat(...) (same for gyro, mag and system) I obtain these values:

  • Accel calib status = 3
  • Gyro calib status = 3
  • Mag calib status = 0
  • System calib status = 3

How can it be that the magnetometer is not configured after writing the corresponding offset values with the driver function? How is the system calibrated (system calib status = 3) but the the magnetometer remains uncalibrated?

 

Thank you for your support.

Best reply by Vincent

Yes, if the system calibration level is 3,  then sensor is ready to use

View original
4 replies
Resolved