Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    Problem connecting BMI085 Shuttle Board with Raspberry Pi over I2C

    Problem connecting BMI085 Shuttle Board with Raspberry Pi over I2C


    Hi all,

    I connected the BMI085 Shuttle Board to the Raspberry Pi, and tried to make sure that my connections were working properly, by trying to get the chip ID for the accelerometer and gyroscope of the IMU.

    However, when doing the i2cdetect on the terminal of the RPi, it only found the Register 0x19 of the accelerometer and not the 0x69 of the gyroscope.

    Here is a description of my connections between the RPi4 and the BMI085 Shuttle Board

    Pin TypeRaspberry Pi 4BMI085 Shuttle Board
    3V3 PowerPin 17Pin 1
    GroundPin 9Pin 3
    SDAGPIO 3Pin 17
    SCLGPIO 5Pin 18


    Here is a copy of the code i wrote on Python:


    import smbus
    import time
    ACC_DEVICE = 0x19 #I2C Acc Address of BMI085
    GYR_DEVICE = 0x69 #I2C Gyr Address of BMI085
    bus = smbus.SMBus(1) #Rev 2 Pi, Pi 2 & Pi 3 uses bus 1
    def readBMI085ID_ACC(acc_addr=ACC_DEVICE):
        #Chip ID Register Address
        ACC_REG_ID = 0x00
        (acc_chip_id, acc_chip_version) = bus.read_i2c_block_data(acc_addr, ACC_REG_ID, 2)
        return (acc_chip_id, acc_chip_version)
    def readBMI085ID_GYR(gyr_addr=GYR_DEVICE):
        #Chip ID Register Address
        GYR_REG_ID = 0x00
        (gyr_chip_id, gyr_chip_version) = bus.read_i2c_block_data(gyr_addr, GYR_REG_ID, 2)
        return (gyr_chip_id, gyr_chip_version)
    def main():
        #Chip ID & Version for Accelerometer
        (acc_chip_id, acc_chip_version) = readBMI085ID_ACC()
        print("Acc Chip ID   :", acc_chip_id)
        print("Acc Version   :", acc_chip_version)
        Chip ID & Version for Gyroscope
        (gyr_chip_id, gyr_chip_version) = readBMI085ID_GYR()
        print("Gyr Chip ID   :", gyr_chip_id)
        print("Gyr Version   :", gyr_chip_version)
    if __name__ =="__main__":



    I constantly get the error "Errno121 remote I/O error" because of the Gyroscope Chip ID (for the Accelerometer I get the Chip ID and chip version)

    Could you tell me where my error might be? 

    Thanks a lot! 🙂

    1 REPLY 1

    Community Moderator
    Community Moderator

    In order to make BMI085 gyro part worked under I2C mode,  you need connect PS pin (pin 9 on the shuttle board)  to VDDIO (3.3V) to select as I2C mode first.

    Also the pin 16 of the shuttle board (SDO2) need to connect to VDDIO to select I2C address 0x69.