cancel
Showing results for 
Search instead for 
Did you mean: 

VL53L1X: Understanding the range status values and the signal rate

cyberjupiter
Associate II

Hi, when using the VL53L1X, it is suggested to check for the range status and 0(zero) is considered the desired range status. Now, as I understand it, the range status 2(two) is dependent on the signal threshold. By default, the signal threshold is set to 1024, and can be adjusted by calling the SetSignalThreshold().

My problem is that, at larger distance (around 2m), the signal rate that I am getting by checking GetSignalRate() is way below. Sometimes around 30-60. This results in getting range status 2 all the time. So should i modify the signal threshold value to less than 50 so that I can consider the distance I read is valid. But are the distances valid if I do this? Or what are the possible signal threshold value that I could set so I can get the range status 0?

Another issue is that even in open air, I am getting range status 2 with distance being reported at 2.2m~2.7m. This affects my reading because I cannot differentiate between the valid signal between objects or open air. What can I do to get around this?. Based on the sensor datasheet, even in medium distance mode I could get more than 2m distance (maybe by using 16x16, so I have large FoV?). I am using 4x4 ROI due to environment of the device which can cause false detection if I am using more than 5x5. 

Other details if needed:
- VL53L1X is on a custom board with STM32F411CE
- The target that I am supposed to detect is a powder coating material of white color (which is supposed to be highly reflective).
- I am able to obtain signal rate of 850+ if the distance is around ~1m.

Let me know if you need more information about my setups.

Thanks,
Aiman

8 REPLIES 8
John E KVAM
ST Employee

 

 


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.

Message posted to wrong question - deleted


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.

Hi John, thanks for the response.

Your replies led me to more doubts but lets clear things up first. Can you explain what do you mean by "I have tried it" ?

When you asked me if the 10x10 is the ROI I used, do you mean the ROI for calibration or the application? I am using 4x4 for both.

The integration time is the TB + Inter measurement period right? Currently at 200ms and 210ms respectively.

Another thing to note is that I have skipped ref spad calibration since I read somewhere you mentioned it does not make much difference.

Also, how do you get the inner and the outer offset? Since it was set to 0 when setting the offset values.

Hi John, I think is is a mis-reply which should be from another post.

Message posted to wrong question - deleted.


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.

My replies were getting posted incorrectly. What a mess. 

Without a signal return, you cannot get a range. Limiting your SPAD array to 4x4 will impact the distance at which you can range. Adding integration time will help. If your signal response still is not large enough, you will have to expand your 4x4 to something larger. 

To get the accuracy in the datasheet we need 0.5Mega counts. Below that we send status=2 warning you the accuracy is in question. If you can live with it, then you can lower the signal limit. 

Your distance will be valid - but your accuracy will suffer. Up to you to decide what is valid.

You are facing a near impossible situation. Your signal is too low. Increase the timing budget, the SPAD array or the brightness of your target. 

getting a ghost 2.2 -2.7meter target is a new one on me. But then if I get a 2 error, I reject the entire range. Accepting the 2 error, might lead to this issue. 

In my testing a 4x4 FoV severally limits your range. I wouldn't think that you could range to 2.2 meters at all unless your target were exceptionally reflective.

- johjn


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.

Hi John,

The integration time refers to TB + Inter measurement period? Is that correct?

Also, what would be the expected range if the sensor is not pointing to anything? e.g open air.

Not quite. The timing budget is how long you allow the sensor to range. It's basically the integration time plus overhead. The inter-measurement time is the time from the start of one measurement to the next. 

It's very possible to have a timing budget of 20ms and an inter-measurement time of 40ms, meaning the sensor is in low power mode for 50% of the time. 

But if you are running continuously then they are the same.

When pointing the sensor out into space, you should get a low-signal error, saying simply, you got no return photons. 

- 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.