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.

AWR1843BOOST: Sensors forum

Part Number: AWR1843BOOST
Other Parts Discussed in Thread: AWR1843

I'm trying to get some raw 1-D/2-D FFT radarcube data out along with clustering and tracking results using UART in the Medium Range Radar project for AWR1843. So, I did a little modification in the code (shared below), which compiles perfectly.

But when I try to download the images to 1843EVM by running target configuration, the script throws a runtime error after completion. I have adhered to data size and other limits in adding the TLV payload, so I am not able to identify the issue. It'd be great if you could have a look at added code (this is the only modification I've made in the whole project), or better, run this modification in MRR project and help me in figuring out the issue. 

The code, console output and target configuration status are attached below. 

Code: added after line 1000 in dss_main.c (before if (tlvIdx >= MMWDEMO_OUTPUT_MSG_MAX) statement)

  if (SEND_RADARCUBE) //SEND_RADARCUBE = 1
    {
        // Add objects descriptor
        descr.numDetetedObj = obj->numDetObj;
        descr.xyzQFormat = obj->xyzOutputQFormat;

        itemPayloadLen = sizeof(MmwDemo_output_message_dataObjDescr);
        totalHsmSize += itemPayloadLen;
        if (totalHsmSize > outputBufSize)
        {
            retVal = -1;
            goto Exit;
        }
        memcpy(ptrCurrBuffer, (void *) &descr, itemPayloadLen);

        //Add radarcube here

        itemPayloadLen = sizeof(cmplx16ReIm_t) *  obj->numRangeBins * obj->numDopplerBins; // * numChirpTypes * obj->numRxAntennas * obj->numTxAntennas; 
        totalHsmSize += itemPayloadLen;
        if (totalHsmSize > outputBufSize)
        {
            retVal = -1;
            goto Exit;
        }
        memcpy(&ptrCurrBuffer[sizeof(MmwDemo_output_message_dataObjDescr)],
               (void *) &obj->radarCube[0], itemPayloadLen);

        message.body.detObj.tlv[tlvIdx].length = itemPayloadLen
                + sizeof(MmwDemo_output_message_dataObjDescr);
        message.body.detObj.tlv[tlvIdx].type = MMWDEMO_OUTPUT_MSG_RADARCUBE; // #define  MMWDEMO_OUTPUT_MSG_RADARCUBE       5
        message.body.detObj.tlv[tlvIdx].address = (uint32_t) ptrCurrBuffer;
        tlvIdx++;

        // Incrementing pointer to HSM buffer
        ptrCurrBuffer += itemPayloadLen
                + sizeof(MmwDemo_output_message_dataObjDescr);
        totalPacketLen += sizeof(MmwDemo_output_message_tl) + itemPayloadLen
                + sizeof(MmwDemo_output_message_dataObjDescr);   
    }

Console output:

[Cortex_R4_0] Debug: Launched the Initialization Task
[C674X_0] Heap L1 : size 16384 (0x4000), free 6144 (0x1800)
Heap L3 : size 1048576 (0x100000), free 0 (0x0)
[Cortex_R4_0] Debug: Initialized the mmWave module
[C674X_0] Heap L1 : size 16384 (0x4000), free 1000 (0x3e8)
[Cortex_R4_0] Debug: Synchronized the mmWave module
[C674X_0] Heap L3 : size 1048576 (0x100000), free 262144 (0x40000)
Heap L2 : size 102400 (0x19000), free 21488 (0x53f0)
Heap L2 : size 102400 (0x19000), free 14432 (0x3860)
[Cortex_R4_0] Set LDO Bypass
Debug: MMWave has been configured for MRR.
Debug: Sensor will start momentarily. 
[C674X_0] {module#8}: "../dss_main.c", line 1137: error {id:0x10000, args:[0x81d814, 0x81d814]}
xdc.runtime.Error.raise: terminating execution

target configuration status:

  • Hi

    There is not sufficient time to send the additional data. This is why an exception is generated.

    You need to estimate how much time you would need to send the data. Then check what frame rate would be needed.

    Thank you

    Cesar

  • Yes, the frame timing was definitely an issue - but this alone isn't fixing the issue. I changed the frame duration from 30 ms to 250 ms to ensure sufficient time for new data to be transmitted, but the run time error is still present. 

  • Hi,

    That may still not be sufficient time.

    If you need to transfer entire radar cube I recommend using a DCA1000 card to capture the raw data. That will give you more flexibility

    Thank you

    Cesar

  • Hi Cesar, 

    Thank you for your suggestions. Yes, the problem was insufficient time only - the realized data rate of UART is lower than expected. 

    For our application, we want real-time, manageable data rate below 25 Mbps, which is something we are not able to achieve with DCA1000, and that's why we are forced to go through a more painful process of trying and exploiting the possibilities offered by SDK.  I have two more questions and it'd be great if you could let me know your thoughts on them:

    1. In the mm-wave demo project, the radar configuration is separated from the CCS project, and so it can be easily modified using Serial. If I want to get *some* custom Serial radar config programming capability (like frame rate, chirp time, idle time, adc sampling rate, num of chirps) with MRR project, how should I approach modifying the MRR project?
    2. For tracking and clustering to work effectively in identifying moving targets, is there a minimum recommended frame rate? (like 10 FPS or something)

    Thank you again for all your helps

    Have a great weekend! 

    Arvind

  • Please start a new thread for the new questions

    I will close this thread

    thank you

    Cesar