02-01-2021 07:57 PM
Hi everyone,
I worked on BMX160 IMU last few days, Till now i am able to get Raw readings of it like ACC(X,Y,Z),GYRO (X,Y,Z)and MAG(X,Y,Z) sensor.
I confirmed raw readings of ACC and GYRO are correct or not by placing sensor at rest state and then raw readings are came like acc: 0,0,-/+1 and
gyro: 0,0,0.(datasheet page no:106) but i didnot find any thing which is related to confirm Raw MAG readings are correct or not?
And also i converted Acc and Gyro raw readings in to gravity,m/s^2 by using below formulas,
//Here 2 is for 2g and 32768 for 16 bit value because ACC raw data is in 16 bit value
Ax = (acc_raw_x * 2)/32768;
Ay = (acc_raw_y * 2)/32768;
Az = (acc_raw_z * 2)/32768;
//Here 250 is for 250dps and 32768 for 16 bit value because Gyro raw data is in 16 bit value
Gx = (gyro_raw_x * 250)/32768;
Gy = (gyro_raw_y * 250)/32768;
Gz = (gyro_raw_z * 250)/32768;
1) Can you please help me to find MAG Raw data correct or not?
2) I am just reading raw data from six registers of MAG(0x04 -0x09)?is it correct?
3) In BMX160 Datasheet for reading MAG data procedure given like below attached imge
4) What is bmi160 API for doing above image task? i did not find any API in bmi160.c file like above image suggested ?
5) What king of fusion algorithm/filters can i use to find pitch,roll and yaw from above readings?
Please help me to come out of this issue.
Thank you,
Amarr
Solved! Go to Solution.
02-02-2021 08:07 PM
Hi,
Minhwan will get back to you shortly and keep supporting you.
Thanks.
02-02-2021 08:46 PM
02-02-2021 09:25 PM
Hello Amar,
Yes, you can get BMM150 data from BMI160 AUX interface as below url ( you mentioned already though )
https://github.com/BoschSensortec/BMI160_driver
However, it's not possible to contact your MCU and BMM150 directly in BMX160.
Please let me know if you have any questions.
Thanks,
02-03-2021 07:02 PM
Hi minhwan,
Thank you so much for reply, Now i understood about BMX160(BMI160(acc and gyro) + BMM150(mag)).
1) What is the max raw value we can get for MAG(x,y,z) as well as ACC, GYRO also at rest position or any testing/moving conditions?
2) can you suggest me any best testing procedure/way for magnometer?
3) If i conduct testing for MAG data, is YAW(Heading) only vary or Pitch, roll are also changed? if yes how much cutoff values(angle) we can accept for
them?
Thank you,
amarr
02-05-2021 01:19 AM
Hello Amar,
1. What is the max raw value we can get for MAG(x,y,z) as well as ACC, GYRO also at rest position or any testing/moving conditions?
- Our typical range is -+1300uT (x,y-axis), -+2500uT (z-axis)
2. can you suggest me any best testing procedure/way for magnometer?
- We recommend two self-test options. Please check page 16 in our datasheet. (Normal Self-test, Advanced Self test)
https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmm150-ds001.pdf
3. If i conduct testing for MAG data, is YAW(Heading) only vary or Pitch, roll are also changed? if yes how much cutoff values(angle) we can accept for them?
- For sensor fusion, only heading is affected by mag output. Pitch and roll is contributed by acc. For mag self test, there is no need of any movement of the boards. And during self test, no fusion data read out. Just give a pass or fail status for self test. For testing the mag output, checking heading deviation with reference device or Ture North direction is good option. Mag data affected by environment and even the component surrounding the sensors. So we can’t give a simple threshold to judge if mag sensor output is correct or not.
Please let me know if you have any questions.
Thanks,