I want to use the BNO055 in NDOF fusion mode, and AMG non-fusion mode. I have saved the calibration profile (offsets and radius) in flash memory, and later I can read that calibration profile and write it into the BNO055 registers. I am aware that the offsets and radius vary depending on each sensor range, and that there is an autocalibration running in the background.
1. I have understood that autocalibration runs in the background only when using a fusion mode (NDOF). In this case, are all measurements reliable all the time? or the calibration status (sys or all) should be checked periodically?
2. To read the calibration status from the BNO055 registers, can the BNO055 be in the operating mode it will run in (NDOF / AMG), or it has to be in CONFIG mode?
3. The datasheet says that the BNO055 has to be in CONFIG mode to read the offsets and radius (I have not seen a different on the values when reading in NDOF mode). Does selecting CONFIG mode to read the calibration profile prevent offsets and radius from varying depending on sensor range? For example: if the BNO055 is running in AMG and the accelerometer is using 16G range, the value of the offsets and radius will not be the same as if it was using the default 4G range (as NDOF mode does).
4. Considering the procedure to reuse and configure the calibration profile (datasheet 3.11.5), is the following procedure correct?:
4.1 To save calibration data:
4.2 To reuse calibration profile:
*If AMG is selected: Check the calibration status of the accelerometer, gyroscope and magnetometer periodically (Is it necessary to also check the system calibration (sometimes it is = 0)?)
*If NDOF is selected: the autocalibration will run in the background, so there is no need to check the calibration status.
Thanks for any guidance you can provide!
Solved! Go to Solution.
Please see the following comments:
1. if all accuracy is 3, all measurements are reliable all the time. If the results are incorrect, we should check hardware or scenario or software algorithm,
Only think they are correct, otherwise we have no idea to know when the data are reliable.
The calibration status (sys or all) should be checked periodically
2. The calibration status can be read in all mode, but it only can be writed in config mode.
3. Like 2, only read. Recommend you to have a test.
4. The procedure of saving profile and loading profile don't be found abnormal, but still recommend you to verify them many times.
AMG mode only offer sensor raw without offset compensation, and in NDOF mode, you read AMG registers will get the data with offset compensation.
To get the reliable results, all accuracy are 3 shoule be considered before using sensor data.
Thank you for your reply. Please find my comments:
1."Only think they are correct, otherwise we have no idea to know when the data are reliable. The calibration status (sys or all) should be checked periodically"
So if there is not way to know if the data is reliable, why is it still important to check the calibration status periodically?
Let me rephrase my original question: Does it make sense to check the calibration status in NDOF if there is a calibration running in the background, which means that the sensors are always calibrating?
4. It would make sense in AMG mode to write offsets and radius stored in the Flash to the BNO registers when any status = 1 (for example), but in NDOF it makes no sense to write the offsets and radius because they will be changed by the offset compensation?
It wouldn't make sense to me, but I got confused because the datasheet mentions writing offsets and radius and then switching to Fusion mode.
“To get the reliable results, all accuracy are 3 shoule be considered before using sensor data.”
There are times where the calibration status of the sensors = 3 and sys stays in 0. Would you recommend just ignoring the sys status?