cancel
Showing results for 
Search instead for 
Did you mean: 

How to enable Left/Right VL53L1X ranging sensor?

leo su
Associate II
Posted on March 22, 2018 at 03:37

Description:

We encounter one problem when we port VL53L1X ranging sensors (left/center/right) to our platform STM32F429 controller, the left/right sensors can not be activated via I2C slave address 0x54 and 0x58. (center is 0x52).

Currently, I refer to module board X-NUCLEO-53L1A1 as an example by using IO interrupt to report our MCU

when starting to measure sensor values and however, we find when we enable left/right, we will get returned error 

-13 naming, VL53L1_ERROR_CONTROL_INTERFACE from fucntion (VL53L1_WaitDeviceBooted().

for center sensor, it can be activated by default SA = 0x52; but not working at left and right sensors.

Any help for it???

2 REPLIES 2
John E KVAM
ST Employee
Posted on May 02, 2018 at 00:51

When any of the ST Time of Flight sensors power up they all come up at the same address. Clearly this will not work.

The trick is to bring them out of reset one by one and command each to change its I2C address to something else. There is  an API for this.

That, unfortunately, is the only way to do it.

Then you can use the 3 sensors by addressing them differently


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.
Rastislav Wartiak
Associate II
Posted on May 17, 2018 at 22:11

When you check the Nucleo board schematics, you'll see two GPIO expanders that control all three XSHUT lines. You need to turn two devices off and one on, change it's address and do the same for another one. The last one can use the default address.

Look into 

STM32CubeExpansion_53L1A1_V1.0.0\Drivers\BSP\X-NUCLEO-53L1A1\X-NUCLEO-53L1A1.c

there is a good explanation.