I am currently in the process of interfacing with a CH101 ultrasonic sensor. I am using a nucleo STM32 board, with some level shifters for communication with the sensor. I am able to successfully perform the initial connectivity check (Reading from device address 0x45, memory address 0x00 - returns 0x0A 0x02) as per the documentation, and ch_group_start
appears to write the firmware to the device. However after writing the firmware I cannot progress further.
The culprit seems to be the ch_common_get_locked_state
. I can see that it's attempting to read from the assigned I2C address, but the communication seems to break every time. It should be reading a single byte from I2C address 0x29, register 0x14. I think the sensor might be holding the SDA line low for some reason.
I'm not sure if anyone has experience with this sensor and issues after writing the firmware.