Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Multiple TXs (clients) in direciton findin configuration

I am currently working on AoA direction finding solutons, and I have successfully run the demo direction_finding_connectionless_rx and direction_finding_connectionless_tx in two nrf52833 boards respectively to see the IQ values and worked out the basic direction finding algorithm. 

Next, I need to implement the direction_finding_connectionless_tx in another nrf52833 board, which means now I get two TX beacon and one RX Receiver. But when I turn the two TX up, however, in the terminal windows (connecting to receiver nrf52833 board) I could not see IQ values from two TX side simultaneously. It just continuously displays the IQ value from just one beacon.

notes: the both TX beacons are working in direction_finding_connectionless_tx alone well.

What configurations do I need to take in direction_finding_connectionless_rx to receive two or more CTE and get IQ values in the mean time?  Please help me, thank you !

  • Hi

    We have not yet implemented a way for the locator to scan and collect samples of multiple beacons simultaneously, as it currently only detects one periodic advertising, syncs to that one and starts collecting the IQ samples from the CTE.

    You'll need a way to differentiate the two beacons in the locator device and handle them separately as the locator will just mix them up otherwise. You'll need to schedule them so that it first locates the first one and collects its IQ samples before scanning for the next one.

    Best regards,

    Simon

  • Thanks for your answers! I am just considering scanning the different beacons at different time slot.

  • That sounds like a good approach. Let me know if you have any further questions!

    Best regards,

    Simon

  • Hi Simonr,

    These days I have tried to switch between different beacons to receive multiple beacons' IQ values. What my solution is to create a variable beacon_sample_count to record and count number of CTE with IQ values received. When beacon_sample_count reaches the number of samples to be received, I just add the code k_sem_give(&sem_per_sync_lost); to cte_recv_cb hoping to terminate the sync and go to next scan to receive other beacons' IQ values. 

    the code is like this:

    However, when I run the code in the board and print the log information in the terminal windows. At the first time, it do jump out the code err = k_sem_take(&sem_per_sync_lost, K_FOREVER);  in the main(), but it continues to go into the cte_recv_cb. 

    the log information is like this:

    To sum up, I just want to terminate the sync between the locator and beacons in the locator side purposely and receive CTE from another beacons, even the beacon connected is still working. Thanks a lot!

  • Hi

    To be clear, are you trying to disconnect and remove synchronization before the IQ sampling is done? You will need to do a full sampling period before moving to the next beacon. What I would suggest is to reduce the number of samples taken in each sampling period instead of trying to stop it in the middle of sampling.

    Best regards,

    Simon

Related