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.

AWR1843: Where are the calibration parameters in automotive lab demo mrr?

Expert 2050 points
Part Number: AWR1843

Can you please let us know where the Calibration parameters locate in automotive lab demo mrr?

I guess the definitions in below file are the Calibration parameters, but not sure. 

mrr_config_chirp_design_MRR120.h

mrr_config_chirp_design_MRR80.h

mrr_config_chirp_design_USRR20.h

mrr_config_chirp_design_USRR30.h

mrr_config_chirp_design_USRR50.h

Kind regards

  • Hi Lei,

    All these files contain the RF-front parameters for different usecase or distance (MRR/SRR) configurations.

    Device does many of the boot time and run time calibration internally, application needs to configuration or enable those options.

    Which of the calibration parameters you are enquiring here?

    Regards,

    JG

  • Thank you very much.

    We tested our prototype Radar sensor and find the positioning is not very accurate. The obstacle is right in front of the Radar sensor, but the displayed position is shifted to the left. Are the parameters related with this issue in those files?

    Kind regards

  • Hi,

    No, the calibration parameters are not provided

    Here are the steps that need to be performed

    1. Place corner reflector at boresight at range ~ 1m
    2. Create a Lua Script to Collect Raw Data
      1. 5-10 frames is sufficient
    3. Collect Raw Data with DCA1000
    4. Update in matlab script the coefficients to 1
    5. Use matlab scripts to generate the coefficientshttps://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/1023/3312.Straight_5F00_Forward_5F00_Processing_5F00_with_5F00_chirp_5F00_configs_5F00_16xx_5F00_DCA1000.m

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/1023/2577.test_5F00_bench.m

    Thank you

    Cesar

  • Hi Cesar,

    Thank you very much. I just start to learn calibration. 

    For your comments, can I ask more questions. 

    1. Can you please explain why calibration parameter are not provided? Do you mean calibration parameters are not exist in the source file of mrr lab demo? or they are stored in somewhere else and cannot be read and loaded via debuger? To my understanding, the calibration parameters just like configuration parameters, should be able to be saved and loaded to/from the memory. In our case, if the device has angle detection issue caused by incorrect calibration parameter, how to fix it? I think we need to know how to update the calibration parameter.

    2. Thank you for give the procedures. Can you please introduce more details about the purpose of each step? It seems the calibration procedure, but I do not quite understand the meaning of each procedure. 

    3. We do not have DCA1000, we have Radar device prototype base on AWR1843 module, AWR1843Boost. Can we use AWR1843Boost instead of DCA1000 to collect Raw Data?

    Kind regards 

  • Hi,

    In order to understand the calibration, it is helpful to look at the mmWave SDK oob documentation. The mmWave SDK implements this calibration

    The section in the documentation is called

    Range Bias and Rx Channel Gain/Offset Measurement and Compensation

    Millimeter Wave (mmw) Demo for XWR16XX

    There are several threads on this forum related to this feature

    Please use google site search as follows to find additional information.

    site e2e.ti.com rangebias

    In the mmwave SDK demo, the data collection for this calibration was implemented in the target code.

    In the MRR demo, unfortunately, the data collection for calibration is not implemented in the target code.

    This is why we used the dca1000 to capture the raw data and compute the calibration coefficients.

    The calibration coefficients are hard coded here:

    C:\data-nobackup\2022\ToolboxAutomotive\mmwave_automotive_toolbox_3_2_0__win\mmwave_automotive_toolbox_3_2_0\labs\lab0007_medium_range_radar\src\dss\dss_main.c

    void rxGainPhaseParam_Init(MmwDemo_DSS_DataPathObj* obj)
    {
        int32_t indx = 0;
        if (obj->processingPath == MAX_VEL_ENH_PROCESSING)
        {
               
            obj->rxChPhaseComp[indx].imag = 5863;
            obj->rxChPhaseComp[indx].real = 19158;indx++;

            obj->rxChPhaseComp[indx].imag = 2858;
            obj->rxChPhaseComp[indx].real = 23451;indx++;

            obj->rxChPhaseComp[indx].imag = 4569;
            obj->rxChPhaseComp[indx].real = 22093;indx++;

            obj->rxChPhaseComp[indx].imag = 0;
            obj->rxChPhaseComp[indx].real = 16399;indx++;
        }
        else if (obj->processingPath == POINT_CLOUD_PROCESSING)
        {
            
        
            obj->rxChPhaseComp[indx].imag = 21646;
            obj->rxChPhaseComp[indx].real = 7035;indx++;

            obj->rxChPhaseComp[indx].imag =  21172;
            obj->rxChPhaseComp[indx].real = 18420;indx++;

            obj->rxChPhaseComp[indx].imag = 15490;
            obj->rxChPhaseComp[indx].real = 21080;indx++;

            obj->rxChPhaseComp[indx].imag = -3905;
            obj->rxChPhaseComp[indx].real = 25130;indx++;


            obj->rxChPhaseComp[indx].imag = 0;
            obj->rxChPhaseComp[indx].real = 16399;indx++;

            obj->rxChPhaseComp[indx].imag = -7985;
            obj->rxChPhaseComp[indx].real = 18443;indx++;

            obj->rxChPhaseComp[indx].imag = -10962;
            obj->rxChPhaseComp[indx].real = 15291;indx++;

       
            obj->rxChPhaseComp[indx].imag =-17653;
            obj->rxChPhaseComp[indx].real = 3133;indx++;

            obj->rxChPhaseComp[indx].imag =  386;
            obj->rxChPhaseComp[indx].real = -17208;indx++;

            obj->rxChPhaseComp[indx].imag = 8587;
            obj->rxChPhaseComp[indx].real = -18744;indx++;
     
            obj->rxChPhaseComp[indx].imag = 11857;
            obj->rxChPhaseComp[indx].real =  -15772;indx++;

            obj->rxChPhaseComp[indx].imag = 18493;
            obj->rxChPhaseComp[indx].real = -2907;indx++;

        }
     
    }

    Thank you

    Cesar

  • Thank you very much Cesar! It is really helpful. 

    It seem there is another parameter: rangeBias in calibration paremeters, can you please also tell me where it is in the dss_main.c?

  • In the MRR demo there is no range bias calibration performed. So there is no rangeBias parameter

    thank you

    Cesar

  • Thank you very much Cesar. 

    In some other TI demos, the imag and real are presented in float number, such as 

    RX2
    Real Imag
    -0.58804 -0.5573
    0.15628 0.75375
    -0.0722 0.66623
    -0.39322 -0.6814
    -0.40555 -0.6771

    Can you please tell me what is rule for convert? divide the number in mrr demo by 10000?

    Kind regards

  • Hi,

    Can you please create a new thread for this question?

    Thank you

    Cesar