BMM150 Calibration data and Range

Hi, 

I am using the BMM150 Magnetometer. The datasheet does not contain any information regarding the addresses of the calibration values that need to be read from the device to compensate the magnetometer output. These address reads can be deducted from the GitHub project, but it is still lacking a description of what each parameter is. Is there any application note or further documentation explaining this? 

Also would like to know why the datasheet states that the max range in the z-axis is +-2500uT but it gets saturated to +-2048uT when using the int16_t format compensation? I assume this will be clearer once I have more information regarding the calibration/compensation parameters. 

Thanks. 

Best reply by FAE_CA1

Hi,

I just used my eval. board and BMI270 shuttle board that has BMM150 installed. From the Windows GUI SW plot below, it can be seen that BMM150 z axis data (in red color) doesn't go beyond +/-2500uT when I place a strong magnet nearby. After I remove the strong magnet, BMM150 goes back to normal immediately. By the way, the GUI SW uses BMM150 API/driver on the Github.

Therefore, in theory when external magnet field is beyond BMM150 z axis +/-2500uT range, BMM150 z axis raw data should be fixed or clamped for saturation. However, if BMM150 z axis still outputs raw data when the external magnetic field is beyond +/-2500uT range and the API/driver still outputs values that are outside of +/-2500uT range, then BMM150 is still working but the performance is not guaranteed because each BMM150 is calibrated, trimmed and tested under +/-2500uT range in Bosch factory.

Thanks.

View original
7 replies
Resolved