zephyr/samples/bluetooth/hci_pwr_ctrl
Johan Hedberg 9b19a90daa samples: bluetooth: Add build asserts for VS-using samples
The README files of these samples already indicate that they use the
Zephyr-specific HCI vendor extensions, but this may still not be clear
enough to some users, as evidenced in #81779. Add build asserts to make
sure the samples only build when Zephyr VS extensions have been enabled.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2024-11-27 10:30:32 +01:00
..
boards samples: bluetooth: hci_pwr_ctrl: Add devicetree overlays for qemu 2024-11-27 10:30:32 +01:00
src samples: bluetooth: Add build asserts for VS-using samples 2024-11-27 10:30:32 +01:00
CMakeLists.txt
prj.conf
README.rst doc: samples: Adopt code-sample-category across tree 2024-09-23 12:00:00 +02:00
sample.yaml hwmv2: Introduce Hardware model version 2 and convert devices 2024-03-02 16:56:33 -05:00

.. zephyr:code-sample:: bluetooth_hci_pwr_ctrl
   :name: HCI Power Control
   :relevant-api: bt_hrs bluetooth

   Dynamically control the Tx power of a Bluetooth LE Controller using HCI vendor-specific commands.

Overview
********

This sample application demonstrates the dynamic Tx power control over the LL
of the Bluetooth LE controller via Zephyr HCI VS commands. The application implements a
peripheral advertising with varying Tx power. The initial advertiser TX power
for the first 5s of the application is the Kconfig set default TX power. Then,
the TX power variation of the advertiser is a repeatedly descending staircase
pattern ranging from -4 dBm to -30 dBm where the Tx power levels decrease every
5s.

Upon successful connection, the connection RSSI strength is being monitored and
the Tx power of the peripheral device is modulated per connection accordingly
such that energy is being saved depending on how powerful the RSSI of the
connection is. The peripheral implements a simple GATT profile exposing the
HR service notifying connected centrals about a dummy HR each 2s.

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

* BlueZ running on the host, or
* A board with Bluetooth LE support
* A central device & monitor (e.g. nRF Connect) to check the RSSI values
  obtained from the peripheral.

Building and Running
********************

This sample can be found under :zephyr_file:`samples/bluetooth/hci_pwr_ctrl`
in the Zephyr tree.

See :zephyr:code-sample-category:`bluetooth` samples for details.