cancel
Showing results for 
Search instead for 
Did you mean: 

MULTIZONES_SCANNING preset mode: ambient value abnormal. What can be the cause?

VNava
Associate III

Hi! My name is Vincenzo.

In the last week I devoted myself to study the example application written by ST for the ToF VL53L1 (VL53L1CB).

I was interested in being able to better understand the MULTIZONES_SCANNING mode. In the example, the field of view of the ToF is divided into 2 zones. Based on this, I am attempting to write an application similar to ST's 2D LIDAR. I would like to divide the FoV of the ToF into 9 zones.

At first I thought I had succeeded, but lately I noticed that periodically, some zones detect a particular high ambient value. The curious fact is that this "anomaly" of the ambient value seems to depend on the number in which the field of vision is divided. For example, if I divide it into 10 Zones instead of 9 I don't run into this anomaly. If I divide it into 8 I encounter the anomaly again, but it appears in a reduced form, but more frequently. In the most interesting case, the one in which I divide the FoV into 9 zones, I register ambient values ​​that are about 5-6 times the value recorded by the other measurements.

In a terminal I printed the measurements and above all the AmbientPerSpad value.

Case 9 zones:

0693W000005AWTtQAO.pngCase 10 zones:

0693W000005AWP8QAO.pngAs can be seen in the 9-zone case, the Ambient value is altered by 5 times every 3 measurement cycles. I posted 3 tests done in 3 environments with 3 different lighting. the factor 5 is noted in all 3 cases. Instead in the case with 10 zones, no alteration occurs.

What can be the cause?

If you need more information I can try to be clearer.

Thanks in advance,

Vincenzo

1 ACCEPTED SOLUTION

Accepted Solutions
John E KVAM
ST Employee

The L1CB can automatically sequence between 4 zones, but if you want more zones you can change the zone setting during one range, and they will take effect on the next range. Care must be taken to change the zone dimensions for range N after the range N-1 has begun but before range N starts.

A good bit of expample code is in the 2D lidar demo that can be found on ST's web site.

STSW-IMG017 - 2D LIDAR using multiple VL53L1X Time-of-Flight long distance ranging sensors

(This example uses 9 sensors, and 13 zones per sensor.)

This example uses the UltraLite driver, but you can do the same thing with the other driver although the calls to change the zone are different.

I'm assuming this is what you are doing.

If you have a coverglass, the amount of crosstalk can change quite a bit with the different zones.

But it would be a small matter to change the calibration data between ranges.

I realize i did not address your ambient light question - basically i cannot explain that.

Can you run your experiment in a place were there is no sunlight - so the Ambient should be near zero.


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.

View solution in original post

3 REPLIES 3
John E KVAM
ST Employee

The L1CB can automatically sequence between 4 zones, but if you want more zones you can change the zone setting during one range, and they will take effect on the next range. Care must be taken to change the zone dimensions for range N after the range N-1 has begun but before range N starts.

A good bit of expample code is in the 2D lidar demo that can be found on ST's web site.

STSW-IMG017 - 2D LIDAR using multiple VL53L1X Time-of-Flight long distance ranging sensors

(This example uses 9 sensors, and 13 zones per sensor.)

This example uses the UltraLite driver, but you can do the same thing with the other driver although the calls to change the zone are different.

I'm assuming this is what you are doing.

If you have a coverglass, the amount of crosstalk can change quite a bit with the different zones.

But it would be a small matter to change the calibration data between ranges.

I realize i did not address your ambient light question - basically i cannot explain that.

Can you run your experiment in a place were there is no sunlight - so the Ambient should be near zero.


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.

Hi John!

Thanks for your support and advice.

If I understand correctly, I was wrong to simply modify the example code found in the X-CUBE-53L1A2 software which uses the MULTIZONES_SCANNING mode. In fact, I have simply increased the number of zones from 2 (number used in the example) to 9 (number that I would like to use). You are advising me to be careful when I choose to divide the FoV into more than 4 zones, is that correct? I should follow the 2D LIDAR example. I was trying to do something similar, but the two APIs seemed different to me. In particular, in my opinion, the two key function (VL53L1_SetROI and VL53L1X_SetROI) should be used differently in the two cases since they have two similar but not the same purposes.

Anyway, Thanks to your advice, I will see how to faithfully replicate the 2d lidar application with the new API for VL53L1.

It would be useful to know if in your opinion Am I wrong to say that the two functions have to be used differently?

Thank you for your support and your time!

Vincenzo

John E KVAM
ST Employee

When we wrote the full driver, the authors tried to make the VL53L1_SetROI() easy for the user by specifying the corners of the area of interest. But that used a lot of code and violated the mandate of the UltraLite driver - which was to make something small.

For the UltraLite driver we make you set the size of the rectangle - and then choose the center SPAD. And this takes more work on your part as you must understand the layout of the SPAD array - which is not obvious.

But you are right. The functions accomplish the same thing, but have different arguements.

  • john

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.