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.

AWR1642BOOST: mmwave Demo Visualizer, SDK 3.2, parsing / reading processed stream

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

Hi,

I am sort of new to mmwave EVMs. 

We purchased one AWR1642BOOST EVM and one DCA1000 EVM. Unfortunately, the received DCA1000EVM was faulty and we are still trying to get its replacement. Due to unavailability of DCA1000EVM, we only had the option to base our work and study on AWR1642BOOST EVM.

I am trying to study the format of the output processed stream generated by mmwave Demo Visualizer and then to possibly use it for offline post-processing. I understand that the best option is using DCA1000EVM but as I mentioned above, at least for the time being, we are unfortunately limited to AWR1642BOOST capabilities only.

We have AWR1642BOOST EVM non secure ES02.00 version. I am using SDK 3.2 (I suppose this is the latest version).

I have obtained a "processed stream" by using the "Record Start" button in this TI App https://dev.ti.com/gallery/view/mmwave/mmWave_Demo_Visualizer/ver/3.2.0/

I already understand that the structure of TLVs is mentioned in the SDK doxygen. However, please advise that does a MATLAB or another / any other script exist which can be used to read / parse the file (processed stream) generated by using the "Record Button" in the relevant mmwave Demo Visualizer ?

Moreover, I understand that this processed stream (in SDK 3.2) is the raw ADC data produced by the AWR1642 IC. Is my understanding correct ?

Regards

  • Hi,

    Your understanding that the recorded data contains the raw data is not correct. The recorded data contains the (x,y,z, velocity) information of detected points.

    There is no matlab code provided to read the visualizer data in the SDK release. However there may be somebody in the forum community that has created such a file.

    However, we have other demos that use a matlab gui that parses in matlab the incoming data stream (specific to the demo). Please take a look at some of the demos in the Industrial tool box in the TI resource explorer

    http://dev.ti.com/tirex/explore/node?node=ANNtaxZONu0PbSaUU.YiPQ__VLyFKFf__LATEST

    thank you

    Cesar

  • Hi Cesar,

    Thank you for your prompt reply but I regret to say that it did not reply my question.

    I am going to share some comments / opinions and suggestions along with some pointed questions. The opinions are honest and the questions (some of them) are pointed so please do not feel offended by them. I will give opinions because I have had highest regards for TI but I am really frustrated for the last 1.5 months where I worked almost 10 hours a day but in vain. And the questions (some of them) are pointed so that, after your advice, I can try to focus / direct my effort in the right direction (possibly).

    1)  Can TI please share that what is the purpose of providing a Record button (i will refer SDK 3.2 latest version here) if TI does not provide a code (for example in MATLAB) to parse it and understand it? I am asking this so that I possibly know the supposition / expectation of TI from its customers for this decision so that I can decide whether to work in the same direction or not. 

    2)  I know that some people on the forum might have found a workaround about this problem but you will agree that a code from TI would be much authentic and credible than one provided by some forum member. And, on this forum, people expect support from TI and not much from community members as a matter of fact.

    3) I cursorily referred the doxygen documents for SDK 3.2 and earlier versions of SDK 2.1.0.4, SDK 2.0.0.4, SDK 1.1.0.2 and SDK 1.0.0.5. I have seen, generally that important information is being taken out successively from the progressively newer versions of SDKs. I wonder what could be the reason. The following examples are relevant in this context: 

    3a)  Please refer the thread https://e2e.ti.com/support/sensors/f/1023/p/726567/2681483?tisearch=e2e-sitesearch&keymatch=mmwave 

    A python script is provided for parsing the processed stream obtained from mmwave demo visualizer. However. that python script (supposedly) support SDK 1.1 and 1.2 while the newer devices with ES02.00 silicon version do not support these older SDK versions. 

    3b)  Capture_Demo was included earlier SDK versions (e.g. 1.0.0.5 and 1.1.0.2) and SDK 1.1.0.2 included a handy MATLAB script in Capture Demo for parsing either the .dat file obtained through CCS or  .csv file. This could be used to get the raw ADC data. I understand that in contrast to this MATLAB script, the current mmwave demo visualizer (for SDK 3.2) provides the x, y, z and velocity information but it provides it in .DAT file which is of no use immediately to the user.

    Unfortunately, the TLV documentation is also not elaborate enough.

    4)  You have been kind to suggest the Industrial Tool Box to me for examples of similar MATLAB GUI (demo specific) but please note the following and extend advice:

    4a) You are advising me to go through 22 examples in the Industrial Tool Box and find a suitable MATLAB GUI my self (which will be demo specific) and then I will need to tailor it to mmwave demo visualizer. 

    First, I wonder why TI has not given the parser for mmwave demo visualizer (which almost all the customers will use) and instead TI has given some parser for some specific examples which much lesser number of customers will use as compared to the number of customers using mmwave demo visualizer main app. Then TI expects the users to develop a parser themselves for a .dat file themselves for a function / utility that is provided on possibly one of of its flagship app for mmwave radar IC series.

    4b)  I have already wasted 15 working days (almost 9 hrs/day) after advice of a TI official to build binaries and trying other things to get the Capture Demo running on my AWR1642BOOST and trying to solve numerous problems until I myself learnt from other posts on this blog that the ES2.0 silicon version will not support the older SDK versions which had caprture demo and newer versions that were compatible with ES2.0 silicon version would not provide capture demo.

    Besides, the information about presence of Capture Demo in "Test" directory for newer SDK versions is not readily available. This information is only provided by TI support team after a customer writes in this blog after wasting a lot of time on his/her own end.

    My request to you is that can you please shortlist and advise 1/2/3 labs/experiments (compatible with AWR1642BOOST ES02.00) from where I can get a MATLAB script and then I can try to modify it to parse the output processed stream obtained from mmwave demo visualizer with SDK 3.2.

    5)  The impression I am getting is that with the passage of time, TI has developed a DCA1000EVM board that provides LVDS data (raw ADC data) in real time for processing possibly on laptop with MATLAB etc. Well, that is a good thing, but that costs 500 USD while AWR1642BOOST costs 300 USD. There would be many customers who would first like to have a preliminary experience and evaluation with AWR1642BOOST before they want to go further with AWR1642 in their design and before they want to procure DCA1000 EVM etc. 

    Incidentally, we ourselves even bought a DCA1000EVM along with a AWR1642BOOST but the DCA1000 EVM proved faulty and we became handicapped.

    After about 2 months of hard work, I have the impression that probably TI assumes that those customers who wish to access raw ADC data or some thing like that, they should or they would buy DCA1000EVM and because of this the capture demo is deleted from newer versions of SDK and no parser is provided for output processed stream from mmwave demo visualizer.

    However, my first suggestion to TI is that probably it is not the case. Many customers, as I mentioned above, will like to have AWR1642BOOST first and explore it before taking next step of undertaking a detailed custom design activity etc and buying DCA1000EVM etc.

    I therefore, strongly suggest to TI to please :

    5a)  TI may please consider a MATLAB (or some other) parser to let the customers parse and understand the output processed stream obtained from mmwave demo visualizer.

    5b)  TI may please consider re-incorporating Capture Demo in latest SDK versions.

    6)  I strongly feel that the the documentation support fro TI mmwve product series is extremely unsatisfactory and highly disintegrated. I request and suggest TI to please undertake a thorough review of all its mmwave radar transceivers series. For example:

    6a)  One has to go through many SDK versions and learn for himself the differences. Please note that those differences are many times not evident from the migration sections of Release Notes even. I have 4 SDK versions installed on my machine.

    6b)  There are lot of doxygens provided and at times, the customer does not know about the existence of his required information. The result is that he spends a lot of time on his futile effort to solve the problem or get the information on his own. At the end, he approaches TI support team and then the support team indicates towards a particular doxygen. At many times, the support team gives some information that is available to them but not any where mentioned in the documentation. One short example is that we need to set baud rate of serial port at 115200 but this information is available nowhere in the documentation. I myself wasted 3~4 hrs on this issue and at last got this info from the TI blog where a TI official had told this info to a customer in response to his problem statement.

    6c)  The error codes (for example the ones that appear on CCS console) are documented in DFP documentation (XXX). I will cite my own example here. As i was only using SDK with AWR1642BOOST EVM and I was NOT using MMWAVE DEVPACK EVM. MMWAVE DEVPACK further appeared less popular to me as it was to be used with TSW1400 EVM while recently TI appears to be promoting DCA1000 EVM more so i was not referring DFP documentation although I had that installed on my machine.

    But, I was indeed trying to work on CCS with various SDK versions and mmwave demo visualizer with my AWR1642BOOST EVM. I was having errors on CCS console and I was trying to find question for each individual error (on CCS console) in this blog and I never knew that those error codes were given in DFP documentation (AWR Radar Interface Control Document) which I was NATURALLY not referring to as I was NOT using MMWAVE DEVPACK and neither did the SDK or mmwave demo visualizer documentation referred towards such information and moreover DFP is specific to AWR1243 only (if I am right). But possibly the above document is applicable to complete xWR1xxx series but it is hidden in DFP documentation.

    So, in summary, my 2nd suggestion to TI is to please consider to compile all the relevant document in one sort of big compendium with an extensive Table of Content so that the customer can first see for himself what all information is available and where is it available. This will save a lot of time and effort both at the end of customer as well as as TI support team.

    7)  TI advertises and states the mmwave radar transceiver series and allied software tools etc to be ready to use out-of-box. But , at least I have the impression that if the TI-produced complete development board is so difficult to use and to get accustomed to, then how much more difficult would it be to use the device in a standalone practical design . 

    8)  From the blog, I got the hunch that probably I can get a MATLAB code or useful information from the document titled swra581.pdf   . But the TI link indicating to this document is broken and instead swra581b is avaialble. 

    Can you please provide me version a of this document i.e.  swra581.pdf  ?

    9)  In view of above, I again strongly and passionately suggest TI to please consider the above submissions so that the customers can really learn as fast as possible about this wonderful product and can incorporate it as soon as possible in the practical design.

    10)  My intention is not at all to malign TI or its support team, however, I am still sorry if I have hurt any one but the above had been my sincere feedback.

    Best regards

  • Thank you for your feedback1

    It will be very helpful for us to improve our products.

    Here are some answers:

    • Raw Data Capture
      As you mentioned the latest SDK provides a raw data capture example that does not use the DCA1000 card. This example is documented in the SDK user's guide. The use of this example provides access to one frame of raw data. In most cases this is not sufficient that's why we recommend using the DCA1000 capture board.
      The format of the raw data is described in the following appnote. swra581.pdf is the previous rev of the document and is no longer available after the new rev has been released.
    • SDK versions
      You are correct there have been different releases of the SDK. You should always use the latest that supports the board you have. The releases notes provide information about the boards supported. If the information is not clear please use this forum for support.
    • Mathlab code to parse the mmWave SDk demo processed output.

              Please use following demo as a reference

    68xx - Area Scanner Demo

    http://dev.ti.com/tirex/explore/node?node=AKe3jzsgG8hzFPOWSz4FhA__VLyFKFf__LATEST

    This demo is running on the target the standard SDK 3.02 demo for 68xx platform. It provides a Matlab GUI that parses the List of detected objects (scatter plot)

    file:///C:/ti/mmwave_sdk_03_02_00_04/packages/ti/demo/xwr68xx/mmw/docs/doxygen/html/index.html

    This should provide you with an example of parsing output format

    thank you

    Cesar

  • Hi Cesar,

    Hello after a while, in fact I have been working on similar issues lately.

    Well, thanks for suggesting the area scanner example lab to me. I checked it on TI Resource Explorer and I even checked the TI Resource Explorer from within the CCS also.

    However, I can only find and see the "User Guide" and "Release Notes". I cant see the CCS Project, PC GUI etc folder(s) which could be downloaded (i have seen that usually such folder(s) contain the Matlab script). 

    Can you please help / guide how and from where can I find this Matlab script that you have suggested above for Area Scanner Demo ?

    Best regards

  • Hi Alper,

    i can find the project and GUI files on my local C:\ drive in the mmwave_industrial_toolbox_* under labs\lab0021_area_scanner_68xx.

    Try to download the mmWave SDK Demo from TIREX inside CCC. This should install the complete industrial toolbox on your local drive.

  • Hi user6096953, 

    Thanks a lot for your guidance and help. 

    Best regards

  • The matlab code is the following

    C:\data-nobackup\2019\workdir\mmwave_industrial_toolbox_3_6_1__win\mmwave_industrial_toolbox_3_6_1\labs\lab0021_area_scanner_68xx\gui\mmw_area_scanner.m

    This is the section of the code that parses the input

    %-------------------- Main Loop ------------------------
    while (~EXIT_KEY_PRESSED)
        %Read bytes
        readUartCallbackFcn(hDataSerialPort, 0);
        
        if BYTES_AVAILABLE_FLAG == 1
            BYTES_AVAILABLE_FLAG = 0;
            %fprintf('bytevec_cp_len, bytevecAccLen = %d %d \n',bytevec_cp_len, bytevecAccLen)
            if (bytevec_cp_len + bytevecAccLen) < bytevec_cp_max_len
                bytevec_cp(bytevec_cp_len+1:bytevec_cp_len + bytevecAccLen) = bytevecAcc(1:bytevecAccLen);
                bytevec_cp_len = bytevec_cp_len + bytevecAccLen;
                bytevecAccLen = 0;
            else
                fprintf('Error: Buffer overflow, bytevec_cp_len, bytevecAccLen = %d %d \n',bytevec_cp_len, bytevecAccLen)
            end
        end
        
        bytevecStr = char(bytevec_cp);
        magicOk = 0;
        startIdx = strfind(bytevecStr', char([2 1 4 3 6 5 8 7]));
        if ~isempty(startIdx)
            if startIdx(1) > 1
                bytevec_cp(1: bytevec_cp_len-(startIdx(1)-1)) = bytevec_cp(startIdx(1):bytevec_cp_len);
                bytevec_cp_len = bytevec_cp_len - (startIdx(1)-1);
            end
            if bytevec_cp_len < 0
                fprintf('Error: %d %d \n',bytevec_cp_len, bytevecAccLen)
                bytevec_cp_len = 0;
            end

            totalPacketLen = sum(bytevec_cp(8+4+[1:4]) .* [1 256 65536 16777216]');                
            if bytevec_cp_len >= totalPacketLen
                magicOk = 1;
            else
                magicOk = 0;
            end
        end