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


In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question. It helps the next guy.
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.