This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RE: OPT3101: application questions

Other Parts Discussed in Thread: OPT3101

Hi Gordon

Here I have a few questions about performance and some printed data to consult.

1. After 5 calibration steps, I conducted relevant tests on the accuracy and repeatability of the ranging. Figure 1 and Figure 2 below are my initialization Settings, and only TX0 is used on the hardware. Figure 3 shows the curve tested by us. The horizontal coordinate is the actual distance (unit: mm), and the vertical coordinate is the distance read by opt3101 (phase*0.23). At close range, the accuracy and repeatability of the range is good, but the performance at long distance is not very good. According to the upper and lower limits of my automatic HDR design, the white detection object is 150mm-10000mm, and the lighting driver uses a higher current (31*5.6mA). Why is there such a difference in performance between close and long distance? Figure 4 shows the maximum - minimum values of the distance read at each distance(the actual physical distance will be slightly biased).

2. Apply this->measureIllumCrosstalkSet(true); When the function is calibrated for illumination crosstalk, what does the magnitude variable mean and why the value I get is very strange, as shown in Figure 5. (You can only focus on TX0 data, only TX0 is used)

Thanks!

  • Meiling,

      You have a calibration issue. You must use the System Estimator Tool to verify that your optics can in fact operate to 10000mm. Then you must use the Configurator Tool to set the 4 output currents needed for calibration and for the distance you are trying to measure. For this distance you must use Super HDR.

    In HDR mode, the current can switch between 2 current settings on one TX channel, and with super-HDR, TX1 can be used to add 2 more current settings.

    The currents are set in the Configurator tool based on the design of your system. Then output the cpp by selecting the create configuration file in the lower right corner. Replace the existing "OPT3101_configuration.cpp" with the new file in the SDK.

    You need to determine the correct distances for each current. The documentation recommends doing phase offset calibration at a target distance where the amplitude is between 16000-24000. The preset values in the SDK are arbitrary and definitely don’t follow this rule. The values are set like below in OPT3101Coefficients.cpp.

     

    void environmentalController::manuallySetReferenceDistances(){

           this->refDistancesInMM[0][0]=50;

           this->refDistancesInMM[0][1]=120;

           this->refDistancesInMM[1][0]=60;

           this->refDistancesInMM[1][1]=150;

           this->refDistancesInMM[2][0]=0;

           this->refDistancesInMM[2][1]=0;

    }

     The indexing on refDistancesInMM is [Tx channel] and [current setting, 0 being H and 1 being L]. In order for them to find the proper distances to set for each current and tx setting, you will need to change your configuration to do just one current, flash that, and see at what distance you can get 16000-24000 codes for that particular current. At higher currents, that distance will be pretty far with a white background, so you can use darker backgrounds in order to get lower amplitude settings, but they’ll need to remember what current settings used what color background when you do the calibration.

     Once you know these distances, you can enter that into OPT3101Coefficients.cpp and then use super-HDR configuration and perform the calibration.