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.