Showing results for 
Search instead for 
Did you mean: 

Power Cycle VL53L5CX limit

Associate II

I am a committed STM32 addict and currently using the STM32F411 with nine VL53L0X's on a wheel robot project, which is working pretty well. However sometimes due to poll rate and beam angle/distance/speed small (narrow) objects are not seen until almost too late.
So I thought I would try the VL53L5CX which seems to have a great spec and has some really nice features, like sharpness/target order. Which I have not explored as yet as I am still trying to get multiple VL53L5CX's running again after a STM32F411 NRST/program update. 

Problem I am having I think is due to the VL53L5CX  tiny breakout boards I am using as they only have 6 pins:
3.3v, gnd, scl,sda, int, LPn but no i2c reset pin out.

Basically when my (STM32F411) app starts up it initializes and set new i2c address in the two VL53L5CX's, I then set the 8x8 resolution, ranging speed and Start Ranging, all of this works just fine.

Problem is after the STM32F411 app/code has been updated I can not acquire VL53L5CX (and I have tried many things) as they are still ranging and do not seem to respond to the LPn line been toggled. Hence I can't set there i2c address and re initialize them. 

So the solution I have come up with is truly horrible, which is via a STM32F11 port and an PNP transistor I turn power to the VL53L5CX off and on and then do the i2c address change/setup as normal. Effectively power cycling them every code update and NRST I use during debugging 

Questions are:
Am I shorting the life of the :VL53L5CX by power cycling them?
Is there something  in the STM32duino VL53L5CX library/api I have missed with respect to reconnecting with the VL53L5CX after reprogramming the STM32F411 and having only scl,sda, LPn to control the VL53L5CX?

Sorry about long post but complex issues.
Many thanks in advance imk




ST Employee

The extra stress on the device by power cycling should be minimal. 
RAM is written to all the time so additional power cycles will not degrade that portion.
The EVK_I2C_RESET (pin 😎 which is not really a reset but clears the I2C buffers may allow reconnection. The real issue is the SW on the host and the FW on the module are out of sync and a power cycle is probably best.

Our community relies on fruitful exchanges and good quality content. You can thank and reward helpful and positive contributions by marking them as 'Accept as Solution'. When marking a solution, make sure it answers your original question or issue that you raised.

ST Employees that act as moderators have the right to accept the solution, judging by their expertise. This helps other community members identify useful discussions and refrain from raising the same question. If you notice any false behavior or abuse of the action, do not hesitate to 'Report Inappropriate Content'