Skip to main content
AShmy.1
Visitor II
June 25, 2021
Solved

VL53L1X address changing

  • June 25, 2021
  • 1 reply
  • 4422 views

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

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

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.

1 reply

John E KVAM
John E KVAMBest answer
ST Employee
June 25, 2021

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.