04-15-2024 02:45 PM
Hi,
I'm currently evaluating your IMU BHI360+BMM350 thanks to your Shuttle Board 3.0 BHI360 in euler orientation mode connected to an esp32.
During my tests I noticed that the hard iron bias was corrected automatically, but not the soft iron bias, so I'd like to update the SIC matrix with the one I measured in my first setup:
SIC:
[[ 0.89044322 -0.00155992 0.00676591]
[-0.00155992 0.88054465 0.0088273 ]
[ 0.00676591 0.0088273 0.97750754]]
I believe I understand that the BSX internal binary data format is not public.
How can I update this SIC matrix to improve precision of my current test without the BSX internal binary data format ? Using this fonction from the API:
int8_t bhy2_set_sic_matrix(const uint8_t *sic_matrix, uint16_t matrix_len, struct bhy2_dev *dev)
And how can I do the same in the my next tests where this matrix will change because it will be integrated in a different setup ?
Best regards
04-25-2024 04:56 AM
Hi HeyRick,
Thanks for your inquiry.
If you already have a SIC matrix for your hardware, you can call the bhy2_set_sic_matrix() interface to update it.
The soft magnetic calibration matrix itself for each device is usually different and is generated by specialized testing equipment.
04-25-2024 11:00 AM
Hello, thank you for your reply, but what is the format of the sic matrix to be supplied to the bhy2_set_sic_matrix() function?
When I use bhy2_get_sic_matrix(), I get a sic_matrix of 72 bytes, so I've tried to provide a sic matrix in double format (9 doubles of 8 bytes = 72 bytes), but when I request the sic_matrix again with bhy2_get_sic_matrix(), it doesn't change.
Thank you in advance for your help.
04-25-2024 12:09 PM
Hi HeyRick,
sic_matrix does not have a publicly available format and is typically generated after calibration by testing equipment.
04-29-2024 10:28 AM
Hi,
So there's no solution for calculating and updating the sic matrix directly during the product's lifetime? Typically, our device operates close to an iron structure, and sometimes the iron structure changes and we have to recalculate an SIC by taking a sphere of points from the raw mag.
Is there another way to compensate the soft deviation in post processing of the Euler fusion output from bhi360 ?
Thanks