The Sparkfun “Qwiic Ultrasonic Distance Sensor - HC-SR04” sensor board is good in that it has a small microcontroller to do the HC-SR04 pin timing measurement, what I call the “bit banging” accurately for any host microcontroller with an I2C interface.
Is the I2C protocol as simple as it looks according to the example code? Slave address is 0x00 (assuming 7 bits) and sending a 0x01 begins a measurement and 5 msec later read back two bytes (big endian) for distance in mm (16 bit unsigned).
Isn’t the I2C slave address 0x00 an “any address” so all slave devices on the bus would pick it up, and possibly reply with error messages?