cancel
Showing results for 
Search instead for 
Did you mean: 

Finding the VL53L1X XTALK calibration distance

MRoso.1
Associate II

I am trying to perform the XTALK calibration for my system that includes a coverglass on top of the sensor. I am not exactly sure what the point of calibration should be. I've read in the forum: "When doing crosstalk calibration you need to find a target and a distance where the sensor reports a range that is 10-20% shorter than it should be."

Document UM2356 shows:

0693W00000Y8QTuQAN.pngwhich shows the calibration point to be when the measured distance is the same (and lower) for an increasing target distance.

Document UM2039 shows:

0693W00000Y8QUEQA3.pngwhere the point is a bit after the curve.

In my case I get this which is pretty instant after a certain point:

 0693W00000Y8QysQAF.pngShould I use the max point (orange arrow) or the point before that (red)? The max point is 2353mm (actual) and I am measuring 2150mm (sensor) (8.5% deviation).

Does the fact that the XTALK calibration distance is so big (2.3m) mean that my coverglass is of good quality?

thanks

1 ACCEPTED SOLUTION

Accepted Solutions
John E KVAM
ST Employee

When you calibrate you are trying to find an object that technically gives you the wrong answer.

After calibration it should give you the right answer.

But when you found a target good for calibration, you found a target that is basically hard to see.

Calibration will not make you see things at a farther distance. I will just give you better answers at the distances you can see.

770 might be as far as you can see a black target. Kind of depends on how non-reflective your black is.

A Rust-oleum flat black is about 5% reflective at 940nm. Consider that your worst case. Most everything else is more reflective than that.

Once calibrated, try a more 'normal' object. The kind of things your application expects to see. What distance does that give you. If that is satisfactory, you are good.


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.

View solution in original post

6 REPLIES 6
John E KVAM
ST Employee

First,, you have a GREAT coverglass. If you get to 2meters with almost no deviation then maybe you don't even need to do coverglass correction based on your use case. Say you only need to know if someone was approaching - this would work just fine.

You could indeed use that 2353 distance. Or perhaps anything above 2200.

But the first thing to do is try a target that is a lot less reflective. I doubt your manufacuring house is going to want to build a 2 meter space used only for this.

Get a big piece of cardboard, and find some dark gray flat black paint. Several coats please.

Retry your rangeing.

The duller target should give you deviation at a much shorter distance. And one note. Make sure the diameter of the target is at least 1/2 the ranging distance. Too small a target can throw you off.


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.

I went ahead and spray painted some cardboard. I am indeed seeing the deviation at a much shorter distance of 778mm (actual) and 609mm measured.

At that point I calibrated XTALK which gave a result of 4890.

I then set that value with VL53L1X_SetXtalk.

However the range of distance I can now measure is still the same on the black cardboard, meaning I can only measure 0-770mm with this waveform peaking at around 770mm:

0693W00000Y8YaeQAF.png 

thanks

John E KVAM
ST Employee

When you calibrate you are trying to find an object that technically gives you the wrong answer.

After calibration it should give you the right answer.

But when you found a target good for calibration, you found a target that is basically hard to see.

Calibration will not make you see things at a farther distance. I will just give you better answers at the distances you can see.

770 might be as far as you can see a black target. Kind of depends on how non-reflective your black is.

A Rust-oleum flat black is about 5% reflective at 940nm. Consider that your worst case. Most everything else is more reflective than that.

Once calibrated, try a more 'normal' object. The kind of things your application expects to see. What distance does that give you. If that is satisfactory, you are good.


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.

Right, got it.

I tried also from a lower actual distance of 410mm and measured 365mm (11% error) and got 5277. After this calibration however, the sensor is over ranging after about the 750mm mark. This over ranging is present when I just try to range a white wall which without the calibration would otherwise show correct results. So I am trying to full-proof the design by calibrating it since I am not yet sure about the actual max distance that it will have to range.

The cardboard I use is 1.5x1.5 meters so there shouldn't be an issue there with a calibration distance of 410mm.

There is a similar post about over ranging here but I couldn't find anything useful there.

Thanks

MRoso.1
Associate II

One more thing, I haven't performed RefSPAD calibration. The datasheet says this should be done for cover glass applications.

The VL53L1X ULD driver that I am using doesn't have this function however. Is that included in the VL53L1X_CalibrateXtalk function?

What steps should I take about this, should I use the full driver?

Document UM2510 shows that the ULD API has Dynamic SPAD selection:

0693W00000Y8kHyQAJ.pngDoes that mean that I don't have to do any SPAD management?

thanks

John E KVAM
ST Employee

that means from one range to the next, we analyze the number of photons received and adjust the number of spads we use for the next range. Using all the spad with a near or bright target just wastes power. (After every 'hit' the spad must be reset.)

If life were perfect we would get 20Msamples per second. More than that we turn off spads.

In subsequent releases we have better adjustment of the timeing budget in the ULD.

We kind of gave up on the whole concept of refSpad calibration. Turns out the value in the chip is good enough, and re-calibration was not leading to better results. So it was left out of the newer drivers.

(The ULD was written well after the full API due to customer requests.)

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