04-03-2020 06:13 PM
Hello again,
I am having an issue where the BMI088 temperature sensor always reports 25C regardless of how much I heat the board using a heat gun. I have verified that the data coming back from reading registers 0x22 and 0x23 is [0x02, 0x19] respectively. Ie, it is not a logic / code error. (See screenshot below)
Referencing "5.3.7 Temperature sensor data" from the datasheet, the above value calculates out to be 25 C.
I also made sure the accelerometer is enabled by writing 0x04 to ACC_PWR_CTRL and reading acceleormeter values prior to reading temperature values every 2 seconds since it is updated every 1.28 seconds.
Data log:
<info> app: Accel - X: -49, Y: -25, Z: 1361
<info> app: Accel - X: -52, Y: -16, Z: 1362
<info> app: Accel - X: -50, Y: -23, Z: 1368
<info> app: Accel - X: -51, Y: -26, Z: 1365
<info> app: Accel - X: -54, Y: -19, Z: 1363
<info> app: Accel - X: -55, Y: -15, Z: 1369
<info> app: Accel - X: -55, Y: -18, Z: 1363
<info> app: Accel - X: -53, Y: -21, Z: 1367
<info> app: Accel - X: -48, Y: -22, Z: 1365
<info> app: Accel - X: -54, Y: -15, Z: 1363
<info> app: Accel - X: -51, Y: -19, Z: 1371
<info> app: Accel - X: -52, Y: -26, Z: 1365
<info> app: Accel - X: -47, Y: -19, Z: 1358
<info> app: Accel - X: -48, Y: -14, Z: 1368
<info> app: Temp: 25 C
<info> app: Temp: 25 C (2 seconds later)
<info> app: Temp: 25 C (2 seconds later)
<info> app: Temp: 25 C (etc...)
<info> app: Temp: 25 C
<info> app: Temp: 25 C
<info> app: Temp: 25 C
<info> app: Temp: 25 C
<info> app: Temp: 25 C
<info> app: Temp: 25 C
<info> app: Temp: 25 C
What am I missing? Is the sensor broken?
Thanks,
Derek
Solved! Go to Solution.
04-06-2020 07:56 PM
Hi,
Thanks for your inquiry. BMI088 accelerometer temperature sensor is 11 bit with register 0x22 as MSB and register 0x23 upper three bits as LSB. The sensitivity is 0.125C/LSB and 23C when both register 0x22 and 0x23 are 0x00.
Therefore, register 0x23 can only have the following values: 0x00, 0x20, 0x40, 0x60, 0x80, 0xA0, 0xC0 and 0xE0. But in your case you gotthe value of 0x19 for register 0x23. That means your I2C communication may have some issues.
Thanks.
04-10-2020 05:52 PM
Figured out the issue. I was trying to read the temperature data using the Gyroscope I2C address. Reading with the acceleormeter I2C address works. Oops.
Thanks for your help.
Derek