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.

IWR6843AOPEVM: Running out-of-box demo

Part Number: IWR6843AOPEVM
Other Parts Discussed in Thread: MMWAVEICBOOST, UNIFLASH

Hi,

I have a setup consisting of IWR6843AOPEVM + MMWAVEICBOOST connected to a computer running Ubuntu 22.04 LTS.

I have flashed the EVM  with out-of-box demo using the pre-built binary out_of_box_6843_aop.bin from ~/ti/mmwave_industrial_toolbox_4_12_0/labs/Out_Of_Box_Demo/prebuilt_binaries . I did this using the UniFlash tool.

I was able to launch the demo visualizer tool (not the browser version) and connect to the target system.

However, I am not able to run the out-of-box demo.

Here is the console output:

rama@gram:~/ti/mmwave_industrial_toolbox_4_12_0/tools/Visualizer$ python3 ./gui_main.py
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Python is 64 bit
Python version: sys.version_info(major=3, minor=10, micro=6, releaselevel='final', serial=0)
Parser type: SDK Out of Box Demo
Connected
Traceback (most recent call last):
File "/home/rama/ti/mmwave_industrial_toolbox_4_12_0/tools/Visualizer/gui_threads.py", line 40, in run
outputDict = self.parser.readAndParseUart()
File "/home/rama/ti/mmwave_industrial_toolbox_4_12_0/tools/Visualizer/gui_parser.py", line 74, in readAndParseUart
if (magicByte[0] == magicWord[index]):
IndexError: index out of range
Traceback (most recent call last):
File "/home/rama/ti/mmwave_industrial_toolbox_4_12_0/tools/Visualizer/gui_threads.py", line 40, in run
outputDict = self.parser.readAndParseUart()
File "/home/rama/ti/mmwave_industrial_toolbox_4_12_0/tools/Visualizer/gui_parser.py", line 74, in readAndParseUart
if (magicByte[0] == magicWord[index]):
IndexError: index out of range

What am I doing wrong?

Thanks,

Rama

  • Hello.

    Can you provide an image of your current set up as well as the current list of ports in your device manager?  It looks like the GUI isn't able to parse the UART output from the device so please also make sure that you have the correct UART drivers installed that are provided in the out of box user guide.

    Sincerely,

    Santosh

  • Hi Santosh,

    Above images show my setup. As I noted before, UniFlash was able to recognize my set up. And after I made the suggested in https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1137996/iwr6843aopevm-connecting-mmwave-industrial-visualizer-to-target-on-ubuntu?tisearch=e2e-sitesearch&keymatch=UBUNTU# I was able establish connection from the Visualizer to the board. Let me know if you need any other information about my setup.

    Thanks,

    Rama

  • Hello.

    According to your setup, it looks like the S2 switches on the AOP are incorrect as they should be OFF/ON/N.A/N.A for S2.1/S2.2/S2.3/S2.4, respectively.  However, all of your switches are in the OFF position.  It also looks like you are still in flashing mode instead of functional mode based on the jumpers on the ICBoost, but the picture was a bit blurry when I zoomed in so please correct me if I am mistaken.  Please reference the EVM setup guide for how to do this with the ICBoost, linked here.  Also for some clarification, does this error occur after you press the connect button or when you send the cfg?

    Sincerely,

    Santosh

  • Hi Santosh,  

    I did the switch setting watching the video at https://training.ti.com/hardware-setup-mmwaveicboost-and-antenna-module  and this is what I saw at 9:30 mark:

    Here is the SOP jumper setting:

    Looking at the documentation

    I feel the jumper setting I have corresponds to 001 (SOP mode 4) = functional mode

    This is what I see in SWRU546E page 72 for S1 and S2 setting on IWR6843AOPEVM:

    Now I see the difference. So, should S2.2  OFF for flashing and then set to ON for functional mode? I thought the only thing that needs to be changed from flashing mode to functional mode was SOP2 jumper setting. on MMWAVEICBOOST board. Can you please clarify?

    Thanks,

    Rama

    PS: I get the same error as I got before with S2.2 set to ON and when I press "Start without Send Code" button

  • Hello.

    I thought the only thing that needs to be changed from flashing mode to functional mode was SOP2 jumper setting. on MMWAVEICBOOST board. Can you please clarify?

    You are correct.  I am not familiar with that video, but I have linked the latest EVM operation setup guide here.  Please follow these steps for the AOP + ICBoost before trying to flash/run Out of Box demo.

    The button you pressed to start is only to be used if you preloaded a configuration or have the board already running and don't want to resend a configuration.  If this is the first time you are running it or have reflashed it, please send a configuration, which can be found in the profile folder in the mmwave_sdk_install/packages\ti\demo\xwr68xx\mmw\ folder.

    Sincerely,

    Santosh

  • Hi Santosh,

    Which specific configuration file should I be using just to get out-of-box demo up and running. There are a number of files with cfg extension in the folder you mentioned and I am not sure which one I should be using. I couldn't find a document that provides such instructions.

    Thanks,

    Rama

  • I continue to get the same error even after selecting a configuration and press the Start and Send Configuration. I am wondering if the changes made to gui_main.py to address the connection issue has impacted anything else. Here is the modified gui_main.py

    code starting at line 240:

            # Find default CLI Port and Data Port
            for port in serialPorts:
                return None
                # if (CLI_XDS_SERIAL_PORT_NAME in port.description or CLI_SIL_SERIAL_PORT_NAME in port.description):
                #     print(f'\tCLI COM Port found: {port.device}')
                #     comText = port.device
                #     comText = comText.replace("COM", "")
                #     self.cliCom.setText(comText)
    
                # elif (DATA_XDS_SERIAL_PORT_NAME in port.description or DATA_SIL_SERIAL_PORT_NAME in port.description):
                #     print(f'\tData COM Port found: {port.device}')
                #     comText = port.device
                #     comText = comText.replace("COM", "")
                #     self.dataCom.setText(comText)
    

    code starting at 920:

        def connectCom(self):
            #get parser
            self.parser = uartParser(type=self.configType.currentText())
            self.parser.frameTime = self.frameTime
            print('Parser type: ',self.configType.currentText())
            #init threads and timers
            self.uart_thread = parseUartThread(self.parser)
            if (self.configType.currentText() != 'Replay'):
                self.uart_thread.fin.connect(self.parseData)
            self.uart_thread.fin.connect(self.updateGraph)
            self.parseTimer = QTimer()
            self.parseTimer.setSingleShot(False)
            self.parseTimer.timeout.connect(self.parseData)
            try:
                # uart = "COM"+ self.cliCom.text()
                # data = "COM"+ self.dataCom.text()
                uart = self.cliCom.text()
                data = self.dataCom.text()
                self.parser.connectComPorts(uart, data)
                self.connectStatus.setText('Connected')
                self.connectButton.setText('Disconnect')
    #TODO: create the disconnect button action
            except Exception as e:
                print (e)
                self.connectStatus.setText('Unable to Connect')
            if (self.configType.currentText() == "Replay"):
                self.connectStatus.setText('Replay')
            if (self.configType.currentText() == DEMO_NAME_LRPD):
                self.frameTime = 400
    

  • Hello.

    My apologies for the confusion.  For the profile configuration, look in the sdk_install/packages/ti/demo/xwr64xx/mmw/profiles folder as the out of box for AOP does not use the DSP.  Use the one with the aop ending in the filename.  Make sure you are also flashing the out of box binary with the aop ending from the toolbox.

    Sincerely,

    Santosh

  • Hi Santosh, 

    I have flashed IWR6843AOPEVM with out-of-box-demo using UniFlash. I apologize; I am not sure I understand what you mean by "For the profile configuration, look in the sdk_install/packages/ti/demo/xwr64xx/mmw/profiles folder as the out of box for AOP does not use the DSP.  Use the one with the aop ending in the filename. "

    Can you please tell me which specific cfg file i should be using for SDK Out of Box Demo? Please provide the specific name of the file. Here is the list of files I see in the folder you mentioned:


    Which one of the above files should I be using when I press the button Select Configuration on the Visualizer?

    Thanks,

    Rama

  • PS: I tried profile_3d.cfg and the demo seems to be running. I see the point cloud as shown below:

    Here is what I see in the console:

    {'startFreq': 60.0, 'numLoops': 64, 'numTx': 3, 'sensorHeight': 3.0, 'maxRange': 10, 'az_tilt': 0, 'elev_tilt': 0, 'idle': 7.0, 'adcStart': 3.0, 'rampEnd': 24.0, 'slope': 166.0, 'samples': 256.0, 'sampleRate': 12500.0}
    b'% Carrier frequency     GHz                          60\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Ramp Slope    MHz/us                               166\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Num ADC Samples                                    256\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% ADC Sampling Rate Msps                             12.5\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% ADC Collection Time   us                           20.48\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Extra ramp time required (start time) us           3\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Chirp time (end time - start time)    us           21\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Chirp duration (end time) us                       24\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Sweep BW (useful) MHz                              3399.68\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Total BW  MHz                                      3984\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Max beat freq (80% of ADC sampling rate)  MHz      10\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Max distance (80%)    m                            9.04\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Range resolution  m                                0.044\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Range resolution (meter per 1D-FFT bin)   m/bin    0.044\n'
    b'Skipped\n'
    b'\rmmwDemo:/>%                                                    \n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Inter-chirp duration  us                           7\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Number of chirp intervals in frame    -            64\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Number of TX (TDM MIMO)                            2\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Number of Tx elevation antennas                    0\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Number of RX channels -                            4\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Max umambiguous relative velocity kmph             72.58\n'
    b'Skipped\n'
    b'\rmmwDemo:/>%   mileph                                           45.36\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Max extended relative velocity    kmph             145.16\n'
    b'Skipped\n'
    b'\rmmwDemo:/>%   mileph                                           90.73\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Frame time (total)    ms                           1.984\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Frame time (active)   ms                           1.536\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Range FFT size    -                                256\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Doppler FFT size  -                                32\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Radar data memory required    KB                   272\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Velocity resolution   m/s                          1.26\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Velocity resolution (m/s per 2D-FFT bin)  m/s/bin  1.26\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Velocity Maximum  m/s                              20.16\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Extended Maximum Velocity m/s                      40.32\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% Maximum sweep accorss range bins  range bin        0.91\n'
    b'Skipped\n'
    b'\rmmwDemo:/>% \n'
    b'Skipped\n'
    b'\rmmwDemo:/>sensorStop\n'
    b'Ignored: Sensor is already stopped\n'
    b'\rDone\n'
    b'\rmmwDemo:/>flushCfg\n'
    b'Done\n'
    b'\rmmwDemo:/>dfeDataOutputMode 1\n'
    b'Done\n'
    b'\rmmwDemo:/>channelCfg 15 7 0\n'
    b'Done\n'
    b'\rmmwDemo:/>adcCfg 2 1\n'
    b'Done\n'
    b'\rmmwDemo:/>adcbufCfg -1 0 1 1 1\n'
    b'Done\n'
    b'\rmmwDemo:/>lowPower 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>profileCfg 0 60 7 3 24 0 0 166 1 256 12500 0 0 158\n'
    b'Done\n'
    b'\rmmwDemo:/>chirpCfg 0 0 0 0 0 0 0 1\n'
    b'Done\n'
    b'\rmmwDemo:/>chirpCfg 1 1 0 0 0 0 0 4\n'
    b'Done\n'
    b'\rmmwDemo:/>chirpCfg 2 2 0 0 0 0 0 2\n'
    b'Done\n'
    b'\rmmwDemo:/>frameCfg 0 2 32 0 100 1 0\n'
    b'Done\n'
    b'\rmmwDemo:/>guiMonitor -1 1 1 1 0 0 1\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarCfg -1 0 2 8 4 3 0 15.0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarCfg -1 1 0 4 2 3 1 15.0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>multiObjBeamForming -1 1 0.5\n'
    b'Done\n'
    b'\rmmwDemo:/>calibDcRangeSig -1 0 -5 8 256\n'
    b'Done\n'
    b'\rmmwDemo:/>clutterRemoval -1 0\n'
    b'Done\n'
    b'\rmmwDemo:/>\n'
    b'mmwDemo:/>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\n'
    b'Done\n'
    b'\rmmwDemo:/>measureRangeBiasAndRxChanPhase 0 1. 0.2\n'
    b'Done\n'
    b'\rmmwDemo:/>\n'
    b'mmwDemo:/>'
    b'aoaFovCfg -1 -90 90 -90 90\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarFovCfg -1 0 0.25 9.0\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarFovCfg -1 1 -20.16 20.16\n'
    b'Done\n'
    b'\rmmwDemo:/>extendedMaxVelocity -1 0\n'
    b'Done\n'
    b'\rmmwDemo:/>\n'
    b'mmwDemo:/>'
    b'CQRxSatMonitor 0 3 4 63 0\n'
    b'Done\n'
    b'\rmmwDemo:/>CQSigImgMonitor 0 127 4\n'
    b'Done\n'
    b'\rmmwDemo:/>analogMonitor 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>lvdsStreamCfg -1 0 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>bpmCfg -1 0 0 0\n'
    b"'bpmCfg' is not recognized as a CLI command\n"
    b'\rmmwDemo:/>calibData 0 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>sensorStart\n'
    b'Debug: Init Calibration Status = 0x1ffe\n'
    Warning: invalid TLV type: 536873576
    TLV Header Parsing Failure
    Warning: invalid TLV type: 536873576
    TLV Header Parsing Failure
    Warning: invalid TLV type: 536873576
    Parsing Error on frame: 5
    	Error Number: 2
    Warning: invalid TLV type: 1333036991
    TLV Header Parsing Failure
    Warning: invalid TLV type: 1333036991
    TLV Header Parsing Failure
    Warning: invalid TLV type: 1333036991
    TLV Header Parsing Failure
    Warning: invalid TLV type: 1333036991
    TLV Header Parsing Failure
    Warning: invalid TLV type: 1333036991
    Parsing Error on frame: 174
    	Error Number: 2
    Warning: invalid TLV type: 146475251
    TLV Header Parsing Failure
    Warning: invalid TLV type: 146475251
    TLV Header Parsing Failure
    Warning: invalid TLV type: 146475251
    Parsing Error on frame: 648
    	Error Number: 2
    Warning: invalid TLV type: 1062171783
    TLV Header Parsing Failure
    Warning: invalid TLV type: 1062171783
    TLV Header Parsing Failure
    Warning: invalid TLV type: 1062171783
    TLV Header Parsing Failure
    Warning: invalid TLV type: 1062171783
    TLV Header Parsing Failure
    Warning: invalid TLV type: 1062171783
    Parsing Error on frame: 720
    	Error Number: 2
    
    I am not sure what those "Parsing Error on frame x Error number: 2" mean.

  • Hello.

    /packages/ti/demo/xwr64xx/mmw/profiles

    Starting from your sdk install location, follow this filepath to the profiles folder, and choose the profile_3d_aop.cfg.  You went to the xwr68xx folder instead of xwr64xx folder. 

    Sincerely,

    Santosh

  • Thanks for the clarification, Santosh. I thought I should stick with xwr68xx for IWR6843AOPEVM. I still see the "invalid TLV type" warnings and "Parsing Error". Don't know what they are and ignoring for the time being. For now, I am not blocked. I will try to proceed with other demos. 

    Thanks for your patience in helping this newbie. Slight smile

  • No problem.  That is a bit confusing, as the reason it is there is due to the fact that this demo for the AOP does not use the DSP, and is lumped into the 64 folder in the SDK.  Let me look into the TLV issue and get back to you on that.

    Sincerely,

    Santosh

  • I understand. I am an ex TIer and I have been using TI products since early 80s.  Learning never stops and the sun never sets for engineers. :) 

  • Hello.

    So the TLV issue is most likely due to very large TLV's coming through that are not necessarily needed.  In the configuration, please change the guiMonitor command in the cfg to 

    guiMonitor -1 1 0 0 0 0 0
    Hope this helps.
    Santosh
  • Thanks for the suggestion. The change did make a difference but there were few of those "invalid TLV type" warnings and related errors when I started the demo. I will ignore them for the time being and I will mark your last response as "resolved my issue". Thanks for your help.

    b'\rmmwDemo:/>guiMonitor -1 1 0 0 0 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarCfg -1 0 2 8 4 3 0 15.0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarCfg -1 1 0 4 2 3 1 15.0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>multiObjBeamForming -1 1 0.5\n'
    b'Done\n'
    b'\rmmwDemo:/>calibDcRangeSig -1 0 -5 8 256\n'
    b'Done\n'
    b'\rmmwDemo:/>clutterRemoval -1 0\n'
    b'Done\n'
    b'\rmmwDemo:/>\n'
    b'mmwDemo:/>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\n'
    b'Done\n'
    b'\rmmwDemo:/>measureRangeBiasAndRxChanPhase 0 1. 0.2\n'
    b'Done\n'
    b'\rmmwDemo:/>\n'
    b'mmwDemo:/>'
    b'aoaFovCfg -1 -90 90 -90 90\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarFovCfg -1 0 0.25 15\n'
    b'Done\n'
    b'\rmmwDemo:/>cfarFovCfg -1 1 -13.39 13.39\n'
    b'Done\n'
    b'\rmmwDemo:/>extendedMaxVelocity -1 0\n'
    b'Done\n'
    b'\rmmwDemo:/>\n'
    b'mmwDemo:/>'
    b'CQRxSatMonitor 0 3 4 63 0\n'
    b'Done\n'
    b'\rmmwDemo:/>CQSigImgMonitor 0 127 4\n'
    b'Done\n'
    b'\rmmwDemo:/>analogMonitor 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>lvdsStreamCfg -1 0 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>calibData 0 0 0\n'
    b'Done\n'
    b'\rmmwDemo:/>sensorStart\n'
    b'Debug: Init Calibration Status = 0x1ffe\n'
    Warning: invalid TLV type: 180882155
    TLV Header Parsing Failure
    Warning: invalid TLV type: 180882155
    TLV Header Parsing Failure
    Warning: invalid TLV type: 180882155
    TLV Header Parsing Failure
    Warning: invalid TLV type: 180882155
    TLV Header Parsing Failure
    Warning: invalid TLV type: 180882155
    Parsing Error on frame: 110742
    	Error Number: 2
    Warning: invalid TLV type: 893216631
    Warning: invalid TLV type: 1034787147