cancel
Showing results for 
Search instead for 
Did you mean: 

VL53L1 can measure the target within 8 meters. However, the VL53L1_Gui(api rev 2432 6.6 build 1) showed "NOT VALID" even if the target stood at about 3 meters.

TYomo
Associate II

I was evaluating VL53L1 through X-NUCLEO-53L1A2.

The GUI (api rev 2432 6.6 build 1) showed NOT VALID, but I checked the Data Log (.csv) and I found the "trueRange_cm" data was valid.

I have a question, which data result is true, GUI or Data Log?

Thanks in advance

3 REPLIES 3
John E KVAM
ST Employee

The max distance we can measure an object depends on the size of the object and its reflectivity. As a way of putting this into perspective, I say we can see people to 3m and hands to about 80cm. 

One can indeed get to 8m, but that was done focusing on a projector screen - and they are large and reflective. Porjectors are a large market for us.

The GUI only plots data with status=0. Status=2, is a valid distance, but the sensor is warning you the signal is weak, and the distance might have a wider variation than you want. If you are willing to accept the wider standard deviation, then go ahead and use the data.

So both the GUI and the Log file are right, it's just that the GUI only plots Status=0 data.

If you navigate to the log file and right-click it will open in EXCEL. You can use that to create your own plots. I find that feature pretty handy.

  • john

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.
TYomo
Associate II

Thanks for replying.

Actually, I am trying to measure the target within 3 meters.

I didn't notice the status, but I have another question.

Is the status data sent by VL53L1 or API of GUI? I checked the datasheet of VL53L1, but I couldn't find the article of the status.

John E KVAM
ST Employee

This is a little confusing.

Each function has a"

Status = VL53...( ).

This is the status of the function call, and it will be non-zero if something went wrong with the I2C, or a bad paramenter.

There is also the RangeStatus.

The RangeStatus is returned by a call - and this depends a on which software you are useing.

VL53L1_GetMultiRangingData() returns a structure, and RangeStatus is an element of that structure.

In other software there is a call to get the status.

And it's this RangeStatus that can tell you the quality of your measurement.

In the software delivery there is a user manual. You have to refer to that.


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.