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.
[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:
"dataFormatConfig": { "MSBToggle": 0, "reorderEnable": 1, "laneFmtMap": 0, "dataPortConfig": [ { "portIdx": 0, "dataType": "complex" }, { "portIdx": 1, "dataType": "complex" }, { "portIdx": 2, "dataType": "complex" }, { "portIdx": 3, "dataType": "complex" }, { "portIdx": 4, "dataType": "complex" } ] } }
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,
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
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
specifically, the configuration that involves setting the ports to accept complex numbers (shown in the mmwave sdk) seems to be tricky
"dataFormatConfig": { "MSBToggle": 0, "reorderEnable": 1, "laneFmtMap": 0, "dataPortConfig": [ { "portIdx": 0, "dataType": "complex" }, { "portIdx": 1, "dataType": "complex" }, { "portIdx": 2, "dataType": "complex" }, { "portIdx": 3, "dataType": "complex" }, { "portIdx": 4, "dataType": "complex" } ] } }
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.