Skip to main content
Mdo N.1
Associate
June 13, 2020
Solved

VL53L3CX-Satel - i2cdetect keeps changing.

  • June 13, 2020
  • 2 replies
  • 1027 views

I got the VL53L3CX-Satel kit and it is behaving very strangely.

I connected i2c pins (SDA and SCL), GND and VDD (3.3V).

I get different addresses every time I run i2cdetect:

devboard:~ $ i2cdetect -y 1
 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 -- -- 06 -- -- 09 0a -- -- 0d -- -- 
10: -- 11 -- 13 -- 15 16 17 18 -- 1a -- 1c 1d -- -- 
20: -- -- 22 -- -- 25 -- -- -- -- -- 2b 2c -- 2e 2f 
30: -- -- 32 33 34 35 -- 37 -- -- 3a 3b 3c -- 3e -- 
40: -- -- 42 43 -- 45 46 47 -- -- -- -- 4c -- -- 4f 
50: 50 51 -- -- -- -- -- -- -- -- -- 5b -- -- 5e -- 
60: -- -- -- -- 64 65 -- -- 68 69 6a -- 6c -- -- -- 
70: -- -- -- -- 74 -- -- 77 
 
devboard:~ $ i2cdetect -y 1
 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- 06 07 08 09 -- 0b 0c -- -- -- 
10: -- -- 12 13 -- -- -- 17 18 19 -- -- 1c 1d -- -- 
20: -- 21 22 -- 24 -- 26 -- 28 29 2a 2b 2c -- -- 2f 
30: -- -- -- 33 -- 35 -- -- 38 39 -- -- 3c 3d 3e -- 
40: -- 41 -- 43 44 45 46 47 -- 49 -- 4b -- -- 4e 4f 
50: -- 51 -- 53 -- -- 56 57 -- 59 -- 5b -- -- -- -- 
60: 60 -- 62 -- -- -- 66 -- 68 69 6a -- -- -- -- -- 
70: 70 71 72 73 74 -- -- 77 
 
devboard:~ $ i2cdetect -y 1
 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- 04 -- -- -- -- 09 0a -- -- -- 0e -- 
10: 10 -- 12 13 14 15 16 -- -- 19 1a -- -- -- 1e -- 
20: 20 21 -- -- -- 25 26 -- 28 -- -- -- -- -- 2e -- 
30: -- 31 -- 33 -- 35 -- 37 -- -- -- 3b 3c 3d 3e 3f 
40: 40 -- 42 -- -- -- -- -- -- -- -- -- 4c -- 4e -- 
50: -- 51 -- -- -- 55 -- -- -- 59 -- -- -- 5d -- -- 
60: -- -- 62 63 -- 65 66 67 -- -- -- -- -- 6d 6e -- 
70: 70 -- -- -- 74 75 76 -- 
 
devboard:~ $ i2cdetect -y 1
 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- 05 -- -- -- -- -- -- -- 0d 0e -- 
10: 10 11 12 -- 14 15 -- -- 18 -- -- -- 1c 1d 1e -- 
20: -- 21 22 -- 24 -- -- -- 28 29 -- -- 2c 2d -- -- 
30: 30 -- 32 -- 34 35 36 37 -- 39 -- -- 3c -- 3e 3f 
40: -- 41 -- -- 44 45 -- -- -- -- -- -- -- -- -- -- 
50: -- 51 -- 53 -- 55 -- -- -- 59 -- -- -- 5d -- -- 
60: -- -- -- -- -- -- 66 -- 68 -- -- -- -- -- -- -- 
70: 70 -- 72 -- -- -- -- 77 
 
devboard:~ $ i2cdetect -y 1
 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- 04 -- 06 07 -- -- -- -- 0c -- 0e -- 
10: 10 11 12 -- 14 -- 16 -- -- 19 -- -- -- 1d 1e 1f 
20: 20 21 -- -- 24 25 -- 27 28 -- -- -- -- -- -- -- 
30: -- -- 32 33 -- 35 36 -- 38 -- 3a -- -- -- 3e -- 
40: -- 41 42 -- 44 45 -- -- -- 49 4a -- -- -- -- 4f 
50: 50 51 52 -- -- 55 -- 57 -- 59 -- -- -- 5d -- 5f 
60: -- 61 62 -- -- 65 -- 67 -- 69 6a 6b 6c -- 6e -- 
70: -- -- -- -- -- 75 -- -- 
 
devboard:~ $ i2cdetect -y 1
 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 04 -- -- -- 08 09 0a -- -- 0d -- -- 
10: 10 -- 12 -- 14 -- -- -- 18 19 -- -- -- 1d -- 1f 
20: -- 21 22 -- 24 -- 26 -- -- -- -- -- 2c -- 2e 2f 
30: -- -- -- 33 -- -- 36 -- 38 39 -- -- 3c -- 3e 3f 
40: -- -- -- -- -- 45 46 -- 48 49 -- -- 4c 4d -- -- 
50: -- 51 -- 53 -- -- -- -- -- 59 -- -- -- -- 5e -- 
60: 60 61 62 -- 64 -- -- -- -- -- 6a 6b 6c 6d 6e -- 
70: 70 71 72 -- 74 -- 76 -- 
 

I tested the i2c port for other ICs and it works fine.

I also made a breakout board for VL53L3CX myself, without TXS0108EPWR for level conversion and it detects just fine every time (check output below).

The schematic for my board is also below.

devboard:~ $ i2cdetect -y 1
 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- 29 -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 
 

0693W000001qenGQAQ.png

Note: The chip is VL53L3CX, not VL53L1. Pins are equivalent.

I'm still struggling in terms of software, but at least it is detected correctly.

  

I tested everything I could think off to make the Satel board to work, even adding pull up resistors (knowing that my dev board has it already). Nothing worked.

Any pointers?

This topic has been closed for replies.
Best answer by John E KVAM

There are two satellite boards - stuffed and unstuffed. I'm going to guess you are having trouble with the boards that have the level shifters stuffed. And they are interfering with the components already on your board.

The solution is easy. Break the satellite board in half at the perforations (after removing the 0-ohm resistors) and solder to the fingers at the end of the board.

2 replies

John E KVAM
John E KVAMBest answer
ST Employee
August 19, 2021

There are two satellite boards - stuffed and unstuffed. I'm going to guess you are having trouble with the boards that have the level shifters stuffed. And they are interfering with the components already on your board.

The solution is easy. Break the satellite board in half at the perforations (after removing the 0-ohm resistors) and solder to the fingers at the end of the board.

If this or any post solves your issue, please mark them as 'Accept as Solution' It really helps. And if you notice anything wrong do not hesitate to 'Report Inappropriate Content'. Someone will review it.
Mdo N.1
Mdo N.1Author
Associate
August 22, 2021

There is nothing else on my board. I was testing the satellite board in isolation first.

It is just a raspberry pi + satellite board.

The ​Vl53l3cx level range is up to 3.5V, making the level shifter not required for my case, but the level shifter should work either ways for 3.3V, and it doesn't.

I didn't want to break the board as I wanted to use it with another setup that is 5V, hence requiring the level shifter.