This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to reduce the time to reduce the time to establish Periodic sync in direction finding ?

Hi, I am Marcous. 

Currently I am doing multiple beacons (transmitters) in direction finding demos. Since I found that there is no way to simultaneously receive the CTE containing IQ values. I just map the order of transmitters and receive IQ values from different beacons at different slots, for example: [tx0, tx0, tx0, tx0, tx1, tx1, tx1, tx1, tx2, tx2, tx2, tx0, tx0, .....] . This actually works well and enables me to receive iq values to determine direction of multiple beacons. And my question is: how can I reduce the time to create sync? 

When I print the log information in the windows, I found that it takes about over 300 ms to create the sync between rx and tx .

In the tx side, I change the gap between each broadcasting with CTE to 0x0021(41ms). However, the total time(found periodic advertising + establish periodic sync) to switch between beacons is much longer than one CTE interval, which means that if move the antenna array in the rx side, I can not calculate the instant directions of each beacons. How can I reduce this time? Thanks a lot!!!

  • Hey again Marcous!

    This is getting a bit technical. Our expert on direction finding is out of office until the 20th, so I will have to get back to you sometime after that. 

    Best regards,

    Elfving

  • Hi, Elfving,

    Glad to see you again, since the feature of multiple sync is every important in my current project, I am looking forward to your updates!

    Hope the problem would be solved!

  • Hi, Elfving.

    It is already sometime after 20th. Hopefully we will deal with this problem soon!

  • Yes, hopefully we will!

    I've had a talk with the expert about your case, and what you have done should in theory be working. He is planning on taking a closer look.

    Thank you for your patience. I'll get back to you when I have more information.

    Best regards,

    Elfving

  • Hi, Elfving.

    Providing more debug details:

    In the scan.c -> bt_le_per_adv_sync_create -> get_pending_per_adv_sync function, I added some printk cmd to just show the error message. 

    Noting that I add one more bt_le_per_adv_sync_create to create_sync function in main. And the log information is like this:

    I have set the parameter CONFIG_BT_PER_ADV_SYNC_MAX to 3. And the code goes well in the first bt_le_per_adv_sync_create, and does not enter the if judgement. However, in the second bt_le_per_adv_sync_create, it goes wrong with per_adv_sync_pool[0].flag = 536873404 and SYNC_SYNCING = 2

Related