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.

BOOSTXL-AOA: The suitable compensation values about angle and frequency

Part Number: BOOSTXL-AOA

Hi 

I have used BOOSTXL-AOA and LAUNCHXL-CC26X2R1 for AOA feature verification.

Based on TI BLE5 SDK user guide and source code, it can improve AOA performance by angle compensation.

It looks like the fixed value and it can not adjust dynamically from SDK source code.

How to decide the compensation value? Any method or tool to find the suitable value?

Thanks.

  


 
                  
  • Hi,

    I've assigned an expert to comment on this. What SDK version are you using?

    Best Regards,
    Alec

  • Hi,

    The out of the box software provides fixed compensation values in the table pair_A1[]. In addition, some channel compensation values are provided in the table channelOffset_A1[]. Would you require some dynamic values instead of these fixed values?

    The compensation values have been determined in an anechoic chamber by our engineers. These specific values have been chosen in order to have the best results possible for a given fixed angle.

    If you want to do the same, you need to take a few measurements for the angle you want to optimize. The measurements have to be made for all the BLE channels.

    Best regards,

  • Hi Clément,

    Thanks for the reply. 

    So how to decide the specific valve and make sure it is right? 

    • What is the method of determining compensation value? 
    • Is there any tool or equipment that can help it?

    The compensation is must be modified if the antenna re-design. 

    Currently, I tested AOA feature with SDK 4.30.00.54. Thanks.

  • Hi,

    You may want to refer to this thread and this one.

    We do not publicly share the tools we used to determine the compensation values.

    The compensation values depends on the design of the antennas (so they need to be modified if the antenna design is changed)

    Let me know if you need further assistance,

    Best regards,

  • Hi Clément,

    It may be the answer to my questions from RTLS Toolbox. Dose it right in the following steps I think? 

    1. Add the angle compensation in 0 degree. Test in fixed channel and the value is "offset" in the source code
    2. Adjust the slope for all angle compensation Test in fixed channel and the value is "gain" in the source code.
    3. Add the angle compensation in 0 degree.  Reproduce step 1 and test by each channel and the value is "channel offset" in the source code.

    I also have three more questions.

    1. Could I fix the channel for AOA test? 
    2. Could I fix two antenna of array for AOA test?
    3. As you mention, should I contact our TI window for the compensation tool?

    Actually, I have tried it from TI's UI and SDK version is 4.30.00.54.

    I still find the AOA result from all channels even I set one channel only. 

    It also reports RTLS UI ERROR when I set two antennas(0, 1) of array1 for the test. Work normally if test by default(0, 1, 2)

    Thanks.

    The screenshot of RTLS Toolbox :

    The screenshot of RTLS Error:

    The screenshot of two antennas setting:

  • Hi Patrick,

    The steps for angle compensation you have described look correct to me.

    1. Could I fix the channel for AOA test? 
      No there is no easy way to do so.
    2. Could I fix two antenna of array for AOA test?
      Yes, to do so you have to modify the switching sequence. This could be done through the Python script or the GUI.
    3. As you mention, should I contact our TI window for the compensation tool?
      Yes, please don't hesitate to do so. Your local sales teams will evaluate your needs and if relevant and needed connect you with the proper experts. Please note that the tools are not automatically shared.

    On your screenshot, I see an error on the pattern length (which is 3 instead of 2).

    Regards,

  • Hi Clément,

    Thanks for your reply. It is more clear to me.

    As you mention, there is no easy to fix channel for AOA test.

    It looks like the channel should be fixed first when to do angle compensation. Then doing frequency compensation by channel.

    So for channel selection, should I used a compensation tool to calibrate or something modify from the source code/UI?

    Would you have any suggestions or ideas for that? Thanks.

  • Hi Patrick,

    Patrick Chung2 said:
    It looks like the channel should be fixed first when to do angle compensation.

    Not necessarily, you may filter out the results and only keep the results related to one specific channel. 

    Another option could be to set the device in test mode. To do so you have to use the host_test example then interface the device using HCI Tester. The commands to use are HCI_LE_Enhanced_Cte_Transmitter_Test and HCI_LE_Enhanced_Cte_Receiver_Test.

    Best regards,

  • Hi Clément,

    Thanks. It helps me a lot.

    One more question, I have tried to modify pattern length from 3 to 2 and it worked normally in two antenna case. Antenna pattern : (0, 1).

    However, it still pop out the same error in the other case such as (0, 2) or (1, 3) for array 1.

    Any setting I miss if I want to add compensation for each two antenna? Thanks.

  • Hi Patrick,

    I have managed to reproduce the issue and opened an internal ticket.

    I would recommend to use the python scripts rather than the UI to run the tests.

    Please note that you could modify the code running on the rtls_master to only enable two antennas.

    Best regards,

  • Hi Clément,

    I have also tried it in python script. Looks like the same symptom as UI. I still can't be running by two antennas. 

    In the case of two antennas, it only worked in (0,1) but did't work in (1,2) or (0,2). I also got a poor AOA result in the (0,1) case.

    I not sure whether it is the bug of SDK or not even through UI and python script.

    Thanks.

    Fail in two antennas:

    Pass in three antennas:

  • Hi Patrick,

    The issue is due to a limitation of our implementation (due to the algorithms used to compute the angle). If your are using AOA_MODE_ANGLE (as done in the UI and in the python code you have shared), you cannot change the antenna pattern field. It must be 0,1,2 for antenna array 1 or 3,4,5 for antenna array 2.

    In your case, you need to use the RAW mode and do the angle calculation out of the tools provided.

    An other option is to modify the code running on the device in order to allow the algorithm to compute an angle based on only two antennas.

    Best regards,

  • Hi Clément,

    Understand! Thanks for your help.

    In your case, you need to use the RAW mode and do the angle calculation out of the tools provided.

    Is it the compensation tool from your previous reply?

    In RAW mode, it would be gray out in the UI setting. I think I can modify it by python script, right?

    Thanks.

  • Hi,

    Patrick Chung2 said:
    In RAW mode, it would be gray out in the UI setting. I think I can modify it by python script, right?

    Yes correct.

    In RAW mode, the device will give you I/Q data, not angles. In order to do the compensation, you need to apply your algorithm to the RAW data collected by the python script.
    (By "tools" I referred to the python scripts provided within the SDK)

    Regards,

  • Hi Clément,

    It is very clear for your help.

    Let me summarize our discussion about my question(method of angle and frequency compensation) from now on.

    Please let me know if I am wrong.

    1. We have to modify the offset and gain for the angle compensation. In the meanwhile, the channel offset also must be modified. 
      1. We have to choose each two antennas of the array to get suitable offset and gain. Then it should be doing for all antennas of the array.
        • In BOOSTXL-AOA, it must be done for each antenna (0,1), (0,2), and (1,2) to get a full compensation value.
      2. We can modify the channel offset by the filter we add. Do not need a fixed specific channel when doing comsensation.

    2. For angle compensation, there is a limitation to set two antennas case by the current SDK. It includes UI and python script. 
      1. We can modify the python script in RAW mode and add our algorithm to allow each two antennas case for angle compensation.

    3. We can also get help for angle compensation by a specific tool.
      1. It would be to contact our TI window to get this tool.

    Thanks.

  • Hi Patrick,

    Good summary :)

    Let us know if you need further assistance.

    Kind regards,