If you need urgent consulting help click here

Bluetooth: Direction Finding Periodic Advertising Locator

Overview

A simple application demonstrating the BLE Direction Finding CTE Locator functionality by receiving and sampling sending Constant Tone Extension with periodic advertising PDUs.

Requirements

  • Nordic nRF SoC based board with Direction Finding support (example boards: nRF52833 DK, nRF5340 DK)

  • Antenna matrix for AoA (optional)

Check your SoC’s product specification for Direction Finding support if you are unsure.

Building and Running

By default the application supports Angle of Arrival and Angle of Departure mode.

To use Angle of Departure mode only, build this application as follows, changing nrf52833dk_nrf52833 as needed for your board:

west build -b nrf52833dk_nrf52833 samples/bluetooth/direction_finding_connectionless_rx -- -DOVERLAY_CONFIG=overlay-aod.conf
west flash

To run the application on nRF5340DK, a Bluetooth controller application must also run on the network core. The Bluetooth: HCI RPMsg sample application may be used. To build this sample with direction finding support enabled:

Antenna matrix configuration

To use this sample with Angle of Departure enabled on Nordic SoCs, additional configuration must be provided via devicetree to enable control of the antenna array.

An example devicetree overlay is in samples/bluetooth/direction_finding_connectionless_rx/boards/nrf52833dk_nrf52833.overlay. You can customize this overlay when building for the same board, or create your own board-specific overlay in the same directory for a different board. See nordic,nrf-radio for documentation on the properties used in this overlay. See Set devicetree overlays for information on setting up and using overlays.

Note that antenna matrix configuration for the nRF5340 SoC is part of the network core application. When Bluetooth: HCI RPMsg is used as the network core application, the antenna matrix configuration should be stored in the file samples/bluetooth/hci_rpmsg/boards/nrf5340dk_nrf5340_cpunet.overlay instead.