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 Type Raspberry Pi 4 BMI085 Shuttle Board 3V3 Power Pin 17 Pin 1 Ground Pin 9 Pin 3 SDA GPIO 3 Pin 17 SCL GPIO 5 Pin 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__":
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! 🙂
... View more