cancel
Showing results for 
Search instead for 
Did you mean: 

VL53L4CX Difference between the two modes of offset

sctz
Associate III

Hi,

I would like to ask about the difference between the two modes of offset (PerformOffsetSimpleCalibration and PerformOffsetPerVCSELCalibration).

Because when the crosstalk calibration value is high

(calibrationData.customer.algo_crosstalk_compensation_plane_offset_kcps>8000),

I use the " PerVCSELCalibration" mode, the offset calibration value will be very large, causing my distance data to wait a lot.
But when the crosstalk calibration is high and I use "SimpleCalibration" mode, the offset calibration value is not very large and the distance data is normal.
So I would like to know more about it:
1, the difference in how the two offset modes work.
2, does the crosstalk calibration value have any effect on the offset calibration?

Thanks

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
sctz
Associate III

I find the problem.

When the IC detects two objects, its offset function  does not filter the wrong data well. You need to manually change the offset API, and after picking the data, the value is OK.
I couldn't understand why the xtalk function didn't work sometimes when offset function  was working, but that's what I found.
I hope this helps someone with the same problem in the future.

View solution in original post

4 REPLIES 4
John E KVAM
ST Employee

Offset

When you reflowed the sensor onto your board the extreme heat changed it ever so much. And the speed of light is pretty fast. This means you will get an offset on your measurements. You might have to add or subtract as much as 2cm to all your ranges. It's internal to the chip.

One does this by taking a rather reflective target - like white paper and putting close. (default is 140mm). 

Range a bunch of times, average the result and store the difference between the averaged result and the actual distance in a register.

Crosstalk acts differently. As the photons hit off your coverglass and reflect they will essentially have a distance of zero. If one averages a 1000 zero distances along with 1000 photons at 50cm, one would expect the average to be 25cm. A really bright target at that same distance might have 20Million photons and so the few from your coverglass would have no effect. 

If you were using the VL53L0, L1X, or L4X you would have to find a point where a dull target under ranged 10 or 20%. The offset calculation will take the number of photons received an the range value and the true value and work out how many zero-distance photons to subtract in subsequent ranges. That number is what goes into the crosstalk register. 

The crosstalk procedure for the histogram chips is easier. These include the VL53L1CB, the VL53L3, and your VL53L4CX. Either place a dull target at 60cm or point the device out into space. 60cm is the distance the light will travel in the 2uSec the VCSEL light is on. The sensor will record directly how many photons are returned by the cover glass. 

With improper offset all you measurement will be long or short by a fixed amount. 

With improper crosstalk your measurements will be short by a small amount when the target is near and by a larger amount as the distances increase (and the signal drops). With your histogram-based sensor, there will be no more crosstalk effect after about 60 or 80 cm.

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

Hi, thanks for your answer about offset and crosstalk, I have understood about how crosstalk is handled.

I still have some questions about offset.
In the user manual  offset has two calibration modes to choose .
Each mode returns  different calibration parameter.
"VL53LX_PerformOffsetSimpleCalibration" returns
"algo__part_to_part_range_offset_mm
- mm_config__inner_offset_mm
- mm_config__outer_offset_mm"
"VL53LX_PerformVCSELCalibration" return
"
- short_a_offset_mm
- short_b_offset_mm
- medium_a_offset_mm
- medium_b_offset_mm
- long_a_offset_mm
- long_bb_offset_mm
"
When I use "VL53LX_PerformOffsetSimpleCalibration", the return parameter is normal (-20~20).
When I use "VL53LX_PerformVCSELCalibration", "long_bb_offset_mm" sometimes becomes very large (over 200).
This causes me to get distances that are OK->NG->OK... Alternate
I'm wondering about these two modes and the meaning of these parameters, it helps me to find the problem with the way I calibrate, can you assist in explaining this? Thanks.

Jacob WOODRUFF
ST Employee

Hi All,

 

This post has been escalated to the ST Online Support Team for additional assistance. We'll contact you directly.

 

Regards,
Jake

ST Support

sctz
Associate III

I find the problem.

When the IC detects two objects, its offset function  does not filter the wrong data well. You need to manually change the offset API, and after picking the data, the value is OK.
I couldn't understand why the xtalk function didn't work sometimes when offset function  was working, but that's what I found.
I hope this helps someone with the same problem in the future.