05-30-2022 09:16 PM
I'm working thru a calibration issue I have where the SYS CABIB status is always 0 even when the ACC, GYRO & MAG are all 3
Looking closer at the offset data. After a POR everything is 0x00 except MAG radius (regs 0x69 & 0x6A which are 0xE0 & 0x01 resectively) which agrees with the datasheet
I then put the BNO055 into DNOF mode (OPR_MODE = 0xC0).
However, I found if I read the office regs for saving (after putting the BNO055 into CONFIG mode & waiting 30mS) the MAG_RADIUS regs are 0x00 0x00
So I wrote the following values into the offset & radius reg & read them back to ensure they wrote ok
3 x ACC_OFFSET 0x0001
3 x MAG_OFFSET 0x0002
3 x GYR_OFFSET 0x0003
1 x ACC_RADIUS 0x0004
1 x MAG_RADIUS 0x0500
then put the BNO055 into NDOF mode(OPR_MODE = 0xC0), await 10mS & switch back to CONFIG mode (OPR_MODE = 0x00), await 30mS then read the offset & redius regs back
3 x ACC_OFFSET 0x0001
3 x MAG_OFFSET 0x0002
3 x GYR_OFFSET 0x0003
1 x ACC_RADIUS 0x03E8
1 x MAG_RADIUS 0x0000
the ACC_RADIUS & MAG_RADIUS changed ? I would expect the MAG_RADIUS to be between 144 & 1280 (as stated in the data sheet)
06-30-2022 05:12 AM
Hi Digisolve,
Thank for your feedback.
I thinkd you could use software tool to generate SIC matrix by yourself first.
07-28-2022 05:19 PM
I've now used the MagMaster to collect the data from the 16bit signed MAG_DATA X Y & Z (0x0E thru 0x13). How to I convert the calc vault to place in the SIC & where does each value go?
07-29-2022 08:41 AM
Hi Digisolve,
You could refer chapter 3.11.4:
Multiply your floating-point matrix by the 14th power of 2 to get the matrix to be written into BNO055. Call this function to write SIC matrix.
struct bno055_sic_matrix_t
{
s16 sic_0; /**< soft iron calibration matrix 0 data */
s16 sic_1; /**< soft iron calibration matrix 1 data */
s16 sic_2; /**< soft iron calibration matrix 2 data */
s16 sic_3; /**< soft iron calibration matrix 3 data */
s16 sic_4; /**< soft iron calibration matrix 4 data */
s16 sic_5; /**< soft iron calibration matrix 5 data */
s16 sic_6; /**< soft iron calibration matrix 6 data */
s16 sic_7; /**< soft iron calibration matrix 7 data */
s16 sic_8; /**< soft iron calibration matrix 8 data */
};
BNO055_RETURN_FUNCTION_TYPE bno055_write_sic_matrix(struct bno055_sic_matrix_t *sic_matrix);