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.

Compiler/OPT8241-CDK-EVM: How do I calibrate in the Voxel viewer?

Part Number: OPT8241-CDK-EVM

Tool/software: TI C/C++ Compiler

Hello Ti Team,

I am trying to calibrate the OPT8241 from the voxel viewer.

I start to create the parameters for the test.

I created a new profile in Voxel viewer (v0.9.10). The base is "Lens only".
I changed the value of mod_freq1 from "40MHz" to "30MHz" through "Parameters".
I shut down the viewer and run the viewer.
However, the value of mod_freq1 still remains at 40 MHz. How do I update this? Does this apply to frequency calibration?

Thanks,

JH Bae

  • Whenever you start VoxelViewer, the default profile will change registers, including mod_freq1 and mod_freq2. Try change the frequencies using Parameters window, then create a new profile (without doing any calibration). When you reopen Voxel Viewer next time, select that new profile.
  • I do not understand well.

    1. Connect the TI CDK to the PC via USB and power on.

    2. I run Voxel Viewer (v0.9.10).

    3. Select "Camera Profiles" in the viewer and run "Manage Profiles".

    4. In the "Manage Profiles" window, select "Add".

    5. The "Calibration Wizard" window appears.

    6. In the "Calibration Wizard" window, uncheck the "Calibration to perform" checkbox.

    6. In the "Calibration Wizard" window, under "Camera Profile", select "Select Camera Profile" and select "Add New".

    7. In "Camera Profile", type "DEMO" in "New Camera Profile Name".

    8. In "Parent Camera Profile", select "Lens only".

    I do 1 to 8 times.

    Where can I change and save to conf the frequency?

    You can find "Parameters" on the right side of the "Point Cloud" window in the viewer.

    I can find "mod_freq1" and "mod_freq2" here.

    I also tried this.
    Select "Lens only" and change the value of "mod_freq1" from 40MHz to 30MHz.
    Then create a new profile. Load a new profile. But it's 40MHz.

  • Unfortunately, for settings other than the calibration settings, you have to do the changes manually.

    It seems that you are using the "Lens only" profile present in the host. This profile will not have the correct Lens Parameters and you have to do lens calibration. 

    To create a new profile, use the following steps: 

    1. Go to ~/.Voxel/conf (C:/Users/../.Voxel/conf)
    2. Open "TintinCDKCameraNoCalibration.conf" using a text editor (like Notepad ++ )
    3. Copy the contents and Paste to a new file (name it Demo.conf - this should be present in ~/.Voxel/conf)
    4. Under [global], make the following changes:
      1. set id = 160 (or some unique value)
      2. set name = DEMO
    5. Under [defining_params], set mod_freq1 = 30 (the required value)
    6. set mod_freq2 = 30 (if you do not want dealiasing)
    7. set dealias_en = False
    8. Change intg_duty_cycle to a required value

    After this, open "TintinCDKCamera.conf". Add Demo.conf to the camera_profiles under the [core] section. 

    Restart Voxel Viewer and you should see a profile called "DEMO".

  • To make mod_freq1 and mod_freq2 identical in conf, you only need to run with a single frequency. Is that right?
    If so, I can get depth distances up to 5.0m (f = 30MHz). Right?
    What are the values for phase <1> and phase <2> in nonlinearity calibration?
    Can I just read and enter the value of "phase_avg" from the Voxel viewer?
  • Yes, if you make mod_freq1 and mod_freq2 identical in conf, it will run with a single frequency. You also need to set dealias_en parameter to False.

    Since you're only using a single frequency, you only need to use phase<1> for non-linearity calibration. You can use phase_avg value. Ignore phase<2> - that is only needed for dealiasing mode.
  • I have done your advice.
    However, if you set the dealias_en parameter to "False", I see a lot of line noise in the image.

    I perform cross-talk correction.
    However, there is no change in the image.

    If I set the dealias_en parameter to "TRUE", it will get a uniform image.

  • When performing "Nonlinearity Calibration", let us know the application of 90 degrees, 180 degrees, 270 degrees of phase period. Do I have to input each of these phase values?
  • When you set dealiasing_en = false, you also have to set quad_cnt_max to 4. When performing linearity calibration, please use 360 degree option. You can use the Calibration Wizard tool (inside Voxel Viewer, or the standalone tool). You input a CSV file of collected distance-vs-phase data.
  • I inquire about "Lens Calibration".
    I got lens parameters.
    The value of fx, fy was found to be 230.
    I infer the focal length of the lens.
    -> 230pixel * 15um = 3450um = 3.45mm
    I looked up the specifications of the lens.
    I found a focal length of 3.37mm in the training material.
    The error of the focal length is within 5%.
    -> 1- (3.37/3.45) = 2.3%
    am i right?

    So how much did you set the WD between the focus chart and the camera to focus its lens?
  • I have done "Nonlinearity Calibration" from 0.4m to 1.0m.
    A measurement distance of about +0.3 m is offset from the actual distance.
    If you have a way to set the "global offset", let me know.
  • For correcting the global offset, you need to do Common Phase Offset Calibration as well. The calibrations should be done in the following order: 

    1) Lens Calibration

    2) Non-linearity calibration

    3) Common Phase Offset Calibration

    4) Pixel- Wise Phase Offset Calibration. 

    You should check the results after doing all four calibrations. 

  • "global offset" is what common offset calibration will do. Please make sure that calibration is done.
  • Please perform common phase and pixel-wise phase offset correction as well for correcting for the "global offset"