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.

AWR1443BOOST: AWR1443

Part Number: AWR1443BOOST
Other Parts Discussed in Thread: AWR1443

New to this forum.  

Am trying to get a TLV parser for a AWR1443  .dat file captured from mmWave Demo visualizer dump. 

Version used is 2.0 with Record. '

Am following  a  guideline to  read the .dat file as outlined in "mmw_Demo_Data_structure_8_18-7.pdf" 

Range Azimuth Heat Map (slide 8) defines the size to be  #of Rangebins*#virtual_Antennas*4 bytes .

With  3 TX , 4 Rx  , and #Rangebins @ 256 , expect the size to be   256*4*3*4 = 12286 ( 12K) 

Seems the dumped data size for this Tag is  8192 ...

--------------------------------------------------------

The setup and the parser outputs below.

% ***************************************************************
% Created for SDK ver:01.02
% Created using Visualizer ver:2.0.0.0
% Frequency:77
% Platform:xWR14xx
% Scene Classifier:best_range_res
% Azimuth Resolution(deg):15 + Elevation
% Range Resolution(m):0.044
% Maximum unambiguous Range(m):9.01
% Maximum Radial Velocity(m/s):1
% Radial velocity resolution(m/s):0.13
% Frame Duration(msec):500
% Range Detection Threshold (dB):15
% Range Peak Grouping:enabled
% Doppler Peak Grouping:enabled
% Static clutter removal:enabled
% ***************************************************************
sensorStop
flushCfg
dfeDataOutputMode 1
channelCfg 15 7 0                    %---> ( 4  Receivers , 2 transmitters ) 
adcCfg 2 1
adcbufCfg 0 1 0 1
profileCfg 0 77 267 7 57.14 0 0 70 1 240 4884 0 0 30
chirpCfg 0 0 0 0 0 0 0 1
chirpCfg 1 1 0 0 0 0 0 4
chirpCfg 2 2 0 0 0 0 0 2
frameCfg 0 2 16 0 500 1 0
lowPower 0 0
guiMonitor 1 1 0 1 1 0
cfarCfg 0 2 8 4 3 0 1280
peakGrouping 1 1 1 1 229
multiObjBeamForming 1 0.5
clutterRemoval 1
calibDcRangeSig 0 -5 8 256
compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
measureRangeBiasAndRxChanPhase 0 1.5 0.2
CQRxSatMonitor 0 3 5 123 0
CQSigImgMonitor 0 119 4
analogMonitor 1 1
sensorStart

----------------------------------------------------------

Parser debug  dump is : 

RangeProf[253]: 010.031
RangeProf[254]: 009.598
RangeProf[255]: 010.734
TLVType: 2
i : 2
data 8: b'\x04\x00\x00\x00\x00 \x00\x00'
Decode: b'\x04\x00\x00\x00\x00 \x00\x00'
tlvType: 4
tlvLength: 8192
Length: 8192                                                     <--- SHouldn't this be 12286 ? 
Data: b'\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x00\x00\xfd\xff\x01\x00\x00\x00\xff\xff\xff\xff\xff
\xff\xff\xff\x02\x00\xff\xff\x00\x00\x02\x00\x01\x00\x02\x00\x01\x00\x01\x00\x02\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x01\x00\x00\x00\xff\xff\x00\x00\x01\x00\xff\xff\x00\x00\x00\x00\xfe\xff\x01\x00\xff\xff\x00\x00\x01\x00\x00\x00\x00

...................

-------------------------------------------------

For the same demo setup,  changed the  Antenna configuration to  4Rx x 2TX : to check if the   Range-Azimuth Heatmap size changes ... it still remains the same @ 8192 bytes. 

Some  capture with the #of virtual Antennas to  8  ( 4*2) 

-------------------------------------------------------------------------------

% ***************************************************************
% Created for SDK ver:01.02
% Created using Visualizer ver:2.1.0.3
% Frequency:77
% Platform:xWR14xx
% Scene Classifier:best_range_res
% Azimuth Resolution(deg):15
% Range Resolution(m):0.044
% Maximum unambiguous Range(m):9.01
% Maximum Radial Velocity(m/s):1
% Radial velocity resolution(m/s):0.13
% Frame Duration(msec):500
% Range Detection Threshold (dB):15
% Range Peak Grouping:enabled
% Doppler Peak Grouping:enabled
% Static clutter removal:disabled
% ***************************************************************
sensorStop
flushCfg
dfeDataOutputMode 1
channelCfg 15 5 0               %---> ( 4  Receivers , 2 transmitters ) 
adcCfg 2 1
adcbufCfg 0 1 0 1
profileCfg 0 77 429 7 57.14 0 0 70 1 240 4884 0 0 30
chirpCfg 0 0 0 0 0 0 0 1
chirpCfg 1 1 0 0 0 0 0 4
frameCfg 0 1 16 0 500 1 0
lowPower 0 0
guiMonitor 1 1 0 1 1 0
cfarCfg 0 2 8 4 3 0 1280
peakGrouping 1 1 1 1 229
multiObjBeamForming 1 0.5
clutterRemoval 0
calibDcRangeSig 0 -5 8 256
compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
measureRangeBiasAndRxChanPhase 0 1.5 0.2
CQRxSatMonitor 0 3 5 123 0
CQSigImgMonitor 0 119 4
analogMonitor 1 1
sensorStart

--------------------------

TLV  Parser - debug dump  for the above setup 

---------------------------

RangeProf[239]: 010.137

RangeProf[240]: 010.805
RangeProf[241]: 010.348
RangeProf[242]: 010.230
RangeProf[243]: 009.680
RangeProf[244]: 009.527
RangeProf[245]: 009.727
RangeProf[246]: 008.965
RangeProf[247]: 009.457
RangeProf[248]: 009.738
RangeProf[249]: 009.504
RangeProf[250]: 010.020
RangeProf[251]: 009.375
RangeProf[252]: 009.961
RangeProf[253]: 010.043
RangeProf[254]: 009.645
RangeProf[255]: 009.762
TLVType: 2
i : 2
data 8: b'\x04\x00\x00\x00\x00 \x00\x00'
Decode: b'\x04\x00\x00\x00\x00 \x00\x00'
tlvType: 4
tlvLength: 8192
Length: 8192
Data: b'\x01\x00\x00\x00\x01\x00\x01\x00\x00\x00\xfe\xff\xff\xff\x01\x00\x01\x00\x00\x00\x02\x00\xfe
\xff\xff\xff\x00\x00\xff\xff\x03\x00\xfe\xff\x00\x00\xff\xff\x00\x00\xff\xff\x02\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff
\xff\x02\x00\x01\x00\xff\xff\x00\x00\xfe\xff\x02\x00\x01\x00\x01\x00\x00\x00\x02\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00
\x00\x01\x00\xff\xff\x01\x00\x02\x00\x01\x00\x02\x00\xff\xff\x00\x00\x01\x00\x00\x00\xff\xff\x00\x00\x00\x00\xff\xff\x00
\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\xff\xff\x01\x00\xff\xff\xfe\xff\x02\x00\x00\x00\x01\x00\x00\x00\x01
\x00\x00\x00\x02\x00\x01\x00\xff\xff\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x03\x00\xfd\xff\x01\x00\x00\x00\x01
\x00\x02\x00\xff\xff\xff\xff\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\xff\xff\x00\x00\x01\x00\xfd\xff\x03\x00\x00\x00\x00
\x00\x00\x00\xfe\xff\x02\x00\x01\x00\x01\x00\x01\x00\x01\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00
\x00\x00\x00\xff\xff\x02\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\x01\x00\x00\x00\xfe\xff\x00

......

* Observe a similar  anamoly for Range Doppler Heatmap  dump. 

Appreciate any help , or clarifying misunderstanding if any .... 

thanks 

...ravi

  • Typo ( copy and paste issue..) , apologize...

    channelCfg 15 7 0 %---> ( 4 Receivers , 2 transmitters )

    stands corrected as

    channelCfg 15 7 0 %---> ( 4 Receivers , 3 transmitters )

    ...ravi
  • Hi Ravi,

    Please refer to this python script to parse the TLV output.
    e2e.ti.com/.../TLV_5F00_Parser_5F00_script.zip

    (Link from this thread: e2e.ti.com/.../2505643

    Best Regards,
    Anand
  • Thanks Anand.
    Thanks for attaching a script.
    The script is incomplete .
    It doesn't Parse Range Azimuth heatmap data , Range Doppler 2D FFT data and the Noise Floor Profile .
    My query relates to parsing these TLV Tags ... Started these parser implementation in Python .
    Came across some symptoms I couldn't understand . Especially the Size of the tags for
    Azimuth and Doppler Ranges . ( 12K bytes for 12 Virtual antennas -expected , vs 8K bytes seen in the .dat file)

    thanks
    ...ravi


  • Hello Ravi,


    I am assuming you have already checked the following links inside the mmWave SDK installation that talks about OOB data stream structure:

    Typical path :  (file:///C:/ti/mmwave_sdk_xx/packages/ti/demo/xwr16xx/mmw/docs/doxygen/html/index.html )

    Common for IWR14xx and IWR16xx devices

    Regarding your questions about Data size for  Azimuth Heat map:

    From the documentation page above:

    Azimuth static heatmap

    Type: (MMWDEMO_OUTPUT_MSG_AZIMUT_STATIC_HEAT_MAP)

    Length: (Range FFT size) x (Number of virtual antennas) (size of cmplx16ImRe_t_)

    Value: Array MmwDemo_DSS_DataPathObj::azimuthStaticHeatMap. The antenna data are complex symbols, with imaginary first and real second in the following order:

             Imag(ant 0, range 0), Real(ant 0, range 0),...,Imag(ant N-1, range 0),Real(ant N-1, range 0)
             ...
             Imag(ant 0, range R-1), Real(ant 0, range R-1),...,Imag(ant N-1, range R-1),Real(ant N-1, range R-1)

    Based on this data the static azimuth heat map is constructed by the GUI running on the host.

    Your computation of expected size is based on virtual Antenna's you have enabled in the configuration i.e. Virtual Antennas = 12 = 3Tx * 4Rx

    However for Azimuth information only antenna arrays that span in Azimut direction are used. i.e. 8 =  2Tx * 4 Rx.

    Based on this the expected length = Length: (Range FFT size) x (Number of virtual (Azimuth) antennas) (size of cmplx16ImRe_t_)

    8192 = 256 FFT * (2Tx  * 4 Rx) * 4 bytes

    Hope this helps. Please let us know if you have further questions.

    Thank you,

    Vaibhav

  • thanks Vaibhav for clarifying 

    ...ravi