2025-07-09 8:48 AM - last edited on 2025-07-09 10:47 AM by Peter BENSCH
I'm trying to port the VL53L0X library for use with the RP Pico W for academic reasons, but I can't map the calls between the VL53L0X SDK and the RP Pico W SDK.
For example, the function
int32_t VL53L0X_read_multi(uint8_t address, uint8_t index, uint8_t *pdata, int32_t count)
would theoretically need to be adjusted to call the function
int i2c_read_blocking(i2c_inst_t *i2c, uint8_t addr, uint8_t *dst, size_t len, bool nostop)
Attempt to read specified number of bytes from address, blocking.
Am I right? Or should it be another way?
Thanks
2025-07-15 2:34 AM
Hi
Your understanding is correct, inside VL53L0X some API I2C read/write function need read more than 4 registers at same time, so it need read_multi and wirte_multi function.
You can find below information form the datasheet, below reg can be used to test the I2C reading function.
Br
Zhiyuan.Han
2025-07-15 4:18 PM
I'm having trouble mapping the functions to the RP2040's I2C. I think the example I got isn't the best fit, and the VL53L1CB_SimpleRanging example I got from CubeMX doesn't compile. It's not for the VL53L0, but it would be a good reference. I found another code on the other computer, and I'll cite it tomorrow, but it's completely different from this one. I'm still having trouble adjusting the file for the platform.