Hi, Thanks for the prompt response. From what i understand, the output received from the bmm15_compensate functions can be converted to uT by usng the sensitivity of 16LSB/uT (it is done like that on the GitHub repo and suggested in datasheet). In the attached pdf "temperature calibration" you mention that 32-bit resolution can be used. This would, however, result in potential outputs in uT much larger than the datasheet specifies for the BMM150 device. For instance, for the Z-axis, the range is specified as +-2500uT. At +2500uT this result in a integeter output of 2500 * 16 (LSB/uT) = 40000. However, if 32-bit resolution is used, the integer output could be much higher than that. In the example code you give, you saturate in software to max of in32_t. How is this possible? Because a value of much higher than the range specifice of +-2500uT will then be received as output? Please help to clarify?
... View more