03-13-2019 03:35 PM - edited 03-14-2019 02:31 PM
I am using the BNO055 sensor and I cannot seem to get the calibration to restore for Magnetometer MZ.
Here is how I get the calibration registers
On boot we restore it by...
Here is what is actually happening...
COM14: BNO055: Switching to Page 0
COM14: Calibration : 0, 0, 0, 0
COM14: System Status : System Idle
COM14: System Error : No Error
COM14: Restoring calibration values
COM14: Writing : 0 1 2 3 4 5 6 7 8 9101112131415161718192021
COM14: Writing : AXAXAYAYAZAZMXMXMYMYMZMZGXGXGYGYGZGZARARMRMR
COM14: Writing : 0500E7FFD3FF83F5360E8C21FFFF0000FEFFE8036E03
COM14: Read : 0500E7FFD3FF83F5360E0000FFFF0000FEFF00006E03
COM14: Calibration : 0, 0, 0, 0
COM14: System Status : System Error
COM14: System Error : Fusion algorithm configuration error
Notice the MZ (10-11/ 0x5F-0x60) offset is 8C21 however it for some reason will not be written.
Why not? All other registers are being written. I have tried single register writes by writing each register (0x55-0x6A) individually or in one mass write of 22 bytes. Both way will not write MAG_OFFSET_Z_LSB : 0x5F / MAG_OFFSET_Z_MSB : 0x60
Solved! Go to Solution.
03-13-2019 04:25 PM
I found BNO055_SIC_MATRIX_0 in the driver but it's listed as reserved 0x43-0x54. I tried to also save the SIC (soft iron calibration) and restore it with the other calibration values but that did not change the fact that MZ (0x5F/0x60) will not write.
03-14-2019 02:45 AM - edited 03-14-2019 02:02 PM
0x8C21 <- is not a valid value. This value is 8,648 decimal. The datasheet says the range of the magnetometer offset is +/- 6400 in LSB. I found that I can write 6400 without error but when writing 6401 (or anything higher) I get a system status or "System Error" and a system error of "Fusion algorithm configuration error".
Question is this... "How can the self calibration process of the NDOF mode write a value that is outside the minimum / maximum range?"
03-19-2019 02:07 PM
No updates? Does Bosch monitor this forum?
03-19-2019 03:32 PM
Hi BobbyCannon,
If a powerful magnet is mounted closeby to the BNO055, one can observe that the returned offset values are greater than 6400LSB as mentioned by you in an earlier post. The reason why the BNO055 does not accept these values back is to be investigated. Your query has been forwarded to our team but apart from confirming what you already know, there is no more information at this point of time.
Regards,
kgoveas