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: mmWave Index Out of Range

Part Number: IWR6843AOPEVM

I'm running an IWR6843AOPEVM and have successfully uploaded firmware, chirp config and can receive data from the board. I'm using the prebuilt binaries from the overhead_3d_people_counting lab. Chirp config is the AOP_overhead_3m_Radial with a small modification to the height for my studio. This works and the data appears accurate. 

My issue is occasionally I start to receive an "index out of range" error in "gui_parser.py" line 74 in readAndParseUart (starting at gui_threads.py line 40) and I cannot recover in software from this. Eventually, the loop the application finds itself in errors out. The only way I can recover is to unplug the USB and reinitialize the connection. 

I have written a Python app to attempt to more elegantly handle this, but I can't figure out how to restart the connection. Resetting the bytecount for the magic word doesn't seem to solve the issue. I've also tried flushing the serial connection in Pyserial. Any other suggestions I should try? 

Thanks in advance. 

  • Hi Brent,

    We're aware of the bug, and we're correcting it for the subsequent release. Until then, use the following fix:

    Please modify lines57-61 of parseFrame.py the following. It throws away bad output and it has stopped my visualizer from crashing in the past.

    if(outputDict['error'] == 2):
        print ("skipped due to error")
        # Detected Points
    elif (tlvType == MMWDEMO_OUTPUT_MSG_DETECTED_POINTS):
        outputDict['numDetectedPoints'], outputDict['pointCloud'] = parsePointCloudTLV(frameData[:tlvLength], tlvLength, outputDict['pointCloud'])
    # Range Profile
    Best,

    Nate

  • Thanks for your help, this makes sense and I've implemented the code. Just running it for a longer duration to make sure everything is operating properly.