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.

CC2642R: the AOA data vibrate badly

Part Number: CC2642R

Hi,

I am testing AOA in CC2642 and boostXL-AOA. the SDK version is V3.2. Now I can see the AOA angle data from node manager and IQ raw data by rtls_aoa_iq_log.py file. the settings are default. But the AOA data vibrate a lot when I keep the boostXL-AOA in the same place. Or if I move it slowly, the AOA  data do not change slowly, rather, it change a lot, a very bad result. I have read the AOA academy, but the task 4 and 5 only provide the IQ data's basic knowledge, I can not get any diagnostic information.  So I want to know:

1. the relation between CTE and the IO switch or toggle. in the CTE it says a switch slot and a sample slot alternate each other, both are 1us or 2us. But in the IQ data each IO switch time is 4us, and the sample time is  much longer. And I can not find the timer place in the passive project to do any change.

2.  in task4, it says "The reason for checking I/Q data is that different HW design will yield different result which will affect your own angle calculation algorithm. For example, if the rf switches you are using need longer settling time than the ones on BOOSTXL-AoA, then you will need to discard more I/Q samples when doing calculations."  How can I know whether the switch point is ok or not. And if I need to change the switch point , how do I change it in the passive project. Thank you

Yanpo, li

  • Hi Yanpo,

    Assigning a team member to look into your questions.

  • Hi Yanpo,

    1- As written in the BLE user's guide of your SDK (docs/ble5stack/ble_user_guide/html/ble-stack-5.x-guide/localization-index-cc13x2_26x2.html#id18), you can modify the duration of the sampling slots through the Python.

    2- To determine which I/Q samples should be discarded, please refer to the BLE user's guide, in the section AoA Driver, you have a chapter named "Valid I/Q Samples For Angle Calculation" (docs/ble5stack/ble_user_guide/html/ble-stack-5.x-guide/localization-index-cc13x2_26x2.html#valid-i-q-samples-for-angle-calculation)

    I hope this will help,

    Best regards,

  • Hi,

    Now I have use the rtls_ala_iq_log.py   to get several IQ sample data files. What I found is, sometimes there is no any discontinuity after index 32 point while sometimes it just looks like as the picture in "Valid I/Q Samples For Angle Calculation" (docs/ble5stack/ble_user_guide/html/ble-stack-5.x-guide/localization-index-cc13x2_26x2.html#valid-i-q-samples-for-angle-calculation). I guess the discontinuity matters with the path between passive and slave. if there is no any obstacle between them, then the IQ plot is fluent , and if there is some obstacle between them, then the bigger the obstacle is ,the worse of the discontinuity is. SO is this right or not?

    Besides, if I want to print the signalstrength_A1 out, is it the amplitude of the antenna A1? or it is just left for future. And I need to calculate the amplitude myself? Thanks.

    Yanpo, Li

  • Hi,

    When you are performing your test, do you have a phase difference between the signal coming from the two antennas? (If you do not have a phase difference then you will not observe the discontinuity). You can provoke a phase difference by having a non-zero angle between the passive and the slave. I assume that the obstacle might provoke a phase difference also (however it is not the recommended approach).

    Regarding the second part of your message, you can get the signal strength through the RSSI. The structure AoA_AntennaResult has a field (named rssi) holding this information. You can basically retrieve this information and display it. (note: there is a function AOA_postProcess() that might help you)

    Best regards,

  • Hi,

    Now the AOA value vibrate ±5 degree when the slave keeps its position. However, it only works in a few range, like ±20 degree, when the slave move out this area, the AOA angle will not discontinue. Is this normal or not.? if it is abnormal, where is the possible wrong point? 

    By the way, how big the AOA range is?   Thank you.

    best regards,

    Yanpo, li

  • Hi,

    Can you verify if both antennas arrays are activated?

    With both antennas arrays the theoretical AoA range is 270 degrees. I invite you to consult the chapter "AoA performance" of the following page: http://dev.ti.com/tirex/content/tirex-product-tree/cc26xx_devtools/.metadata/.tirex/project0_boostxl_aoa_bp/landing_page_index.html

    Regards,

  • Hi Yanpo,

    Do you have any new input regarding this thread?

    Best regards,

  • Hi,

    I test the switch I/O signal in the oscilloscope,  both the two antenna work. Now during ±25°, it works very well, just as expected. But when  the slave moves out of this range, the AOA degree is not right.

    I do not know why. in the linked web set of the launchpadXL, it says the range is ±50°,I do not know why I get only half the range.

    Besides, when changed to two antennas , the following need to be changed or not?

    const int16_t AoA_A1 = ((antA1Result->pairAngle[0] + antA1Result->pairAngle[1]) / 2)+ 45 + antA1Result->channelOffset[antA1Result->ch];// the original sentence

    const int16_t AoA_A1 = antA1Result->pairAngle[0]  + antA1Result->channelOffset[antA1Result->ch];// the changed sentence

    if not, where other place that affect the effective angle range?

    thank you

    Yanpo, li

     

  • Hi Yanpo,

    Regarding the fact you are getting bad results when the angle is over ±25°. If you are getting data completely wrong, then I would suggest you to verify that nothing is disturbing your signals when you are over 25° (i.e. something reflecting the signals). You can also try to have the slave closer to the passive to limit the multipath possibilities. On the contrary, if you are having results that are not totally accurate, this might be the sign that you need to have a better treatment-algorithm or use different channel-offsets over a certain angle. 

    Regarding the way to compute the angle, I confirm, with only two antennas you have to change the content of RTLSCtrl_estimateAngle() in rtls_ctrl_aoa.c:  

    // const int16_t AoA_A1 = ((antA1Result->pairAngle[0] + antA1Result->pairAngle[1]) / 2)+ 45 + antA1Result->channelOffset[antA1Result->ch];
    
    const int16_t AoA_A1 = antA1Result->pairAngle[0] + 45 + antA1Result->channelOffset[antA1Result->ch];

    Note: The offset +45 only depends on where you want to have the reference.

    I hope this will help,

    Regards,

  • Hi,

    there is no obstacle between passive and slave. their distance is 1.5 meter, not far. they are tested in a open room. the result a got is like the following picture. the y axis is the degree. the x axis is time.  the picture shows when slave moves from -60 degree to 60 degree. Only -30-25 degree is right.

    thank you.

    Yanpo, li

  • Hi Yanpo,

    Can you share your results with us please? It could also be great if you had some pictures showing your test set-up.

    Thanks and regards,