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: DCA1000EVM raw data capture

Part Number: DCA1000EVM
Other Parts Discussed in Thread: AWR1843BOOST, AWR1843, , IWR1443BOOST, IWR1443, AWR1443

[4:07 PM] Goldfracht Yuval (CR/RAR1-IL)

Hi, 

 

I'm looking to configure the DCA1000 to capture RAW data from the AWR1843Boost. looking at the mmsdk docs, it seems that I need set the DCA100 port to accept complex data on all 4 ports (dataFormatConfig) and set the lvds mode to 2 (lvdsMode) in addition to other things.

Is it possible to do that without using the CLI tool e.g using the any of the commands listed below through the configuration port?

 

RESET_FPGA_CMD_CODE 

RESET_AR_DEV_CMD_CODE 

CONFIG_FPGA_GEN_CMD_CODE 

CONFIG_EEPROM_CMD_CODE 

RECORD_START_CMD_CODE 

RECORD_STOP_CMD_CODE 

PLAYBACK_START_CMD_CODE 

PLAYBACK_STOP_CMD_CODE 

SYSTEM_CONNECT_CMD_CODE 

SYSTEM_ERROR_CMD_CODE 

CONFIG_PACKET_DATA_CMD_CODE 

CONFIG_DATA_MODE_AR_DEV_CMD_CODE 

 

Thanks 

Yakov

  • Hello Yakov,

    Could you please explain this with more details? your final use case as well.

    Is it possible to do that without using the CLI tool e.g using the any of the commands listed below through the configuration port?

    Regards,
    Saswat Kumar

  • Yes,

    Looking at the mmsdk docs, In order to record LVDS Data, I should use the following configuration in the json file when using the DCA CLI tool:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    "dataFormatConfig": {
    "MSBToggle": 0,
    "reorderEnable": 1,
    "laneFmtMap": 0,
    "dataPortConfig": [
    {
    "portIdx": 0,
    "dataType": "complex"
    },
    {
    "portIdx": 1,
    "dataType": "complex"
    },
    {
    "portIdx": 2,
    "dataType": "complex"
    },
    {
    "portIdx": 3,
    "dataType": "complex"
    },
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


    I would like to send the exact same command without the CLI tool e.g using the RECORD_START_CMD_CODE or any other command with the same parameters. Currently, I can't find a comprehensive documentation on how to use these functions. 

    Is it clear? 



  • Hello Yakov,

    There is no straight forward way for this, you will end up having to send the data over the UART itself.
    You can go through the CLI tool and try to replicate the same, but no comprehensive documentation.
    That is the only reference we have for configuring the DCA along with the EVM.

    Regards,
    Saswat Kumar

  • OK, then let me know what the ideal solution for the following scenario would be:

    1. I would like to capture raw LVDS data using the AWR1843 and DCA1000 on an embedded platform (Nvidia's Jetson) together with data coming from different sources i.e. camera, lidar etc. That is my ultimate goal (!)

    2. I would like to be able to do real-time post processing on the LVDS data and display the results (in real-time).

    Please let me know what combination of the CLI tool, dll API and ethernet commands I need in order to make this happen. 

  • Hello Yakov,

    1. This is possible. The data comes out of the DCA1000 via ethernet. Your software on the Jetson should be able to intercept and process this data. Support outside of the DCA1000EVM will not be provided as it is not within the purview of the device.
    2. There is no direct support on this from TI. You will have to write your own software (using something like Studio CLI) to capture the data and perform processing. This software would have to accommodate for buffering schemes and such for real time processing. Please note that Realtime processing was not tested and recommended by TI and you will have to try it at your own risk. You might encounter problems with respect to latency, packet loss etc. which will have to be handled in your software.

    Regards,

    Saswat 

  • All of these things have been taken into account and I've already written most of the software that captures the data. 
    What I'm missing is the correct way to configure the DCA with native UDP commands as opposed to internal functions used in the cli_tool

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    RESET_FPGA_CMD_CODE 0x01
    RESET_AR_DEV_CMD_CODE 0x02
    CONFIG_FPGA_GEN_CMD_CODE 0x03
    CONFIG_EEPROM_CMD_CODE 0x04
    RECORD_START_CMD_CODE 0x05
    RECORD_STOP_CMD_CODE 0x06
    PLAYBACK_START_CMD_CODE 0x07
    PLAYBACK_STOP_CMD_CODE 0x08
    SYSTEM_CONNECT_CMD_CODE 0x09
    SYSTEM_ERROR_CMD_CODE 0x0A
    CONFIG_PACKET_DATA_CMD_CODE 0x0B
    CONFIG_DATA_MODE_AR_DEV_CMD_CODE
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


    specifically, the configuration that involves setting the ports to accept complex numbers (shown in the mmwave sdk) seems to be tricky

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    "dataFormatConfig": {
    "MSBToggle": 0,
    "reorderEnable": 1,
    "laneFmtMap": 0,
    "dataPortConfig": [
    {
    "portIdx": 0,
    "dataType": "complex"
    },
    {
    "portIdx": 1,
    "dataType": "complex"
    },
    {
    "portIdx": 2,
    "dataType": "complex"
    },
    {
    "portIdx": 3,
    "dataType": "complex"
    },
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Looking at the source code of cli_tool these parameters are not passed to the DCA (as opposed to MSBToggle, reorder), However, I couldn't find any documentation on how to use the UDP commands to configure this aspect of the DCA. Currentl, the captured data on the Jetson is not identical to the one that comes from the cli_tool and I'm trying to solve that.   

      

  • Hi Yakov,

    Have you tried using the DCA control and capture tool directly? This should give you access over the configurations mentioned above.

    Regards,

    Kaushik

  • OK, I think I understand what you mean. sending the commands usin the DCA API and receiving the data using a standard UDP protocol (without the DCA API) . Is this possible?

  • Hi Yakov,

    This depends on how you packetize that particular UDP data. The FW on the DCA should be able to understand the command sent. If you can send the same commands over UDP directly (I believe this format is mentioned in the DCA1000 developers guide attached). Please understand the changes that would be required from there and you can try to implement the same. Please also note that more support than this will not be supported as this was not the primary intention of DCA1000 CLI tool or API.

    .TI_DCA1000EVM_CLI_Software_DeveloperGuide.pdf8228.TI_DCA1000EVM_CLI_Software_UserGuide.pdf

    You can also find reference source code in the mmwave Studio folder.

    \mmwave_studio_<ver>\mmWaveStudio\ReferenceCode\DCA1000\SourceCode

    .

    Regards,

    Kaushik

  • Hello Yakov, I am trying to implement something similar with a different board (IWR1443BOOST), would you be available to share the code you are using so far?

    PS: I found useful to use WireShark to dump the commands when working with the DCA board

  • Hi, Initially I tried to do the same and working with the IWR1443. After a lot of reading I realized that the default mmwave_sdk firmware for the AWR1443 does not support RAW transfer in this way. I found an alternative github with some custom firmaware but that didn't work reliably enough. 

    Eventually, I moved to the AWR1843 where raw transfer is officially supported and I did manage to extract the data after quite a bit of effort. I can check whether our repo is public or not. If not I will gladly write back in this forum and do my best to save you some time 

  • Thank you, I would really appreciate it. Could you also send me the git repo for the 1443 board in case you find it? I might give it a try as well.

  • Hi, as far as I recall it was this: https://github.com/moodoki/iwr_raw_rosnode/tree/master
    there are several repos that aim to do the same thing i.e real-time raw data capture from the XWR devices using the DCA. Unfortunately, most of them are not maintained or don't do exactly as promised.