VL53L8CX I2C Communication Instability
**VL53L8CX ranging stops after a few frames (2-4 typical, up to 28 seen once) clean status, no error on three independently-built boards**
**Setup:** Custom board, VL53L8CX (I2C mode) + STM32G0B1KBU6 host MCU, ULD driver, 4x4 resolution, 10Hz continuous ranging mode, 30ms integration time.
**Symptom:** `vl53l8cx_init()` and `vl53l8cx_start_ranging()` both succeed. Ranging produces good frames (plausible per-zone status/distance data) for a small number of frames usually 2-4, occasionally more (saw 28 once) then `check_data_ready()` starts returning `VL53L8CX_STATUS_OK` with `data_ready` staying false indefinitely. No error code in the common case. I2C bus itself stays healthy throughout (clean ACKs on every transaction, confirmed via logic analyzer).
**One-off exception:** on a single occurrence, `check_data_ready()` returned `0x84` instead of `0x00`. I found the earlier thread here (linking below) where a `0x81`/`0xC5`/`0xCA`-style status was identified as a GO2 (internal MCU) error. I want to be upfront that this has only happened once for me — my typical stall is the silent/clean-status kind above, not this. Mentioning it in case it's a related data point, not because I think it's my main bug.
**What I've ruled out:**
- I2C bus faults — no address NACKs, no mid-transaction NACKs anywhere in captures; every byte cleanly ACKed through the stall.
- Board-to-board assembly variance (cold solder joints, etc.) — all independently-built boards fail identically, same frame counts, same behavior.
- My own recovery/retry logic — reproduced the exact same stall with a bare-bones build that has zero stop/start/reset logic in the main loop, so it isn't my code interrupting an in-flight transaction.
**Question:** Is there a known cause for the ranging engine going quiet mid-session (clean I2C, no error code) after a handful of good frames? Is there additional diagnostic/status information I can read from the sensor beyond `check_data_ready()`'s return code that would help narrow down what's happening internally at the moment it stalls?
Happy to provide I2C captures, my init/config sequence, or anything else that would help.
I’m hoping this is a firmware issue as I am new to cube IDE but please let me know your opinions, thank you in advance.
[Original thread: https://community.st.com/imaging-sensors-49/i2cdetect-disrupts-vl53l8cx-operation-causing-go2-error-146394]
