@redans123, you need to do hands-on hardware troubleshooting. I mean, you already have an oscilloscope or access to one, and so you need to dig in on the hardware side. Don't wait for answers from the forum.
For example, if you say VL6180, then if it's this one:
Adafruit VL6180X Time of Flight Distance Ranging Sensor (VL6180) - STEMMA QT
https://www.adafruit.com/product/3316
That uses level translators. 10K pullups -- not enough for RP2350. Marginal. All of this analysis you can do yourself, it's not hard.
If it's a Shenzhen special VL6180X board like the ENS160+AHT21 that I am testing, they are not going to use BSS138 for the level translator. My ENS160+AHT21 uses 2N7002 and 8K2 pullups and the logic high at SDA/SCL is about 2.8V given a 3.24V power to Vin, ouch. It connects to a Pico (RP2040), but I wouldn't bet on it working with a RP2350 board.
So, you need to show us your VL6180X board, check the level translator circuit parts. I'm sure the rest here will comment on that.
Also, do you have any other I2C board working? Always try some simple boards first before working on those advanced breakout boards with level translators. Gain experience, lead to confidence. It doesn't sound like you have a lot of confidence in your circuit-building.
The level translator circuit is designed for 5V Arduino. If Shenzhen specials switch BSS138 to 2N7002, then the margins will be worse. 10K isn't really good when there is RP2350 E9 about.
Study the datasheets. Study the schematics. Don't wait for answers from the forum.
So you should show us a picture of the actual VL6180X board that you have.
Have you tried a lower value pullup? It's the most obvious tweak. What is the high voltage at SDA/SCL?
For example, if you say VL6180, then if it's this one:
Adafruit VL6180X Time of Flight Distance Ranging Sensor (VL6180) - STEMMA QT
https://www.adafruit.com/product/3316
That uses level translators. 10K pullups -- not enough for RP2350. Marginal. All of this analysis you can do yourself, it's not hard.
If it's a Shenzhen special VL6180X board like the ENS160+AHT21 that I am testing, they are not going to use BSS138 for the level translator. My ENS160+AHT21 uses 2N7002 and 8K2 pullups and the logic high at SDA/SCL is about 2.8V given a 3.24V power to Vin, ouch. It connects to a Pico (RP2040), but I wouldn't bet on it working with a RP2350 board.
So, you need to show us your VL6180X board, check the level translator circuit parts. I'm sure the rest here will comment on that.
Also, do you have any other I2C board working? Always try some simple boards first before working on those advanced breakout boards with level translators. Gain experience, lead to confidence. It doesn't sound like you have a lot of confidence in your circuit-building.
The level translator circuit is designed for 5V Arduino. If Shenzhen specials switch BSS138 to 2N7002, then the margins will be worse. 10K isn't really good when there is RP2350 E9 about.
Study the datasheets. Study the schematics. Don't wait for answers from the forum.
So you should show us a picture of the actual VL6180X board that you have.
Have you tried a lower value pullup? It's the most obvious tweak. What is the high voltage at SDA/SCL?
Statistics: Posted by katak255 — Thu Apr 03, 2025 11:04 am