Thanks for your inquiry. Sorry for the late response.
I am not sure about your application. But the process for BHI160B + BMM150 should be like below,
1. Design your own PCB so that BHI160B x/y/z are aligned with BMM150 x/y/z which means that they are orthogonal.
2. Install your PCB into your casing where you define your casing X/Y/Z body axes and make sure sensors' x/y/z are parallel to X/Y/Z axes.
3. Determine the axis remapping matrix for accel, gyro and mag with respect to casing X/Y/Z axes.
4. Input the remapping matrix to BHI160B every time after it is powered on.
5. BHI160B + BMM150 9DOF sensor fusion ENU is with respect to the casing body Y axis. As long as the axis remapping matrix are correct the sensor fusion results such as Euler angles, rotation vector, etc. from BHI160B + BMM!50 9DOF should be always correct for ENU.
6. In your MCU firmware you can always check the sensor calibration status. There are two bits for accel, gyro and mag respectively. 0b00 means that sensor is not calibrated. 0b01 and 0b10 mean that sensor is being calibrated. 0b03 means that sensor is fully calibrated and ready to go. Therefore, your MCU knows if the accel, or gyro, or mag needs to be calibrated or not. If yes, then your system can notify the user to perform figure-8 motion to calibrate the mag for example.
7. Repeat step 6.
... View more