cancel
Showing results for 
Search instead for 
Did you mean: 

VL53L1X address changing

AShmy.1
Associate

Hello,

We ordered some VL53L1X and put them on our PCB. We ran into a problem at the moment of changing the address: we can give these sensors only two address options 0x52 (default) and 0x53 so that they work correctly, but at other addresses the sensor initialization procedure looks correct, and the sensor can be seen, but during the measurement it returns only 0 mm.

We are wondering if there is a possibility of defective modules that we ordered? Or do we need to find the problem somewhere else? (we do not think this is a code, because on one module of the Pololu board, changing the address works fine) .

Best regards,

Aliaksandra

1 ACCEPTED SOLUTION

Accepted Solutions
John E KVAM
ST Employee

In the software is a function to change the address. The procedure is to put them all in reset using the XSHUT pin.

then take them out one at a time and call the ChangeAddress function. For the VL53L1X UltraLite Driver it's

VL53L1X_ERROR VL53L1X_SetI2CAddress(VL53L1_Dev_t, uint8_t new_address);

Your software might be something different.

All I2C address have a write address where the least significant bit is 0.

That chips read address is the same address with the LSb set to 1.

0x52 is the write address, 0x53 is the read address by default. Some people spec the 7-bit address and call this 0x29.

To get multiple chips running, change the first one to be at least 2 away for the others .

To see an example of this, download from the ST web site

STSW-IMG017 2D LIDAR using multiple VL53L1X Time-of-Flight long distance ranging sensors

In the main.c I set up 9 sensors.


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.

View solution in original post

1 REPLY 1
John E KVAM
ST Employee

In the software is a function to change the address. The procedure is to put them all in reset using the XSHUT pin.

then take them out one at a time and call the ChangeAddress function. For the VL53L1X UltraLite Driver it's

VL53L1X_ERROR VL53L1X_SetI2CAddress(VL53L1_Dev_t, uint8_t new_address);

Your software might be something different.

All I2C address have a write address where the least significant bit is 0.

That chips read address is the same address with the LSb set to 1.

0x52 is the write address, 0x53 is the read address by default. Some people spec the 7-bit address and call this 0x29.

To get multiple chips running, change the first one to be at least 2 away for the others .

To see an example of this, download from the ST web site

STSW-IMG017 2D LIDAR using multiple VL53L1X Time-of-Flight long distance ranging sensors

In the main.c I set up 9 sensors.


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.