Other Parts Discussed in Thread: DCA1000EVM, AWR6843, , AWRL6432
Tool/software:
Hello, we have the DCA1000 correctly connected to the AWR6844, and our goal is to obtain raw data via Ethernet in real-time.
We have the option to use mmWave Studio and the .lua scripts for recording, but we would like to work in real-time for future applications. Below, we outline the points we have tested, and we would greatly appreciate your support.
Option 1:
Using the commands DCA1000EVM_CLI_Control and DCA1000EVM_CLI_Record to configure the DCA1000 FPGA and receive packets via Ethernet.
The activity diagram:
Where datacard_config.json:
And our configuration file (profile_as_mmwave_studio.cfg) for triggering the AWR6844: (We believe we have set it up identically to the one used in mmWave Studio with .lua scripts, as shown two images below.)
The first issue we encounter here is that captureStopMode only works with infinite (we can see many packets in Wireshark, which reassures us that at least we are receiving data) and duration, but not with frame. We want to try this last option to replicate what we achieve with mmWave Studio and .lua scripts. However, the resulting .bin file from this method does not record with the frame option. It gives us an error stating that it is only compatible with dataLoggingMode = raw (but interestingly, it is already set to raw!).
Option 2:
Using the OpenRadar library (https://github.com/PreSenseRadar/OpenRadar), which is mentioned in some open forums by TI.
We followed this workflow:
But we find that the size of "data" is 393216 uint16, and if we perform reorganization based on numADC samples, num Chirps, and num Rx — where we have defined in our .cfg file that numADC samples = 256, numChirps = 64, and Rx = 4:
393216 / 256 / 64 / 4 = 6, which means the packet is not valid.
This number seems to be constant, is there anyway to process this data , organizing it properly in numADC, numChirps and Rx to obtain a radar cube?
In contrast, using mmWave Studio and the .lua scripts (see the mmWave Studio image above), we get 655360 uint16. When we read the .bin file generated with OpenRadar, we verify that it indeed corresponds to 10 frames, with 64 chirps, 256 ADC samples, and 4 Rx antennas.
How can we achieve this process using OpenRadar, or do you have any suggestions on processing raw data in real-time using a different method?
UPDATE:
It seems that Openradar DCA1000() object yields a fixed frame size due to : ADC_PARAMS = {'chirps': 128, 'rx': 4, 'tx': 3, 'samples': 128, 'IQ': 2, 'bytes': 2} that are suited for AWR6843 –our guess –
Does it make more sense to change to ADC_PARAMS = {'chirps': 64, 'rx': 4, 'tx': 4, 'samples': 256, 'IQ': 2, 'bytes': 2} getting these data from our specific .cfg file?
Thanks in advance,
BR