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.

AWR2243BOOST: DCA1000EVM and AWR2243B: Use of the rawdatareader in matlab to Radarcube.mat

Part Number: AWR2243BOOST
Other Parts Discussed in Thread: AWR2243

Tool/software:

Hi TI Community, 


I was using the rawdatareader.m to produce the radarcube.mat file and the fft plots using MATLAB but I am getting different output from the postproc of mmwave studio. I think that it recognises a different adcbin file while running the script.

I am using a different chirp configuration from the usual one present inside the mmwave studio.


Do you know how can I get the same fft plots and time domain signal as the mmwave studio as but using the rawdatareader.m script? Do I have to change some parameters in the json file or the script itself? 
Please let me know.

Thanks and regards,

Niladri

  • Hi,

    Rawdatareader.m enables to perform Range FFT and to create the Radar Cube (result of Range FFT). 

    Once you have the radar cube you can perform further processing.

    To get same plots as mmwave studio post processing, you would need to modify the matlab script.

    Thank you

    Cesar

  • Hi Cesar,

    Thanks for you kind message.

    I was using the rawdatareader.m with the json files mentioned in the JSONsamplefiles and got the range fft plots and time domain plots and I was using the exact chirp configuration as given in mmwave studio as default.

    But now I have changed the chirp parameters and also exported the json files and tried to run the rawdatareader.m with the new json files created by mmwave studio but now I am getting errors which says json file not recognised. Which json file shall I use now?

    I want to use the rawdatareader.m to read the binary file created by the mmwave studio and produce the range fft and time domain plots and also the radar cube.mat file for my post processing.

    Would you please guide me how?

    Thanks and regards,

    Niladri

  • Can you please share the json you have updated and the error message?

    Thank you

    Cesar

  • Hi Cesar,

    Thanks for your kind reply. I am really sorry for the late reply.

    I am attaching the chirp parameters and the output plot from mmwave studio.

    I am also attaching the json files here and I obtained them from the mmwave studio.

    1st is the setup json file and 2nd is the mmwave json file.

    With these 2 json files I am not able to read the binary file with the rawdatareader.m script.

    Thanks and regards,

    Niladri

    {
      "createdByVersion": "3.0.0.14",
      "createdOn": "2025-03-06T14:17:45.2748465+01:00",
      "configUsed": "C:\\Users\\admin\\OneDrive - Universidad Politécnica de Madrid\\Desktop\\Radar Data\\28.02.2025\\mmwave.json",
      "captureHardware": "DCA1000",
      "DCA1000Config": {
        "dataLoggingMode": "raw",
        "dataTransferMode": "LVDSCapture",
        "dataCaptureMode": "ethernetStream",
        "packetSequenceEnable": 1,
        "packetDelay_us": 25
      },
      "mmWaveDevice": "awr2243",
      "operatingFreq": 77,
      "mmWaveDeviceConfig": {
        "RS232COMPort": "COM7",
        "RS232BaudRate": "921600",
        "radarSSFirmware": "C:\\ti\\mmwave_studio_03_00_00_14\\rf_eval_firmware\\AWR2243_ES1_1\\radarss\\xwr22xx_radarss.bin",
        "masterSSFirmware": "C:\\ti\\mmwave_studio_03_00_00_14\\rf_eval_firmware\\AWR2243_ES1_1\\masterss\\xwr22xx_masterss.bin"
      },
      "capturedFiles": {
        "numFilesCollected": 1,
        "fileBasePath": "C:\\ti\\mmwave_studio_03_00_00_14\\mmWaveStudio\\PostProc",
        "files": [
          {
            "rawFileName": "adc_data_Raw_0.bin",
            "processedFileName": "adc_data.bin",
            "processedFileSummary": {
              "numZeroFillBytes": 0
            }
          }
        ]
      }
    }
    {
      "configGenerator": {
        "createdBy": "mmWaveStudio",
        "createdOn": "2025-03-06T14:10:00.6269746+01:00",
        "isConfigIntermediate": 1
      },
      "currentVersion": {
        "jsonCfgVersion": {
          "major": 0,
          "minor": 4,
          "patch": 0
        },
        "DFPVersion": {
          "major": 2,
          "minor": 2,
          "patch": 0
        },
        "SDKVersion": {
          "major": 3,
          "minor": 3,
          "patch": 0
        },
        "mmwavelinkVersion": {
          "major": 2,
          "minor": 2,
          "patch": 0
        }
      },
      "lastBackwardCompatibleVersion": {
        "DFPVersion": {
          "major": 2,
          "minor": 1,
          "patch": 0
        },
        "SDKVersion": {
          "major": 3,
          "minor": 0,
          "patch": 0
        },
        "mmwavelinkVersion": {
          "major": 2,
          "minor": 1,
          "patch": 0
        }
      },
      "regulatoryRestrictions": {
        "frequencyRangeBegin_GHz": 77,
        "frequencyRangeEnd_GHz": 81,
        "maxBandwidthAllowed_MHz": 4000,
        "maxTransmitPowerAllowed_dBm": 12
      },
      "systemConfig": {
        "summary": "This is a comments field not passed to device",
        "sceneParameters": {
          "ambientTemperature_degC": 20,
          "maxDetectableRange_m": 10,
          "rangeResolution_cm": 5,
          "maxVelocity_kmph": 26,
          "velocityResolution_kmph": 2,
          "measurementRate": 10,
          "typicalDetectedObjectRCS": 1.0
        }
      },
      "mmWaveDevices": [
        {
          "mmWaveDeviceId": 0,
          "rfConfig": {
            "waveformType": "legacyFrameChirp",
            "MIMOScheme": "TDM",
            "rlCalibrationDataFile": "",
            "rlChanCfg_t": {
              "rxChannelEn": "0x1",
              "txChannelEn": "0x1",
              "cascading": 0,
              "cascadingPinoutCfg": "0x0"
            },
            "rlAdcOutCfg_t": {
              "fmt": {
                "b2AdcBits": 2,
                "b8FullScaleReducFctr": 0,
                "b2AdcOutFmt": 1
              }
            },
            "rlLowPowerModeCfg_t": {
              "lpAdcMode": 0
            },
            "rlProfiles": [
              {
                "rlProfileCfg_t": {
                  "profileId": 0,
                  "pfVcoSelect": "0x2",
                  "pfCalLutUpdate": "0x0",
                  "startFreqConst_GHz": 75.9999999761582,
                  "idleTimeConst_usec": 10.0,
                  "adcStartTimeConst_usec": 6.0,
                  "rampEndTime_usec": 1000.0,
                  "txOutPowerBackoffCode": "0x0",
                  "txPhaseShifter": "0x0",
                  "freqSlopeConst_MHz_usec": 4.78000020980835,
                  "txStartTime_usec": 0.0,
                  "numAdcSamples": 4060,
                  "digOutSampleRate": 4096.0,
                  "hpfCornerFreq1": 0,
                  "hpfCornerFreq2": 0,
                  "rxGain_dB": "0x5E"
                }
              }
            ],
            "rlChirps": [
              {
                "rlChirpCfg_t": {
                  "chirpStartIdx": 0,
                  "chirpEndIdx": 0,
                  "profileId": 0,
                  "startFreqVar_MHz": 0.0,
                  "freqSlopeVar_KHz_usec": 0.0,
                  "idleTimeVar_usec": 0.0,
                  "adcStartTimeVar_usec": 0.0,
                  "txEnable": "0x1"
                }
              }
            ],
            "rlFrameCfg_t": {
              "chirpEndIdx": 0,
              "chirpStartIdx": 0,
              "numLoops": 128,
              "numFrames": 1,
              "framePeriodicity_msec": 150.0,
              "triggerSelect": 1,
              "frameTriggerDelay": 0.0
            },
            "rlBpmChirps": [],
            "rlRfPhaseShiftCfgs": [],
            "rlRfProgFiltConfs": [],
            "rlLoopbackBursts": [],
            "rlDynChirpCfgs": [],
            "rlDynPerChirpPhShftCfgs": []
          },
          "rawDataCaptureConfig": {
            "rlDevDataFmtCfg_t": {
              "iqSwapSel": 0,
              "chInterleave": 0
            },
            "rlDevDataPathCfg_t": {
              "intfSel": 1,
              "transferFmtPkt0": "0x1",
              "transferFmtPkt1": "0x0",
              "cqConfig": 2,
              "cq0TransSize": 132,
              "cq1TransSize": 132,
              "cq2TransSize": 72
            },
            "rlDevLaneEnable_t": {
              "laneEn": "0x1"
            },
            "rlDevDataPathClkCfg_t": {
              "laneClkCfg": 1,
              "dataRate_Mbps": 600
            },
            "rlDevLvdsLaneCfg_t": {
              "laneFmtMap": 0,
              "laneParamCfg": "0x1"
            }
          },
          "monitoringConfig": {
          }
        }
      ],
      "processingChainConfig": {
        "detectionChain": {
          "name": "TI_GenericChain",
          "detectionLoss": 1,
          "systemLoss": 1,
          "implementationMargin": 2,
          "detectionSNR": 12,
          "theoreticalRxAntennaGain": 9,
          "theoreticalTxAntennaGain": 9
        }
      }
    }
    

  • Hi Niladri,

    To confirm, you are able to generate the FFT plots as shown in the screenshots, but it is incorrect?

    Regarding your modifications from the default 22xx.mmwave.json,

    1. Some of the modified parameters (numAdcSamples, digOutSampleRate, rampEndTime_usec) are a lot different from typical configurations. 

    Please ensure they are valid for the AWR2243. The mmWave Sensing Estimator is a good tool to check this.

    2. The comments in rawDataReader.m list assumptions made by the script. Please review this and make sure your modified configuration meets these assumptions. For example, the script assumes that 4 lanes are enabled for AWR2243, but only 1 has been enabled by setting laneEn: "0x1"

    Thank you,

    Jin