2021-04-27 01:56 AM
Hi,
I designed a sensor array containing multiple VL53L1CB sensors. They are configured to scan a 3x3 grid inside its view with multizone scanning. That works great at small distances but suffer a distances above ~1,5m.
Experimentation shows that the sensor never yield reliable results (even with 16x16 zone, 550ms budget, completely dark room with covers down, target is a white wall which should cover the entire FoV) above 2m.
Another issue is the flickering of datapoints. The video shows the issue: VL53L1CB Flickering issue - YouTube
Points in green are valid ranging results (RangeStatus = 0), cyan means RangeStatus = 14 and black is RangeStatus = 7.
The issue is that ranging results cycle through "Not Present", "VL53L1_RANGESTATUS_WRAP_TARGET_FAIL" and "VL53L1_RANGESTATUS_RANGE_INVALID"
even though the RANGE_INVALID is not realy invalid. It is exactly where i think it should measure.
I hope that someone can help me with that issue.
Sincerely
Daniel
2021-04-28 06:59 AM
When you cut down the ROI, you reduce the number of SPADs (Single Photon Avalanche Diodes) that can gather the light. So it does cut down on the distance one can range. Try overlapping ROIs to get a bit more distaces, but perhpas that the expence of resolution.
As far as your experimentation that shows unreliable results above 2m, I'm confused. You have ideal conditions, and in those conditions you should get 8M.
So clearly there is something wrong.
Try with only one sensor running. In ideal conditions like yours it will work.
My guess is that if you have lots of sensors pointing the same direction, they will affect each other. Each sensor sees the others as ambient light. And too much ambient light will reduce the ability of the sensor to range. You can get the ambient light value from your range information. Figure out what it is per SPAD and know how many SPADs are used. That's useful information.
If you truely have 500ms to take a range, run each sensor for less time, and run them sequentially - or in pairs or triplets. Just not all at once.
The rule of thumb is that the accuracy doubles as the timeing budget goes up by four, but there are diminishing returns.
Give me some hard data on how many sensors are running at the same time, the number of SPADS you are using and the ambient light, and I can perhaps give you more ideas.
2021-04-28 07:12 AM
Thank you for your quick reply.
Here is the physical sensor layout, there are 14 sensors in a circle, so they are not overlapping that much.
The flickering and ranging issue persist, even if there is only one sensor ranging. The ROI setup is like this, they are overlapping. In the example video they are all ranging simultaneously, but only running one does not make a difference.
sensor_configs[k].roicount = 9;
sensor_configs[k].minx[ 0 ] = 0 ;
sensor_configs[k].maxy[ 0 ] = 7 ;
sensor_configs[k].maxx[ 0 ] = 7 ;
sensor_configs[k].miny[ 0 ] = 0 ;
sensor_configs[k].minx[ 1 ] = 0 ;
sensor_configs[k].maxy[ 1 ] = 11 ;
sensor_configs[k].maxx[ 1 ] = 7 ;
sensor_configs[k].miny[ 1 ] = 4 ;
sensor_configs[k].minx[ 2 ] = 0 ;
sensor_configs[k].maxy[ 2 ] = 15 ;
sensor_configs[k].maxx[ 2 ] = 7 ;
sensor_configs[k].miny[ 2 ] = 8 ;
sensor_configs[k].minx[ 3 ] = 4 ;
sensor_configs[k].maxy[ 3 ] = 7 ;
sensor_configs[k].maxx[ 3 ] = 11 ;
sensor_configs[k].miny[ 3 ] = 0 ;
sensor_configs[k].minx[ 4 ] = 4 ;
sensor_configs[k].maxy[ 4 ] = 11 ;
sensor_configs[k].maxx[ 4 ] = 11 ;
sensor_configs[k].miny[ 4 ] = 4 ;
sensor_configs[k].minx[ 5 ] = 4 ;
sensor_configs[k].maxy[ 5 ] = 15 ;
sensor_configs[k].maxx[ 5 ] = 11 ;
sensor_configs[k].miny[ 5 ] = 8 ;
sensor_configs[k].minx[ 6 ] = 8 ;
sensor_configs[k].maxy[ 6 ] = 7 ;
sensor_configs[k].maxx[ 6 ] = 15 ;
sensor_configs[k].miny[ 6 ] = 0 ;
sensor_configs[k].minx[ 7 ] = 8 ;
sensor_configs[k].maxy[ 7 ] = 11 ;
sensor_configs[k].maxx[ 7 ] = 15 ;
sensor_configs[k].miny[ 7 ] = 4 ;
sensor_configs[k].minx[ 8 ] = 8 ;
sensor_configs[k].maxy[ 8 ] = 15 ;
sensor_configs[k].maxx[ 8 ] = 15 ;
sensor_configs[k].miny[ 8 ] = 8 ;
sensor_configs[k].minx[ 9 ] = 0 ;
sensor_configs[k].maxy[ 9 ] = 15 ;
sensor_configs[k].maxx[ 9 ] = 15 ;
sensor_configs[k].miny[ 9 ] = 0 ;
sensor_configs[k].delay = 33;
As soon as i get home i will make more measurements with more data (the raw values that are included in the multiranging, espacially ambient light and so on).
When i have time i will try my codebase against a dev board and a single VL53L1 breakout eval boars (SATEL).
Thank you for your help.
2021-04-28 07:58 AM
I don't think the vl53L1CB will automaticly do 9 zones, I thought it's max was 4. Am I wrong? Better double check that.
I have an example of using 9 sensors with 13 zones,
have a look at
2D LIDAR using multiple VL53L1X Time-of-Flight long distance ranging sensors
It uses the VL53L1X sensors - but a L1CB is completely backward compatible.
You can even watch a video of the sensor in action.
Go to youtube and search for 'VL53L1 2D Lidar'.
2021-04-28 09:29 AM
according to UM2133 the VL53L1_MAX_USER_ZONES defines the maximum number of zones (stated in 5.3 Note 1 default = 16, maximum 169).
i saw the video but the VL53L1X is not capable of doing multizone scanning. The VL53L1X requires the roi to be programmed after every measurement which is not an option timingwise.
2021-04-29 03:09 AM
Here are the "raw" values of the measurements, i hope that helps:
Sensor: 0 ROI: 8 Ambient: [15872, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [3059, 65535, 65535, 65535] Status: [12, 255, 255, 255]
Sensor: 1 ROI: 8 Ambient: [9728, 4294967295, 4294967295, 4294967295] EffectiveSpad: 5.0 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
Sensor: 2 ROI: 0 Ambient: [11264, 4294967295, 4294967295, 4294967295] EffectiveSpad: 50.3125 Range: [3722, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 3 ROI: 0 Ambient: [319488, 319488, 320000, 319488] EffectiveSpad: 52.3125 Range: [355, 1605, 2659, 3640] Status: [12, 1, 12, 4]
Sensor: 4 ROI: 0 Ambient: [80896, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [819, 65535, 65535, 65535] Status: [12, 255, 255, 255]
Sensor: 5 ROI: 0 Ambient: [125440, 125440, 125440, 4294967295] EffectiveSpad: 51.75 Range: [591, 1616, 3786, 65535] Status: [7, 7, 4, 255]
Sensor: 6 ROI: 0 Ambient: [10752, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.53125 Range: [1103, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 7 ROI: 0 Ambient: [12800, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [1269, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 8 ROI: 0 Ambient: [15872, 4294967295, 4294967295, 4294967295] EffectiveSpad: 55.3125 Range: [1089, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 9 ROI: 0 Ambient: [12800, 4294967295, 4294967295, 4294967295] EffectiveSpad: 54.53125 Range: [1082, 65535, 65535, 65535] Status: [11, 255, 255, 255]
Sensor: 10 ROI: 0 Ambient: [16896, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [586, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 11 ROI: 0 Ambient: [15360, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [1857, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 12 ROI: 0 Ambient: [12800, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [1663, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 13 ROI: 0 Ambient: [7680, 4294967295, 4294967295, 4294967295] EffectiveSpad: 51.75 Range: [15, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 0 ROI: 0 Ambient: [12288, 12288, 4294967295, 4294967295] EffectiveSpad: 48.75 Range: [998, 2046, 65535, 65535] Status: [0, 0, 255, 255]
Sensor: 1 ROI: 0 Ambient: [13824, 4294967295, 4294967295, 4294967295] EffectiveSpad: 0.0 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
Sensor: 2 ROI: 1 Ambient: [12288, 4294967295, 4294967295, 4294967295] EffectiveSpad: 1.0 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
Sensor: 3 ROI: 1 Ambient: [427520, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.3125 Range: [465, 65535, 65535, 65535] Status: [1, 255, 255, 255]
Sensor: 4 ROI: 1 Ambient: [76800, 76800, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [807, 4099, 65535, 65535] Status: [12, 4, 255, 255]
Sensor: 5 ROI: 1 Ambient: [110592, 110592, 110592, 110592] EffectiveSpad: 46.75 Range: [631, 1428, 2352, 3808] Status: [7, 7, 7, 4]
Sensor: 6 ROI: 1 Ambient: [8704, 8704, 4294967295, 4294967295] EffectiveSpad: 49.09375 Range: [1118, 2086, 65535, 65535] Status: [0, 11, 255, 255]
Sensor: 7 ROI: 1 Ambient: [11776, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [1284, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 8 ROI: 1 Ambient: [14336, 4294967295, 4294967295, 4294967295] EffectiveSpad: 56.53125 Range: [1071, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 9 ROI: 1 Ambient: [12288, 4294967295, 4294967295, 4294967295] EffectiveSpad: 55.53125 Range: [1114, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 10 ROI: 1 Ambient: [12288, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [518, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 11 ROI: 1 Ambient: [14336, 14336, 4294967295, 4294967295] EffectiveSpad: 51.75 Range: [112, 1855, 65535, 65535] Status: [0, 0, 255, 255]
Sensor: 12 ROI: 1 Ambient: [13824, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [1708, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 13 ROI: 1 Ambient: [8192, 4294967295, 4294967295, 4294967295] EffectiveSpad: 51.3125 Range: [20, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 0 ROI: 1 Ambient: [11776, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.53125 Range: [1987, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 1 ROI: 1 Ambient: [13824, 4294967295, 4294967295, 4294967295] EffectiveSpad: 56.3125 Range: [2672, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 2 ROI: 2 Ambient: [12800, 12800, 4294967295, 4294967295] EffectiveSpad: 55.75 Range: [49, 3693, 65535, 65535] Status: [1, 4, 255, 255]
Sensor: 3 ROI: 2 Ambient: [471040, 470528, 470528, 471040] EffectiveSpad: 53.09375 Range: [510, 1399, 1791, 3792] Status: [12, 12, 12, 4]
Sensor: 4 ROI: 2 Ambient: [83456, 83456, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [826, 4092, 65535, 65535] Status: [12, 4, 255, 255]
Sensor: 5 ROI: 2 Ambient: [117760, 117760, 4294967295, 4294967295] EffectiveSpad: 51.75 Range: [602, 3764, 65535, 65535] Status: [7, 4, 255, 255]
Sensor: 6 ROI: 2 Ambient: [12288, 4294967295, 4294967295, 4294967295] EffectiveSpad: 49.09375 Range: [2061, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 7 ROI: 2 Ambient: [24576, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [1309, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 8 ROI: 2 Ambient: [29696, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [1098, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 9 ROI: 2 Ambient: [13312, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [1138, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 10 ROI: 2 Ambient: [10752, 4294967295, 4294967295, 4294967295] EffectiveSpad: 54.75 Range: [500, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 11 ROI: 2 Ambient: [13824, 13824, 4294967295, 4294967295] EffectiveSpad: 51.53125 Range: [103, 1860, 65535, 65535] Status: [1, 0, 255, 255]
Sensor: 12 ROI: 2 Ambient: [11264, 4294967295, 4294967295, 4294967295] EffectiveSpad: 50.75 Range: [1738, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 13 ROI: 2 Ambient: [7680, 4294967295, 4294967295, 4294967295] EffectiveSpad: 6.21875 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
Sensor: 0 ROI: 2 Ambient: [12800, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.3125 Range: [1909, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 1 ROI: 2 Ambient: [13824, 4294967295, 4294967295, 4294967295] EffectiveSpad: 6.21875 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
Sensor: 2 ROI: 3 Ambient: [15872, 4294967295, 4294967295, 4294967295] EffectiveSpad: 15.21875 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
Sensor: 3 ROI: 3 Ambient: [428544, 428032, 4294967295, 4294967295] EffectiveSpad: 53.53125 Range: [355, 2545, 65535, 65535] Status: [12, 1, 255, 255]
Sensor: 4 ROI: 3 Ambient: [80896, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.53125 Range: [805, 65535, 65535, 65535] Status: [12, 255, 255, 255]
Sensor: 5 ROI: 3 Ambient: [123904, 123904, 123904, 4294967295] EffectiveSpad: 50.75 Range: [676, 1603, 3720, 65535] Status: [7, 7, 4, 255]
Sensor: 6 ROI: 3 Ambient: [10240, 4294967295, 4294967295, 4294967295] EffectiveSpad: 55.53125 Range: [1241, 65535, 65535, 65535] Status: [11, 255, 255, 255]
Sensor: 7 ROI: 3 Ambient: [15360, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.53125 Range: [1246, 65535, 65535, 65535] Status: [0, 255, 255, 255]
Sensor: 8 ROI: 3 Ambient: [30208, 4294967295, 4294967295, 4294967295] EffectiveSpad: 54.3125 Range: [1099, 65535, 65535, 65535] Status: [0, 255, 255, 255]
thank you
2021-04-29 05:30 AM
letting only one sensor range i get the following data:
Sensor: 7 ROI: 0 Ambient: [9216, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [3635, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 1 Ambient: [7680, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [3654, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 2 Ambient: [16896, 4294967295, 4294967295, 4294967295] EffectiveSpad: 6.21875 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
Sensor: 7 ROI: 3 Ambient: [16384, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.53125 Range: [3668, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 4 Ambient: [27136, 4294967295, 4294967295, 4294967295] EffectiveSpad: 0.0 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
Sensor: 7 ROI: 5 Ambient: [25088, 4294967295, 4294967295, 4294967295] EffectiveSpad: 6.21875 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
Sensor: 7 ROI: 6 Ambient: [17920, 4294967295, 4294967295, 4294967295] EffectiveSpad: 49.53125 Range: [3720, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 7 Ambient: [11776, 4294967295, 4294967295, 4294967295] EffectiveSpad: 51.53125 Range: [3709, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 8 Ambient: [11264, 11264, 4294967295, 4294967295] EffectiveSpad: 50.53125 Range: [706, 3421, 65535, 65535] Status: [1, 4, 255, 255]
Sensor: 7 ROI: 0 Ambient: [6656, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [65295, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 1 Ambient: [9728, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [65338, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 2 Ambient: [7680, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [65341, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 3 Ambient: [8192, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.53125 Range: [65359, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 4 Ambient: [9728, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.53125 Range: [65331, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 5 Ambient: [8704, 4294967295, 4294967295, 4294967295] EffectiveSpad: 50.53125 Range: [65367, 65535, 65535, 65535] Status: [12, 255, 255, 255]
Sensor: 7 ROI: 6 Ambient: [19456, 4294967295, 4294967295, 4294967295] EffectiveSpad: 49.53125 Range: [65371, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 7 Ambient: [15872, 4294967295, 4294967295, 4294967295] EffectiveSpad: 51.53125 Range: [65395, 65535, 65535, 65535] Status: [7, 255, 255, 255]
Sensor: 7 ROI: 8 Ambient: [9216, 4294967295, 4294967295, 4294967295] EffectiveSpad: 50.53125 Range: [65389, 65535, 65535, 65535] Status: [7, 255, 255, 255]
Sensor: 7 ROI: 0 Ambient: [6656, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [3619, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 1 Ambient: [9216, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [3680, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 2 Ambient: [7680, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [3697, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 3 Ambient: [8704, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.53125 Range: [3638, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 4 Ambient: [9728, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.53125 Range: [3624, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 5 Ambient: [9216, 4294967295, 4294967295, 4294967295] EffectiveSpad: 50.53125 Range: [3728, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 6 Ambient: [19968, 4294967295, 4294967295, 4294967295] EffectiveSpad: 49.53125 Range: [3681, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 7 Ambient: [15872, 4294967295, 4294967295, 4294967295] EffectiveSpad: 51.53125 Range: [3727, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 8 Ambient: [9216, 4294967295, 4294967295, 4294967295] EffectiveSpad: 50.53125 Range: [3684, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 0 Ambient: [7680, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [65314, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 1 Ambient: [8704, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [65353, 65535, 65535, 65535] Status: [7, 255, 255, 255]
Sensor: 7 ROI: 2 Ambient: [14336, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [65335, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 3 Ambient: [16896, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.53125 Range: [65356, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 4 Ambient: [24064, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.53125 Range: [65334, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 5 Ambient: [24064, 4294967295, 4294967295, 4294967295] EffectiveSpad: 50.53125 Range: [65329, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 6 Ambient: [18944, 4294967295, 4294967295, 4294967295] EffectiveSpad: 49.53125 Range: [65371, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 7 Ambient: [14848, 4294967295, 4294967295, 4294967295] EffectiveSpad: 51.53125 Range: [65427, 65535, 65535, 65535] Status: [7, 255, 255, 255]
Sensor: 7 ROI: 8 Ambient: [11776, 4294967295, 4294967295, 4294967295] EffectiveSpad: 50.53125 Range: [65425, 65535, 65535, 65535] Status: [7, 255, 255, 255]
Sensor: 7 ROI: 0 Ambient: [7680, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [3637, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 1 Ambient: [9216, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [3651, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 2 Ambient: [13824, 4294967295, 4294967295, 4294967295] EffectiveSpad: 6.21875 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
Sensor: 7 ROI: 3 Ambient: [16896, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.53125 Range: [3693, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 4 Ambient: [24064, 4294967295, 4294967295, 4294967295] EffectiveSpad: 0.0 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
Sensor: 7 ROI: 5 Ambient: [24064, 4294967295, 4294967295, 4294967295] EffectiveSpad: 6.21875 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
Sensor: 7 ROI: 6 Ambient: [18944, 4294967295, 4294967295, 4294967295] EffectiveSpad: 49.53125 Range: [3745, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 7 Ambient: [15360, 4294967295, 4294967295, 4294967295] EffectiveSpad: 51.53125 Range: [3689, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 8 Ambient: [11776, 11776, 11776, 4294967295] EffectiveSpad: 50.53125 Range: [704, 1989, 3665, 65535] Status: [7, 1, 4, 255]
Sensor: 7 ROI: 0 Ambient: [8704, 4294967295, 4294967295, 4294967295] EffectiveSpad: 53.75 Range: [65303, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 1 Ambient: [8704, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [65358, 65535, 65535, 65535] Status: [7, 255, 255, 255]
Sensor: 7 ROI: 2 Ambient: [7168, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.75 Range: [65376, 65535, 65535, 65535] Status: [12, 255, 255, 255]
Sensor: 7 ROI: 3 Ambient: [10752, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.53125 Range: [65341, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 4 Ambient: [8192, 4294967295, 4294967295, 4294967295] EffectiveSpad: 52.53125 Range: [65321, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 5 Ambient: [7680, 4294967295, 4294967295, 4294967295] EffectiveSpad: 50.53125 Range: [65372, 65535, 65535, 65535] Status: [12, 255, 255, 255]
Sensor: 7 ROI: 6 Ambient: [19968, 4294967295, 4294967295, 4294967295] EffectiveSpad: 49.53125 Range: [65395, 65535, 65535, 65535] Status: [7, 255, 255, 255]
Sensor: 7 ROI: 7 Ambient: [14336, 4294967295, 4294967295, 4294967295] EffectiveSpad: 51.53125 Range: [65410, 65535, 65535, 65535] Status: [7, 255, 255, 255]
Sensor: 7 ROI: 8 Ambient: [13824, 4294967295, 4294967295, 4294967295] EffectiveSpad: 5.0 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
ambient noise seems a bit better but still no valid range measurement. The target is indeed approx 3,5m as shown in some readings (white wall), but the datat points flicker as well (like in the video)
2021-04-29 07:29 AM
It is odd that your SPAD count goes form 51 to 5.
Do you get 'flicker' if you only consider the ranges that have a RangeStatus = 0?
Knowning the RangeStatus is the best way to figuring out what is going wrong.
With a target a 3.5M, you will never see anything with only 5 effetive SPADS. - So use the RangeStatus to discard that data point. It's not valid.
status =255 means "no chance of a target".
status=7 says we think you have "Radar Aliasing" - which you have to google. It's very interesting.
Range 4 means the phase is out of bounds.
But basically we don't have enough photons to give you a reliable answer.
But here's what is going on.
We claim we can see 4M in pretty ideal conditions with all the SPADS turned on. But by limiting the number of SPADS you will limit the max distance.
Somewhere in the data sheet it talks about 8M - but for that you need a very reflective target - like a projector screen.
You've pretty much proven by experiment that given your number of SPADS, the max distance is about 3M - maybe a touch less.
there are about 200 effective SPADs. (256 real SPADS, but some are deliberately occuluded so we can handle extremely high light conditions), and you've limited them to about 1/4. it stands to reason that you are not going to get the max distance.
So I believe you are simply beyond the max capabiities of the device.
2021-04-29 08:38 AM
Perhaps i get something wrong but the numbrr of spads should not be changing when using the same ROI. About 50 spads for a 8x8 seems reasonable when there are 200 spads in total.
But periodic changing to 5 spads is very odd.
Do you know any reason why there are sometimes only 5 spads?
The flickering behaves the same when only using rangestatus = 0 readings. The video shows the rangestatus (indicated by color, green is RangeStatus = 0, cyan means RangeStatus = 14 and black is RangeStatus = 7. Other colors represent other RangeStatus values but they are not part of the flickering issue.
Dont get me wrong, i did not expect a range results up to 8m using when using a smaller ROI, but i kind of expected stable results < 4m for things like walls.
I can arrange myself with the "low" distance, but no reliable results (espacially such flickering/waving motion, indication that every second measurement is invalid) seems very odd to me.
2021-04-30 04:49 PM
Another follow up with more measurements:
I filtered the measurements to show only the largest roi from one sensor (facing to the wall). Using 500ms budget now.
Sensor: 7 ROI: 9 Ambient: [31744, 4294967295, 4294967295, 4294967295] EffectiveSpad: 16.4375 Range: [8191, 65535, 65535, 65535] Status: [255, 255, 255, 255]
Sensor: 7 ROI: 9 Ambient: [33792, 4294967295, 4294967295, 4294967295] EffectiveSpad: 206.5625 Range: [65419, 65535, 65535, 65535] Status: [12, 255, 255, 255]
Sensor: 7 ROI: 9 Ambient: [33792, 4294967295, 4294967295, 4294967295] EffectiveSpad: 206.5625 Range: [3729, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 9 Ambient: [33280, 4294967295, 4294967295, 4294967295] EffectiveSpad: 206.5625 Range: [65419, 65535, 65535, 65535] Status: [7, 255, 255, 255]
Sensor: 7 ROI: 9 Ambient: [33280, 4294967295, 4294967295, 4294967295] EffectiveSpad: 206.5625 Range: [3733, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 9 Ambient: [34304, 4294967295, 4294967295, 4294967295] EffectiveSpad: 206.5625 Range: [65425, 65535, 65535, 65535] Status: [7, 255, 255, 255]
Sensor: 7 ROI: 9 Ambient: [34304, 4294967295, 4294967295, 4294967295] EffectiveSpad: 206.5625 Range: [3726, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Sensor: 7 ROI: 9 Ambient: [34304, 4294967295, 4294967295, 4294967295] EffectiveSpad: 206.5625 Range: [65418, 65535, 65535, 65535] Status: [7, 255, 255, 255]
Sensor: 7 ROI: 9 Ambient: [34304, 4294967295, 4294967295, 4294967295] EffectiveSpad: 206.5625 Range: [3736, 65535, 65535, 65535] Status: [4, 255, 255, 255]
Ambient seems rather low (its the raw value, not divided by anything). EffectiveSpad count seems also okay (like you mentioned about 200 spads with full roi).
The measurements cycle between RangeStatus 4 and 7. 7 Gives a pretty accurate result with about 3.7m, but i dont get why every second measurement is considered "VL53L1_RANGESTATUS_OUTOFBOUNDS_FAIL".
Another video of the issue that every second measurement of a ROI is not valid: Flickering 2 - YouTube
there you clearly see the 3x3 + 1 Grid appearing slowly and then vanishing again. I don't think that this is an expected behaviour. At least i can't think of a reason.