From d17ef95a3c940b674bbda91573066f20200c902d Mon Sep 17 00:00:00 2001 From: Yifei Ding Date: Sat, 19 Nov 2022 06:58:24 -0800 Subject: mpu9250: add MPU6500 (#5767) Signed-off-by: Yifei Ding --- klippy/extras/mpu9250.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'klippy/extras/mpu9250.py') diff --git a/klippy/extras/mpu9250.py b/klippy/extras/mpu9250.py index c588eaf0..419207fc 100644 --- a/klippy/extras/mpu9250.py +++ b/klippy/extras/mpu9250.py @@ -9,8 +9,16 @@ from . import bus, motion_report, adxl345 MPU9250_ADDR = 0x68 -MPU9250_DEV_ID = 0x73 -MPU6050_DEV_ID = 0x68 +MPU_DEV_IDS = { + 0x74: "mpu-9515", + 0x73: "mpu-9255", + 0x71: "mpu-9250", + 0x70: "mpu-6500", + 0x68: "mpu-6050", + #everything above are normal MPU IDs + 0x75: "mpu-unknown (DEFECTIVE! USE WITH CAUTION!)", + 0x69: "mpu-unknown (DEFECTIVE! USE WITH CAUTION!)", + } # MPU9250 registers REG_DEVID = 0x75 @@ -189,12 +197,14 @@ class MPU9250: # In case of miswiring, testing MPU9250 device ID prevents treating # noise or wrong signal as a correctly initialized device dev_id = self.read_reg(REG_DEVID) - if dev_id != MPU9250_DEV_ID and dev_id != MPU6050_DEV_ID: + if dev_id not in MPU_DEV_IDS.keys(): raise self.printer.command_error( - "Invalid mpu9250/mpu6050 id (got %x).\n" + "Invalid mpu id (got %x).\n" "This is generally indicative of connection problems\n" "(e.g. faulty wiring) or a faulty chip." % (dev_id)) + else: + logging.info("Found %s with id %x"% (MPU_DEV_IDS[dev_id], dev_id)) # Setup chip in requested query rate self.set_reg(REG_PWR_MGMT_1, SET_PWR_MGMT_1_WAKE) self.set_reg(REG_PWR_MGMT_2, SET_PWR_MGMT_2_ACCEL_ON) -- cgit v1.2.3-70-g09d2