I don't know how to calibrate the soft iron magnetic field interference.
I see the code `bno055_write_sic_matrix` and `bno055_read_sic_matrix`to configure the soft iron calibration matrix, but whenever I read the data in the sic matrix, it always: 0x4000 0x0000 0x0000 0x0000 0x4000 0x0000 0x0000 0x0000 0x4000, never change no matter how I move the sensor.
It seems the real-time mag calibration couldn't calculate the sic matrix, which makes sense, it needs many data simples and the sensor may have no enough RAM.
I know how to calculate the sic matrix but can I set the sic matrix myself with the API`bno055_write_sic_matrix`?
How the 1 in the unit matrix is 0x4000? If it is 16 bits float, is the result should be 0 01111 0000000000=0x3C00? 0x4000 is 2 by my understand.
Solved! Go to Solution.
The internal algorithm is not taking care of the soft iron calibration.
The API inteface is mainly used to set the SIC matrix into sensor.
If you already know how to calculate the SIC matrix, you can get this matrix then set into BNO055.
The scale of the SIC matrix register can be found in table 3-48 on page 52 of BNO055 datasheet.
Thanks for your answer, the datasheet I used is old version (V1.4) and doesn't include the sic information.
I already download the newest datasheet (V1.6) and find the solution.
Thank you again!
How do I calicated the SIC on the BNO055. IS this someing I can do as the designer, or do I need to get it calibrated at a lab?
To calibrate the SIC, you need some special test equipment like 3D coil.
If you have those test setup, you can directly do the testing and calculate the SIC by your own.