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.

IWRL6432BOOST: Reading the radar cube

Part Number: IWRL6432BOOST

Hi Ti Experts,

I am interested in reading the radar cube data through UART.

Reading from a [FAQ] IWRL6432: Exporting the radar cube over UART, I have modified the motion_and_presence_detection_demo according to the link using CCS. Modified files are motion_detect.h and motion_detect.c.

After modifications, I built the project and flashed the app image onto the board and used the example configuration file that was attached in the link.

I am now trying to interpret the data in real-time, utilizing the industial_Visualizer. According to the TLV formats and types, I am supposed to receive 98544 bytes. However, while looking at the received frame data, I only receive 25321 bytes of data in a frame.

Radar cube size alone would be  

Radar cube size = (256-point real-only FFT = 128 range bins) * (6 virtual antennas enabled) * (32 doppler chirps) * (4 bytes/sample) = 98304 bytes.

which is far less than what I receive.

I also tried the debugger mode in CCS, but it is always stuck at HwiP_memFault_handler.

I would like to utilize the radar cube data output and process it in real-time, could you please help me building/interpreting the example described in the link? Any help would be very much appreciated.

Sincerely,

  • Hello, 

    What method are you using to capture/analyze the output UART data? 

    Also if you try disabling all other TLV outputs so that only the Radar Cube is output each frame, what is the size of the output data? This can be done by modifying the guiMonitor CLI command (line 9 in the example .cfg file) such that all outputs are disabled. 

    guiMonitor 0 0 0 0 0 0 0 0 0 0 0

    I also tried the debugger mode in CCS, but it is always stuck at HwiP_memFault_handler.

    When running the examples in CCS for debugging, please ensure that you are following all of the steps mentioned in this guide. This includes first flashing the empty project appimage file and setting the device to functional mode. Have you followed these steps?

    Best Regards,

    Josh

  • Hello,

    Thank you for your response.

    From Industrial_Visualizer (python)

    What method are you using to capture/analyze the output UART data? 

    I am using the Industrial_Visualizer in radar_toolbox. Here I am running the gui_main.py and checking the frames that were actually received.

    I tried with the with the modified guiMonitor CLI command, and the received data size is 25554 bytes from gui_parser.py line 216.

            # Read in rest of the frame
            frameData += bytearray(self.cliCom.read(frameLength))

    From the Code Composer Studio,

    I flashed a new empty image today again, and followed the steps in the guide. I tried to set a breakpoint in motion_detect.c to see, but it is not reaching to the breakpoint.

    When I pause to see where it is at, it is in an infinite loop at HwiP_memFault_handler.

    Am I supposed to send the pass the .cfg file separately? I could not find how to send the .cfg file separately through CCS. Instead, I just modified radarCmdString to be

    char* radarCmdString[MAX_RADAR_CMD] =
    {
    	"sensorStop 0 \n\r",
    	"channelCfg 7 3 0 \n\r",
    	"chirpComnCfg 16 0 0 256 4 56 0 \n\r",
    	"chirpTimingCfg 6 32 0 20 60.5 \n\r",
    	"frameCfg 2 0 250 32 250 0 \n\r",
    	"guiMonitor 0 0 0 0 0 0 0 0 0 0 0 \n\r",
    	"sigProcChainCfg 32 2 1 2 8 8 1 0.3 \n\r",
    	"cfarCfg 2 8 4 3 0 12.0 0 0.5 0 1 1 1 \n\r",
    	"aoaFovCfg -70 70 -40 40 \n\r",
    	"rangeSelCfg 0.1 25.0 \n\r",
    	"clutterRemoval 0 \n\r",
    	"compRangeBiasAndRxChanPhase 0.0 1.00000 0.00000 -1.00000 0.00000 1.00000 0.00000 -1.00000 0.00000 1.00000 0.00000 -1.00000 0.00000 \n\r",
        "adcDataSource 0 C:\\\\ti\\\\Workarea\\\\Uploads\\\\mmwave_lp_sdk\\\\examples\\\\datapath\\\\common\\\\testBench\\\\major_motion\\\\adc_data_0001_CtestAdc6Ant.bin \n\r",
        "adcLogging 0 \n\r",
        "lowPowerCfg 0 \n\r",
        "factoryCalibCfg 1 0 40 0 0x1ff000 \n\r",
        "boundaryBox -3.5 3.5 0 9 -0.5 3 \n\r",
        "sensorPosition 0 0 1.9 0 0 \n\r",
        "baudRate 1250000 \n\r",
        "sensorStart 0 0 0 0 \n\r",
    };

    Thank you once again for your help.

    Best Regards,

    
    
  • Hi, 

    Thank you for the response. 

    When I pause to see where it is at, it is in an infinite loop at HwiP_memFault_handler.

    To resolve this issue, you must reset the CPU before code is loaded. After pressing Connect Target but before Load Program, click this icon in the CCS toolbar to perform a CPU reset. Then continue with loading the code etc... 

    Can you please also let me know what version of the SDK that you are using? I will try to replicate the issue that you are seeing with the radar cube output example and get back to you early next week. Please note, Jan 1st is a holiday for us. You can expect a response on this from Jan 2nd.

    Best Regards,

    Josh

  • Hello,

    After investigating this we have identified an issue in the FAQ post and the attached .cfg file. Please update the frameCfg line of the .cfg file as described below to resolve the issue.

    frameCfg 2 0 250 32 250 0 → frameCfg 2 0 250 32 1000 0

    We will be updating the FAQ post to correct this. I apologize for any inconvenience. 

    Best Regards,

    Josh