cancel
Showing results for 
Search instead for 
Did you mean: 

Vl6180x cross-talk calibration procedure

Andy_Chien
Associate II

I am currently trying to perform the Cross-talk calibration procedure, but I am confused because the procedures mentioned in the documents "Proximity and ambient light sensing (ALS) module" and "VL6180X cross talk compensation implementation" are somewhat different.

The document "Proximity and ambient light sensing (ALS) module" mentions that the offset needs to be written before performing the measurement, 

Andy_Chien_0-1721576321533.png

but this is not mentioned in the document "VL6180X cross talk compensation implementation."

Andy_Chien_1-1721576504341.png

Additionally, the "VL6180X cross talk compensation implementation" document uses RESULT__RANGE_RAW. Could you please advise which one I should follow? Thank you.

 

1 ACCEPTED SOLUTION

Accepted Solutions
John E KVAM
ST Employee

Andy - 

The issue is that the offset affects the crosstalk and the crosstalk affects the offset.

So the solution is to do the offset cal with a close bright target. If one gets a few thousand photons from the crosstalk and a many, many million from the target, the few zero-distance photons won't affect the result. 

The crosstalk is calculated from the number of photons received, the known answer and the measured answer. With that we can tell how many zero-distance photons there were - but only if the known and measured answers are different by 10 or 20%. 

To get that difference, use a dull gray target that does not return a huge number of photons. Range on it at different distances until you get the 10-20% difference. Then do your crosstalk calibration at the point. Note that at some distance D, the diameter of the target has to be at least 1/2D. We need to cover the entire field of View.

RESULT__RANGE_RAW is the answer BEFORE the crosstalk calibration is applied. Don't apply the crosstalk again if you run the algo twice. Doing this makes a mess.

As to which to follow - Follow the calibration procedure. If you have questions, you should find the answers in the implementation manual.


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

1 REPLY 1
John E KVAM
ST Employee

Andy - 

The issue is that the offset affects the crosstalk and the crosstalk affects the offset.

So the solution is to do the offset cal with a close bright target. If one gets a few thousand photons from the crosstalk and a many, many million from the target, the few zero-distance photons won't affect the result. 

The crosstalk is calculated from the number of photons received, the known answer and the measured answer. With that we can tell how many zero-distance photons there were - but only if the known and measured answers are different by 10 or 20%. 

To get that difference, use a dull gray target that does not return a huge number of photons. Range on it at different distances until you get the 10-20% difference. Then do your crosstalk calibration at the point. Note that at some distance D, the diameter of the target has to be at least 1/2D. We need to cover the entire field of View.

RESULT__RANGE_RAW is the answer BEFORE the crosstalk calibration is applied. Don't apply the crosstalk again if you run the algo twice. Doing this makes a mess.

As to which to follow - Follow the calibration procedure. If you have questions, you should find the answers in the implementation manual.


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.