I am attempting to use the pass-through interface of the BHI160B to access the internal BMI160. However when I read addr 0x00 of the BMI160 I am getting 0xD6 instead of the expected 0xD1 described in the BMI160 datasheet.
I am using a slightly modified BoschSensorHub library (https://github.com/braingram/BoschSensorHub). The modifications are described in my other post.
Is it expected that the chip id for the internal BMI160 does not match the datasheet? Also, the BMI160 only responds on i2c address 0x69 (not the default 0x68 but instead the alternative listed in the datasheet).
This is official BHI160 Sensor Hub Arduino library: https://github.com/BoschSensortec/BoschSensorHub
BHI160B use product ID and revision ID, not same with BMI160. You could see it from data sheet.
I2C address depends on SA_ Gpio7 logic level.
Thanks for your reply. I am not having any issues reading the chip id of the BHI160. The issue I'm having is with the integrated BMI160.
I am using the soft pass-through i2c registers (parameter page 15, section 11.5 in the BHI160 datasheet). My understanding is that this should allow me to read from the integrated BMI160 accelerometer and gyroscope directly.
I am able to successfully:
- use setSoftPassThrough to initiate a read of register 0x00 of the BMI160 (at address 0x69)
- use getSoftPassThough to read out the result (and confirm status, address and start)
However the result is 0xD6. The BMI160 datasheet does not list this as the correct chip id and instead lists 0xD1.