How to do BNO055 soft iron calibration?

Hi,

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.

Thanks!

Kyle

Best reply by Vincent

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.

View original
7 replies
Resolved