zephyr/samples/bluetooth/bap_broadcast_assistant
Emil Gydesen 9d4cc4b49b Bluetooth: BAP: Add a set of suggested intervals to use with BAP
Add a selection of interval values that are suitable for BAP,
which will allow better coexistence between ISO and ACL,
for both broadcast and unicast. Some of these are defined
by the BAP spec, and some are defined by Zephyr, since they
do have a suggested value from BAP.

Samples and tests have been updated to use these new values.
Peripheral samples have also been updated with
CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS so that the connection
parameters from the centrals aren't updated to something else
shortly after.

The shell has also been updated to use the LE Audio (BAP) values
if audio is enabled, and the audio.conf file has disabled automatic
updating of the connection parameters as the peripheral, as we rarely
(if ever) want to do that.

Due to the connection interval change, CI hit an issue
with test_bass_broadcast_code in test_main_client_sync, where
the reading of the long receive state did not finish before we
attempted to do another procedure, so the function was updated to have
a retry.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-03-11 08:58:51 +01:00
..
src Bluetooth: BAP: Add a set of suggested intervals to use with BAP 2025-03-11 08:58:51 +01:00
CMakeLists.txt
Kconfig
prj.conf Bluetooth: Host: Remove HCI ECC emulation 2025-01-23 10:14:46 +01:00
README.rst samples: Bluetooth: Audio: Add/fix API includes and references 2024-09-24 09:21:40 -04:00
sample.yaml

.. zephyr:code-sample:: bluetooth_bap_broadcast_assistant
   :name: Basic Audio Profile (BAP) Broadcast Audio Assistant
   :relevant-api: bluetooth bt_audio bt_bap bt_conn

   Use BAP Broadcast Assistant functionality.

Overview
********

Application demonstrating the BAP Broadcast Assistant functionality.

The sample will automatically try to connect to a device in the BAP Scan Delegator
role (advertising support for the Broadcast Audio Scan Service (BASS)).
It will then search for a broadcast source and (if found) add the broadcast ID to
the BAP Scan Delegator.

Practical use of this sample requires a sink (e.g. the BAP Broadcast Audio Sink sample or
a set of BAP Broadcast capable earbuds) and a source (e.g. the BAP Broadcast Audio
Source sample).

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

Check the :zephyr:code-sample-category:`bluetooth` samples for general information.

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

* BlueZ running on the host, or
* A board with Bluetooth Low Energy 5.2 support
* Broadcast Audio Source and Sink devices

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

The application will act as a broadcast assistant with optionally preconfigured
filtering of broadcast sink and broadcast source names. By default, the application will
search for and connect to the first broadcast audio sink found (advertising PACS and
BASS UUIDs) and then search for and select the first broadcast audio source found
(advertising a broadcast ID).

Filter these by modifying the following configs:

``CONFIG_SELECT_SINK_NAME``: Substring of BT name of the sink.

and

``CONFIG_SELECT_SOURCE_NAME``: Substring of BT name or broadcast name of the source.

Building for an nrf52840dk
--------------------------

.. zephyr-app-commands::
   :zephyr-app: samples/bluetooth/bap_broadcast_assistant/
   :board: nrf52840dk/nrf52840
   :goals: build