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

Although the AoA locator has established synchronization with multiple beacons, only IQ data of one beacon can be received

Hi,

I'm experimenting with the AoA locator receives IQ data on nRF52833 in ncs1.7.1. It worked well when the locator only received IQ data from one beacon. But when multiple beacons with periodic advertising around the locator, it successfully established synchronization with multiple beacons, but only received IQ data from one. 

The sample "nrf\samples\bluetooth\direction_finding_connectionless_rx" could only get IQ data from one, so I rewrote the code of the locator. The following is the implementation of the function cte_report_cb:

static void cte_recv_cb(struct bt_le_per_adv_sync *sync,
			struct bt_df_per_adv_sync_iq_samples_report const *report)
{
	
	char le_addr[BT_ADDR_LE_STR_LEN];
	struct bt_le_per_adv_sync_info info;
	bt_le_per_adv_sync_get_info(sync, &info);

	bt_addr_le_to_str(&info.addr, le_addr, sizeof(le_addr));

	printk("CTE[%u]: mac: %s, samples count %d, cte type %s, slot durations: %uus, "
	       "packet status %s, RSSI %i\n",
	       bt_le_per_adv_sync_get_index(sync), le_addr, report->sample_count,
	       cte_type2str(report->cte_type), report->slot_durations,
	       packet_status2str(report->packet_status), report->rssi);
}

The parameter "struct bt_le_per_adv_sync *sync" always was the first synchronization instance, but the second parameter "struct bt_df_per_adv_sync_iq_samples_report const *report" was corresponding information. The following picture show the detail log.

After the locator established synchronization with the two tags and started cte sampling, their synchronization interval was same, 2400ms, RSSI of one beacon was -33, and another one was about -65, but the sync handle always was 0 when controller reported cte received event.

Parents Reply Children
No Data
Related