I have set up the magnetometer as per secton 18.104.22.168.3 in the BMX160 datasheet.
I am able to read consistent data from the DATA registers and convert that into MagX and MagY.
However when I rotate the PCB, and graph some sample points, this is what I get. It looks like it is saturating very quickly.
According to Table 4 of the datasheet the magnetic field range is +-1150uT. I compared with my phone to check the field in the area around the PCB and it is ~60uT, peaking at 140uT at the power supply 2ft away on the bench, either way it is well inside spec.
I dont see any settings for the range like the ACC or GYRO have, and the offset is only to do with the time between triggering and reading.
Am I missing something obvious? Is there a way to make this look more sinewavey?
Solved! Go to Solution.
I believe that you are using our github source as below.
https://github.com/BoschSensortec/BMI160_driver (For BMX160 general )
https://github.com/BoschSensortec/BMM150-Sensor-API ( For BMM150 )
And, I attached the my BMX160 source code. When I tested, it was okay.
Could you check with my code, and please let me know if you have further questions. ( The unit is uT)