2023-03-09 02:46 PM
Dear Sir,
We use VL53L1X for our application. We use a glass cover and found crosstalk problem.
We try to compensate the crosstalk. There are three functions in VL53L1X ULD driver as
1)VL53L1X_ERROR VL53L1X_SetXtalk(uint16_t dev, uint16_t XtalkValue);
2)VL53L1X_ERROR VL53L1X_GetXtalk(uint16_t dev, uint16_t *Xtalk);
3)int8_t VL53L1X_CalibrateXtalk(uint16_t dev, uint16_t TargetDistInMm, uint16_t *xtalk);
Would you like to tell me how to use these functions to realize the crosstalk compensation?
I would like to get information or calibration procedure steps for crosstalk compensation.
Looking forward to hearing from you soon.
best regards
Dai Sai
2023-03-09 03:13 PM
There is a section in the user manual.
UM2356 - User manual
VL53L1X API user manual
The user manual is where you downloaded the API.
But basically you need to do some ranging and find that point where the sensor returns a range that is 10 or 20% less than the actual range. Use a dark gray target and just do a lot of testing.
When you find that point, call the CalibrateXtalk function and pass it that known distance.
The sensor will do a few ranges get the signal strength, and the result. By knowning the correct distance it will work out how many photons were a result of crosstalk. Call the Get function and store those numbers to your memory somewhere. Next time you boot, call the Set function.
2023-03-09 03:42 PM
Dear John,
thank you very for your reply.
Based on your kind advice, should we do as followings for crosstalk compensation?
Is my understanding correct?
best regards
Dai Sai
2023-03-09 04:14 PM
That would work.
But the Get and Set functions are mirrors of each other.
So after doing the calibrate, do a Get, and store the data.
2023-03-09 05:52 PM
Dear John,
thank you very much for your help.
The Xtalk value obtained from VL53L1X_CalibrateXtalk() is same as Xtalk value from VL53L1X_GetXtalk() or not?
If they are same, I think we do not need to use VL53L1X_GetXtalk. After VL53L1X_CalibrateXtalk(),
we will save the Xtalk returned, and use saved value for every startup. My understanding is OK?
best regards
Dai Sai
2024-01-10 06:36 PM
Hi Dai Sai
After you doing xtalk by VL53L1X_CalibrateXtalk(), if you readout xtalk value by VL53L1X_CalibrateXtalk(), the reading value should be same.
For the saving xtalk data and load the value for next startup, that's correct.
Br
Zhiyuan.Han