05-20-2019 03:17 PM
Hello,
I'm using the BMX055 IMU in an accessory for motorcycles. I started testing the IMU in our first prototype and I'm successfully able to read the data of ACC, GYRO and MAG via I2C.
However there are a couple of things that are not so clear to me:
1) I followed the procedure for the ACC fast compensation described at page 31-32 of the datasheet, that is:
- set the g range to 2g (write 0x03 in register ACC 0x0F)
- Set offset target for x, y and z, that in my case are x=0, y=0 and z=1g (write 0x20 in register ACC 0x37)
- Launch the calibration for x, y and z, that is, write in register ACC 0x36 the value 0x20, 0x40, 0x50, respectively
but it seems that it has no effect. Am I doing something wrong?
2) I'm not sure how to interpret the X, Y, Z and RHALL data of the MAG for a compass-like application. Is there any data processing/compensation I need to do? I took a look at some drivers/APIs on GitHub and I noiticed that there is a compensation. The thing is that the registers used to get the compensation values appear to be marked as "reserved" on the datasheet. Could you please clarify that?
Thank you in advance!
05-23-2019 04:42 PM
@GMASCIARDT wrote:1) I followed the procedure for the ACC fast compensation described at page 31-32 of the datasheet, that is:
- set the g range to 2g (write 0x03 in register ACC 0x0F)
- Set offset target for x, y and z, that in my case are x=0, y=0 and z=1g (write 0x20 in register ACC 0x37)
- Launch the calibration for x, y and z, that is, write in register ACC 0x36 the value 0x20, 0x40, 0x50, respectively
but it seems that it has no effect. Am I doing something wrong?
First of all I just noticed a tiny mistake i the datasheet. Section 5.4.1 is actually slow compensation (high-pass filter). Make sure you follow the steps for section 5.4.2. there is also an application note on this: https://ae-bst.resource.bosch.com/media/_tech/media/application_notes/BST-MAS-AN030.pdf
The effect depends on how large your initial offset is. Read back the values of the registers. If they are non-zero then the compensation is active
05-23-2019 04:52 PM
@GMASCIARDT wrote:
2) I'm not sure how to interpret the X, Y, Z and RHALL data of the MAG for a compass-like application. Is there any data processing/compensation I need to do? I took a look at some drivers/APIs on GitHub and I noiticed that there is a compensation. The thing is that the registers used to get the compensation values appear to be marked as "reserved" on the datasheet. Could you please clarify that?
This is the API you want to use : https://github.com/BoschSensortec/BMM150-Sensor-API
The trimming registers are marked as reserved in the datasheet, customers must use the API. See section 9.3.2 of the datasheet