Hi, I am trying to use the nRF52833 development board for Bluetooth direction finding. I am having some problems, and I would appreciate it if I could get your help.
My transmitter and receiver are both nRF52833 and I have AoA only mode enabled. I am using this example. I configured a three-antenna receiver array and modified the overlay and other files as instructed. Both the transmitter and receiver are on my desktop, and they are very close together, about 30 cm apart. At direction_finding_connectionless_rx/src/main.c:137, there is a struct called bt_df_per_adv_sync_iq_samples_report that has an internal pointer to IQ samples. Based on these clues, I have done some experiments and obtained IQ, but I am currently experiencing a problem.
In the experiments, the RSSI is usually between -45 and -60, the values of I and Q vary within ±10, and I/Q is an integer. The problem is that such accuracy has some roughness in finding the exact AoA. In the definition of the bt_hci_le_iq_sample struct (nRF_Connect_SDK/v1.7.1/zephyr/include/bluetooth/hci.h:2443), I and Q are integers of int 8, but it looks like the range of int 8 is not sufficiently reached at the moment. I'm guessing that I and Q may have gone through some preprocessing, but I'm not sure if that's the case. My question is how to improve the precision of I and Q at the usual signal strength. For example, make I and Q floating-point, or in the case of integers, make the variation more pronounced (up to a hundred or more).
Thank you for reading this post, and I look forward to getting your help.