zephyr/samples/bluetooth/direction_finding_connectionless_tx
Piotr Pryga 8f56d4ee19 samples: Bluetooth: df: Remove dep on CTLR Kconf in sample sources
Direction finding samples had dependency on KConfig option defined
in Controller. That caused a problem for split builds where
an application and host are not part of the same binary as
controller. The code dependend on the Kconfig option
was always disabled.

To fix that issue new Kconfig options were introduced to
Host. The dependency is removed. Unwanted features may stil be
disabled and samples binaier will be smaller.

The commit aligns all direction finding samples code.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
2022-02-03 14:57:17 +01:00
..
boards samples: Bluetooth: df: Enable TX of mutliple CTEs in a per adv event 2021-08-26 18:25:35 -04:00
src samples: Bluetooth: df: Remove dep on CTLR Kconf in sample sources 2022-02-03 14:57:17 +01:00
CMakeLists.txt cmake: increase minimal required version to 3.20.0 2021-08-20 09:47:34 +02:00
overlay-aoa.conf
prj.conf samples: Bluetooth: df: Remove dep on CTLR Kconf in sample sources 2022-02-03 14:57:17 +01:00
README.rst doc: samples: bluetooth: DFE fixes 2021-08-17 17:52:43 -04:00
sample.yaml

.. _bluetooth_direction_finding_connectionless_tx:

Bluetooth: Direction Finding Periodic Advertising Beacon
########################################################

Overview
********

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

Requirements
************

* Nordic nRF SoC based board with Direction Finding support (example boards:
  :ref:`nrf52833dk_nrf52833`, :ref:`nrf5340dk_nrf5340`)
* Antenna matrix for AoD (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 (AoA) and Angle of
Departure (AoD) mode.

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

.. zephyr-app-commands::
   :zephyr-app: samples/bluetooth/direction_finding_connectionless_tx
   :host-os: unix
   :board: nrf52833dk_nrf52833
   :gen-args: -DOVERLAY_CONFIG=overlay-aoa.conf
   :goals: build flash
   :compact:

To run the application on nRF5340DK, a Bluetooth controller application must
also run on the network core. The :zephyr_file:`samples/bluetooth/hci_rpmsg`
sample application may be used. To build this sample with direction finding
support enabled:

* Copy
  :zephyr_file:`samples/bluetooth/direction_finding_connectionless_tx/boards/nrf52833dk_nrf52833.overlay`
  to a new file,
  :file:`samples/bluetooth/hci_rpmsg/boards/nrf5340dk_nrf5340_cpunet.overlay`.
* Copy
  :zephyr_file:`samples/bluetooth/direction_finding_connectionless_tx/boards/nrf52833dk_nrf52833.conf`
  to a new file,
  :file:`samples/bluetooth/hci_rpmsg/boards/nrf5340dk_nrf5340_cpunet.conf`. Add
  the line ``CONFIG_BT_EXT_ADV=y`` to enable extended size of
  :kconfig:`CONFIG_BT_BUF_CMD_TX_SIZE` to support the LE Set Extended
  Advertising Data command.

Antenna matrix configuration
****************************

To use this sample with Angle of Departure enabled on Nordic SoCs, additional
configuration must be provided via :ref:`devicetree <dt-guide>` to enable
control of the antenna array, as well as via the ``ant_patterns`` array in the
source code.

An example devicetree overlay is in
:zephyr_file:`samples/bluetooth/direction_finding_connectionless_tx/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
:dtcompatible:`nordic,nrf-radio` for documentation on the properties used in
this overlay. See :ref:`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 :ref:`bluetooth-hci-rpmsg-sample` is used as
network core application, the antenna matrix configuration should be stored in
the file
:file:`samples/bluetooth/hci_rpmsg/boards/nrf5340dk_nrf5340_cpunet.overlay`
instead.

In addition to the devicetree configuration, to successfully use the Direction
Finding locator when the AoA mode is enabled, also update the antenna patterns
in the :cpp:var:`ant_patterns` array in
:zephyr_file:`samples/bluetooth/direction_finding_connectionless_tx/src/main.c`.