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: UART output of iwr6843 sensor

Part Number: IWR6843AOPEVM
Other Parts Discussed in Thread: IWR6843, IWR6843AOP

Hi Team,

We are seeking your help regarding our customer's inquiry below.

I'm making a program that receives data using iwr6843aopevm in C++ and I don't know much about radar sensors or electronics.

Documents referred to for program development are based on 'Understanding_UART_Data_Output_Format.html' and mmWave demo visualizer web program help.

FRAME and TLVs were received through UART, and the payloads of TLVs are to be expressed with each chart of the visualizer provided by TI.

1. TLV type1 Detected Points: I wonder how the coordinate system for object location is matched with the real sensor.
2. TLV type2 Range Profile: I have received the range-profile and converted  Q9 arrays to real-number. Compared to what is shown on the visualizer chart, the waveform is similar but the value is small. Q9What kind of calculation should be done after format conversion?
And I wonder how the range profile is expressed from the actual sensor.
3. How to express detected-points on the visualizer's range-profile chart? And which TLV include that information and need to calculate? 
4. TLV type4 Azimuth Static Heatmap: I want to know information about the antenna mentioned that document. I also want to know the information match with the real sensor.

Regards,

Danilo

  • Hi Danilo, 

    Sorry for the delay here. You can expect a response to these questions within 24 hrs. In the meantime could you also ask the customer to clarify on these points below?

    And I wonder how the range profile is expressed from the actual sensor.

    What is meant by this? Do you wish to know how the range profile is computed?

    4. TLV type4 Azimuth Static Heatmap: I want to know information about the antenna mentioned that document. I also want to know the information match with the real sensor

    I am not sure about what antenna or document is being referenced. Can you please clarify?

    Regards,

    Josh

  • Hi Josh,

    I will attach more information about questions.

    Question about uart output of iwr6843 sensor

    I'm making a program that receives data using iwr6843aopevm in C++ and I don't know much about radar sensors or electronics.

    Documents referred to for program development are based on 'Understanding_UART_Data_Output_Format.html' and mmWave demo visualizer web program help.

    FRAME and TLVs were received through UART, and the payloads of TLVs are to be expressed with each chart of the visualizer provided by TI.

    1. TLV type1 Detected Points: I wonder how the coordinate system for object location is matched with the real sensor.
    • I want to know the definitions of the origin and each Axis means in real-sensor.

      2. TLV type2 Range Profile: I have received the range-profile and converted  Q9 arrays to real-number. Compared to what is shown on the visualizer chart, the waveform is similar but the value is small. Q9 What kind of calculation should be done after format conversion?
      And I wonder how the range profile is expressed from the actual sensor.
    • In our program

    • In TI’s ‘mmWave demo visualizer’

    Below is a function of convert ‘Q9-> real-number’

    float q9_to_float(const uint16_t q9_value, const uint16_t unFraction)

    {

        int integer_part = (q9_value >> 9) & 0x7F;

        int fractional_part = q9_value & 0x1FF;

        // 1. Q format를 real value로 변환

        float result = static_cast<float>(integer_part) + (static_cast<float>(fractional_part) * pow(2, -(unFraction))); 

        return result;

    The question is “Is there any post-process to show same with TI’s ‘mmWave demo visualizer’?”

    1. How to express detected-points on the visualizer's range-profile chart? And which TLV include that information and need to calculate? 

    4. TLV type4 Azimuth Static Heatmap: I want to know information about the antenna mentioned that document. I also want to know the information match with the real sensor.

    • The document talk about TLV type4 below, and I wordered about ‘virtual antennas’ to plot to chart in our program.

    (If I want to plot data to chart, I have to know each array)

    How many antennas in there?

    How they consist in real-sensor?(hardware)

    How the coordinate system is organized with real-sensor(hardware)?

    Azimuth Static Heatmap

    Type: 4
    Length: (Range FFT size) x (Number of "azimuth" virtual antennas) x (4Bytes)
    Value: Samples to calculate static azimuth heatmap (no moving object signal). This is a 2D FFT array in range direction (x[numRangeBins][numVirtualAntAzim]), at doppler index 0. 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)

    This means the first 4 bytes of the payload is the radar cube complex value of the first range bin for the first virtual antenna(N=1). The last 4 bytes is for the last range bin (R) and the last virtual antenna (N). The values from the radar cube are used to construct the range-azimuth heatmap in the visualizer.

    I have another question about TLV type 5.

     

    It described the data is consist of 2Dimension array in document('Understanding_UART_Data_Output_Format.html')

    And the definition is described like below:

    Range-Doppler Heatmap

    Type: 5
    Length: (Range FFT size) x (Doppler FFT size) x (2Bytes)
    Value: Range/Doppler detection matrix.

    X(range bin 0, Doppler bin 0),...,X(range bin 0, Doppler bin D-1),
    ...
    X(range bin R-1, Doppler bin 0),...,X(range bin R-1, Doppler bin D-1)

     

    I have received it from IWR6843AOPEVM, and plot in chart.

    But it differ with TI’mmWave demo visualizer

    • In our program 

    • In TI’mmWave demo visualizer’ 

    The question is Is there any post-process to show same with TImmWave demo visualizer?

    1. The difference of the image between ours and TI’s
    2. how can I mapping the array indexer to real value?
    • The 2D array is consist of Range FFT size(0~255) X Doppler FFT size(0~15).
    • How to map the each indexer to real value(Range  meter and Doppler-m/s)

    Please reply with previous questions (total 5 questions)

    Regards,

    Danilo

  • Hi Danilo, 

    Thank you. I've tried to address some of the customer's inquiries below. 

    1. Coordinate values in the detected points TLV are in units of meters and with the origin being the location of the sensor. 
      • The axes can be described as in the image below
    2. In regards to the range profile processing, please see this similar post which I believe should provide some insight: https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1209769/iwr6843aopevm-range-profile-data-from-log2-to-linear-values/4564911?tisearch=e2e-sitesearch&keymatch=range%252520profile%252520does%252520not%252520match%252520demo%252520visualizer#4564911 

      • How to express detected-points on the visualizer's range-profile chart? And which TLV include that information and need to calculate? 

      My Apologies, I'm still investigating this inquiry. Please allow me to respond on this point within the next 24 hrs. 

      For IWR6843AOPEVM we have 3 transmit and 4 receive antenna, this gives 12 virtual antennas in total as shown below:

      However, this TLV is specific to the 'azimuth' virtual antennas, of which there are 4 for the IWR6843AOP.

      Many of our EVMs have a different antenna design and as such this will differ. For more information on antennas for our EVMs you can reference this directory in the Radar Toolbox.

    3. For your range-doppler heatmap, it looks like the data is correct but it is being plotted differently. I think this is because of how the data is being stored and output from the device is not the best way to show it. Please correct me if I am wrong but it appears you are just plotting the 2D array as is without first doing any processing/rearranging? 
      • The "0th doppler bin" aka the first value of each row in the 2d array corresponds to Zero doppler and as such should be plotted in the middle of the Y-axis on your plot
      • Doppler bins 1-7 will be corresponding to the positive doppler and increasing in magnitude
      • Doppler bins 8-15 will be corresponding to the negative doppler and decreasing in magnitude 
    The question is Is there any post-process to show same with TImmWave demo visualizer?

    In general we do not have any documentation which covers how we are plotting the output data etc... but if you are interested, you are actually able to view the source code for the mmWave Demo Visualizer, the relevant code is located in the mmWave.js file. 

    Best Regards,

    Josh