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: Enabling fine motion detection and BPM-MIMO

Part Number: IWR6843AOPEVM

Hello,

I am using a IWR6843AOPEVM in a wall-mounted setup running the 3D-people counting demo. For my user-case enabling the Fine Motion Detection Mode and BPM-MIMO (Binary Phase Modulation) as described in the detection layer tuning guide seems like a fine idea, yet i can't seem to get it to work.

These are the chirp configurations i am using, which corresponds to the physical positioning of the AOP (e.g Tx0 and Tx2 are on the same Azimuth) :

profileCfg 0 60.75 30.00 25.00 59.10 394758 0 54.71 1 48 2950.00 2 1 36
chirpCfg 0 0 0 0 0 0 0 5
chirpCfg 1 1 0 0 0 0 0 2
chirpCfg 2 2 0 0 0 0 0 5
frameCfg 0 2 48 0 40.00 1 0
fineMotionCfg -1 1
bpmCfg -1 1 0 2

Thank you for your time,

Bram

  • Hello Bram,

    Have you tried the configuration provided? Does it work with that profile? I want to make sure the SW/HW are both working. Also I don't understand what you mean by physical positioning of the AOP? The antenna pattern doesn't change on that device. 

    Regards,

    Jackson

  • Hi Jackson, the device works fine with the configurations provided as long as i use the TDM-MIMO configurations (all other configs are unchanged from the provided 3D people counting lab, but i'll add it at the end of this post just in case):

    profileCfg 0 60.75 30.00 25.00 59.10 394758 0 54.71 1 96 2950.00 2 1 36
    chirpCfg 0 0 0 0 0 0 0 1
    chirpCfg 1 1 0 0 0 0 0 2
    chirpCfg 2 2 0 0 0 0 0 4
    frameCfg 0 2 96 0 55.00 1 0

    However, with the provided configurations for BPM-MIMO:


    profileCfg 0 60.75 30.00 25.00 59.10 394758 0 54.71 1 96 2950.00 2 1 36
    chirpCfg 0 0 0 0 0 0 0 1
    chirpCfg 1 1 0 0 0 0 0 6
    chirpCfg 2 2 0 0 0 0 0 6
    frameCfg 0 2 96 0 40.00 1 0
    fineMotionCfg -1 1
    bpmCfg -1 1 1 2

    Then the GUI just freezes, without any notifications to the python console.

    So i was wondering whether i was fitting to much in a single frame, hence the changes to frameCfg <numloops> and profileCfg<numAdcSamples> in the original post, but no luck.

    With regards to the physical positioning of the AOP, i was following the advice on page 20 from the 3d_people_counting_detection_layer_guide.pdf from the mmwave_industrial_toolbox_4_9_0, that states that the two Tx antennas in BPM-MIMO mode should be on the same azimuth axis, which i believe is dependent on the physical positioning of the AOP; if the board was turned 90 degrees then Tx1 and Tx3 would no longer be on the same Azimuth axis, right? 

    Best regards,

    Bram

    complete wallmount config:

    sensorStop
    flushCfg
    dfeDataOutputMode 1
    channelCfg 15 7 0
    adcCfg 2 1
    adcbufCfg -1 0 1 1 1
    lowPower 0 0
    profileCfg 0 60.75 30.00 25.00 59.10 394758 0 54.71 1 96 2950.00 2 1 36
    chirpCfg 0 0 0 0 0 0 0 1
    chirpCfg 1 1 0 0 0 0 0 6
    chirpCfg 2 2 0 0 0 0 0 6
    frameCfg 0 2 96 0 40.00 1 0
    fineMotionCfg -1 1
    bpmCfg -1 1 1 2
    dynamicRACfarCfg -1 4 4 2 2 8 12 4 8 5.00 8.00 0.40 1 1
    staticRACfarCfg -1 6 2 2 2 8 8 6 4 8.00 15.00 0.30 0 0
    dynamicRangeAngleCfg -1 0.75 0.0010 1 0
    dynamic2DAngleCfg -1 1.5 0.0300 1 0 1 0.30 0.85 8.00
    staticRangeAngleCfg -1 0 8 8
    antGeometry0 -1 -1 0 0 -3 -3 -2 -2 -1 -1 0 0
    antGeometry1 -1 0 -1 0 -3 -2 -3 -2 -3 -2 -3 -2
    antPhaseRot 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1
    fovCfg -1 70.0 20.0
    compRangeBiasAndRxChanPhase 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
    staticBoundaryBox -1 1 0 4 0 3
    boundaryBox -1 1 0 5.5 0 3
    sensorPosition 2 0 15
    gatingParam 3 2 2 2 4
    stateParam 3 3 12 500 5 6000
    allocationParam 20 100 0.1 20 0.5 20
    maxAcceleration 0.1 0.1 0.1
    trackingCfg 1 2 800 30 46 96 55
    presenceBoundaryBox -1 1 0 5 0 3
    sensorStart

  • Hello,

    All the orientation will be relative to the sensor, so rotating the sensor doesn't change anything (for BPM, not always true for tracking). Although I see what you mean now about optimizing for wall mount on a different orientation. Can you please confirm if the sensor/GUI will start after sending the exact provided _staticRetention.cfg file and prebuilt binary?

    I will also look into this on my end.

    Regards,

    Jackson

  • Hello Bram.

    The chirpCfg and bpmCfg in your config below seem OK when you turn the AOP by 90 degrees. In this case, as you mentioned, TX0-TX2 pair will be in the azimuth axis to be used when creating the range-azimuth heatmap. These antennas are configured right in your case.

    profileCfg 0 60.75 30.00 25.00 59.10 394758 0 54.71 1 48 2950.00 2 1 36
    chirpCfg 0 0 0 0 0 0 0 5
    chirpCfg 1 1 0 0 0 0 0 2
    chirpCfg 2 2 0 0 0 0 0 5
    frameCfg 0 2 48 0 40.00 1 0
    fineMotionCfg -1 1
    bpmCfg -1 1 0 2

    However, it seems the frame rate you configured is a little bit high. As I estimated (you can refer to the implementation guide for details), the processing load may not fit into a 40ms frame duration. Please try increasing this number. I see that you reduced the #of samples to 48 (from 96). I guess ~50ms duration should be OK for this configuration.

     In the original config file you shared in the follow-up correspondence:

    profileCfg 0 60.75 30.00 25.00 59.10 394758 0 54.71 1 96 2950.00 2 1 36
    chirpCfg 0 0 0 0 0 0 0 1
    chirpCfg 1 1 0 0 0 0 0 6
    chirpCfg 2 2 0 0 0 0 0 6
    frameCfg 0 2 96 0 40.00 1 0
    fineMotionCfg -1 1
    bpmCfg -1 1 1 2

    The number of chirps should be half (48) when fine-motion mode is enabled (you can refer to the tuning guide for details). Again, frame duration should be 55ms in this config. When you use 48 ADC samples, you can reduce the frame duration to ~50ms (as I mentioned above).

    Regards.

    Muhammet

  • Thank you both for replying, all my issues were caused by a fundamental misunderstanding of how frame periodicity worked, in combination with not placing the link that the  _staticRetention.cfg file is in fact an example config for BPM-MIMO.

    Best wishes,

    Bram