Hi there! I’m running the “Example 1- Basics” code to test out my 9DOF IMU Breakout ICM-20948, but all it returns is “Initialization of the sensor returned: Wrong ID. Trying again…”.
Has anyone else had this issue and fixed it? I’m fairly new at this and not even sure where to start…
I’m running it on an Adafruit Feather M0 Basic Proto atsamd21
Can you share the details of your interface? Are you using I2C or SPI? The first thing to ensure would be that the pins are correctly connected
If you are using I2C: Since the Adafruit Feather M0 Basic Proto atsamd21 does not have a Qwiic connector there is a chance that you have swapped some pins around. You could try a few more Qwiic sensors (or other I2C sensors with example code) and see if they work. If those work while the ICM-20948 does not then the search will continue.
If you are using SPI the same idea applies but it just might be a little more of a hassle to swap in another sensor to test. Do you have the right Chip Select (CS, SS, etc) pin selected in code?
MrBlue, have you modified the address jumper on your board? When you use I2C what is AD0_VAL set to? When the address jumper is closed SPI operation will not work. So if the example works for you when AD0_VAL is 0 then that might be your problem.
“Note: Unfortunately, the TXS0108 level shifter doesn’t play nicely with I2C thanks to ‘smart’ internal pullup resistors. It still works great in SPI mode - however currently we don’t have SW support for the “I2C master” functionality.”
I’ve tried it with 3 different boards on 2 different computers and have had the same (+ more) problems-- “Wrong ID”
If others have had good luck getting I2C to work, maybe I’ll try that instead…