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.

DCA1000EVM: Real-time MATLAB processing of RAW samples from AWR1642BOOST

Part Number: DCA1000EVM
Other Parts Discussed in Thread: AWR1642BOOST, AWR1642

Dear TI,

I have modules AWR1642BOOST and DCA1000EVM. My goal is to create working real-time processing of RAW ADC samples of IF signals via MATLAB. In my case "real-time" processing means to update target analysis, tracking, DOA estimations, range-Doppler graph, etc. let's say with 10 Hz rate and with let's say 0.2 s delay. The DCA1000EVM is able to send ADC samples to PC with higher speed but for human being recognition and analysis capabilities is previously mentioned requirements good enough.

I am right now in a stage when all Lua commands can be send via MATLAB to mmWave Studio utilizing your Init_RSTD_Connection.m and RtttNetClientAPI.RtttNetClient.SendCommand function. I just run mmWave studio as an administrator, run my MATLAB script, and AWR module is set for operation. Proper Lua commands can be reverse-engineered from mmWave Studio Output window.

Now what is my particular problem. When I run in a loop commands (with proper arguments of course):
ar1.CaptureCardConfig_StartRecord()
ar1.StartFrame()
UDP packets with RAW ADC samples are stored in *.bin file. To write the *.bin file takes approx. "time required to sweep required number of frames" + 2 s. My problem are the 2 seconds. It is always there independently of actual sampling duration. The *.bin file is filling rapidly, but the mmWave Studio will not close the file for additional 2 seconds which makes impossible to read file with all UDP packages as soon as possible. After study several *.lua files (let's mention well-known DataCaptureDemo_xWR.lua) I discovered that there is lot of (from my point of view) unnecessary RSTD.Sleep(1000) commands with negligently chosen delay as multiplies of 1 second. Where I can find a code which is run after ar1.StartFrame() evaluation? I believe that there are some unnecessarily long Sleep commands which actually significantly slow possible "real-time" processing.

Thank you very much!

Viktor Adler

  • Hello Viktor,

    mmwave studio cannot be used for live processing. Its architected for offline processing. If you want to do live processing you would have to capture the raw data directly from the ethernet port using your own application.

    Regards,

    Vivek

  • Dear Vivek,

    thank you for response. Do you know about some other possibility how to fully control AWR1642BOOST without mmWave Studio? Does exist some example of controlling the radar by MATLAB itself? Is it possible to control the radar using commands directly via UART COM port? Generally, it is possible to send and receive commands to\from COM port using MATLAB with serial (newly serialport) function. The only official example of controlling AWR modules via MATLAB utilize mmWave Studio. Is out there some standalone MATLAB example?

    To get the UDP packages directly to MATLAB would be great. I checked LAN communication using Wireshark and it worked. I tried the udp function from Instrument Control Toolbox in MATLAB but I didn't succeed. It looked like the mmWave Studio "stolen" the UDP packages before they could reach MATLAB.

    The title of web-page with DCA1000EVM is "Real-time data-capture adapter for radar sensing evaluation module". Do you actually offer some real-time signal-processing software solution? As you said, the mmWave Studio is just for post-processing.

    Best regards

    Viktor Adler

  • Hello Viktor,

    There are three different parts to this.

    1) Controlling/configuring  the AWr1642 device. This can be done using am embedded application running on the 1642 device which can configure the radar and send the ADC data out over LVDS interface. mmwave SKD package has a mmw demo application that does this, you can modify the application based on your needs.

    2) Configuring the DCA1000. This could be either configured by SW over ethernet commands. It can also be done using HW switches as explained in the DCA1000 user guide. In this case you don't have to configure anything over SW.

    3) Receive the raw data over ethernet from DCA1000. You can use any application that can read the data from the UDP port to access this data.

    regards,
    Vivek