cancel
Showing results for 
Search instead for 
Did you mean: 

Timing configuration difference between VL53L1X ULD and API

mf101
Associate II

We are currently investigating an issue with corrupted measurement results of an VL53L1X using the ULD API in short range mode. The sensor delivers results with status ok but completelely wrong ranging values at target distances exceeding the range of 1.4m (e.g. at 2.3m). This holds true especially for the lowest timing budget of 15ms, and becomes more unlikely with larger timing budgets.

When looking at the timing values which are configured by the full API some differences occured (please see the following picture for details).

0693W000008znjxQAA.jpgEspecially the register values VL53L1_MM_CONFIG__TIMEOUT_MACROP_A and VL53L1_MM_CONFIG__TIMEOUT_MACROP_B differ, while others are identical.

The values of the two registers VL53L1_RANGE_CONFIG_TIMEOUT_MACROP_A and VL53L1_RANGE_CONFIG_TIMEOUT_MACROP_B are close for larger timing budget values, but differ by a large amount for low timing budget values.

Why do ULD and full API use different values for the same timing configuration ? Are the ULD values not correct and might explain the measurement corruption for low timing budget values ?

3 REPLIES 3
John E KVAM
ST Employee

Your basic problem is called Radar Aliasing. Google has some good explainations. But the short explaination is that light from pulse N comes back after the sensor sends out pulse N+1. The sensor assumes the light was returning from the most recent pulse. So if you max range is 1.2M (in short mode) and your target is at 1.6M you will get .4M. We tried to prevent this issue by using two timings (A and B) Because they have different pulse repetition timings, they are used to detect this. But to be honest it just pushes out the 'wrap point'.

In the ULD we hand tweaked the A and B timings to get the best result from the few timing budgets we support. The full driver has to handle any timing budget. So they will be slightly different.

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

I could understand a slight difference but as you can see in my document this is only the case for larger timing budgets. For small timing budgets the difference is massive and also VL53L1_MM_CONFIG__TIMEOUT_MACROP_A / B are completely different in general. Do you have an explanation for this ?

John E KVAM
ST Employee

The longer timing budgets have plenty of time to make good measurements. We were not concerned by them. But we hand tweaked the smaller timing budgets to get the absolute most out of time alloted. After a couple of years I don't honestly recall what tradeoffs we made, but I do remember spending less time on the temperature adjust so we could spend more time on rangeing. (Thus the temp will only adject +/- 2 degrees C per range for the shorter timing budgets.)

I remember spending days and days on those registers, and I stand by them.

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