ICM20948 9DoF sensitivity adjustment

I am running an ICM20948 9DoF breakout on a Pi4 using the Python code from the Github library examples. The gyro outputs are working fine (low noise, low offset, sensible calibration). However, the accelerometer outputs have an LSB equivalent to10mg compared to the expected <1mg. I presume this is because the FS is set to the lowest sensitivity (±16G). Does anyone know how to change the FS sensitivity of the accelerometer channels? (I can see a register listed in the spec sheet but I’m a complete novice at this game).

On further inspection of the Python library, I found the _init_py.py code for the ICM20948. There I could see the relevant lines for setting/adjusting the full scale sensitivity. I made the changes and running this code rather than importing “ICM20948” the accelerometer noise was <1mg with no sign of digitisation noise. So all sorted.

2 Likes