Fix for I2C startup issues on BNO055 and ICM20948 #314

Closed
opened 2026-04-05 17:52:35 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @Timocop on 10/22/2022

For still unknown reasons BNO055 and ICM20948 (and may probably others) have I2C-Scan issues when starting up or resetting. Without this fix, I2C-Scan has a random chance of not finding those IMUs. It either fails to find them or deadlocks the ESP.

Example error:

[INFO ] [SlimeVR] SlimeVR v0.2.3 starting up...
[INFO ] [Configuration] Found up-to-date configuration v1
[DEBUG] [Configuration] Found sensor calibration for ICM20948 at index 0
[INFO ] [Configuration] Loaded configuration
[ERR] I2C: Can't find I2C device on provided addresses, scanning for all I2C devices and returning 
[DBG] I2C (@ D2(4) : D1(5)): I2C device found at address 0x28  ! 
[ERROR] [ErroneousSensor:0] IMU of type BNO055 failed to initialize 
[INFO ] [BNO055Sensor:1] Connected to BNO055 at address 0x28
*Originally created by @Timocop on 10/22/2022* For still unknown reasons BNO055 and ICM20948 (and may probably others) have I2C-Scan issues when starting up or resetting. Without this fix, I2C-Scan has a random chance of not finding those IMUs. It either fails to find them or deadlocks the ESP. Example error: ``` [INFO ] [SlimeVR] SlimeVR v0.2.3 starting up... [INFO ] [Configuration] Found up-to-date configuration v1 [DEBUG] [Configuration] Found sensor calibration for ICM20948 at index 0 [INFO ] [Configuration] Loaded configuration [ERR] I2C: Can't find I2C device on provided addresses, scanning for all I2C devices and returning [DBG] I2C (@ D2(4) : D1(5)): I2C device found at address 0x28 ! [ERROR] [ErroneousSensor:0] IMU of type BNO055 failed to initialize [INFO ] [BNO055Sensor:1] Connected to BNO055 at address 0x28 ```
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/SlimeVR-Tracker-ESP#314