zephyr/samples/bluetooth/bap_unicast_client
Emil Gydesen 778a9afae3 tests: Bluetooth: Audio: Remove uses of K_FOREVER in syswg for TX
Several tests were using K_FOREVER when allocating the
buffer for TX in the system workqueue, which is illegal behavior.

The solution chosen was to create a TX thread to handle TX,
similar to the solution used in the audio shell and some
sample applications.

This way we can continue to use K_FOREVER when allocting buffers
and it will always be done in a round-robin fashion while
TXing as much as possible, by always enqueuing all the buffers
with mock data.

Since this works for all streams (both broadcast and unicast),
it was obvious to use the same implementation for all tests,
and thus cleaning up the tests a bit and more them more similar.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2024-12-10 16:23:10 +01:00
..
boards bt: use PSA for HCI ECC and rename BT_TINYCRYPT_ECC 2024-11-27 16:40:47 -05:00
src tests: Bluetooth: Audio: Remove uses of K_FOREVER in syswg for TX 2024-12-10 16:23:10 +01:00
CMakeLists.txt samples: Bluetooth: Refactor TX for unicast audio client 2024-06-11 17:35:30 +03:00
Kconfig.sysbuild
overlay-bt_ll_sw_split.conf
prj.conf Bluetooth: Audio: depends on GATT instead of select 2024-11-21 09:19:47 +01:00
README.rst doc: Use EXTRA_CONF_FILE in .rst/.md files 2024-10-21 12:34:38 +02:00
sample.yaml samples: sample.yaml: replace deprecated OVERLAY_CONFIG w\ EXTRA_CONF_FILE 2024-10-24 14:06:54 +02:00
sysbuild.cmake

.. zephyr:code-sample:: bluetooth_bap_unicast_client
   :name: Basic Audio Profile (BAP) Unicast Audio Client
   :relevant-api: bluetooth bt_audio bt_bap bt_conn

   Use BAP Unicast Client functionality.

Overview
********

Application demonstrating the BAP Unicast Client functionality. Scans for and
connects to a BAP Unicast Server and establishes an audio stream.

This sample can be found under
:zephyr_file:`samples/bluetooth/bap_unicast_client` 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

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

When building targeting an nrf52 series board with the Zephyr Bluetooth Controller,
use ``-DEXTRA_CONF_FILE=overlay-bt_ll_sw_split.conf`` to enable the required ISO
feature support.

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

.. zephyr-app-commands::
   :zephyr-app: samples/bluetooth/bap_unicast_client/
   :board: nrf52840dk/nrf52840
   :goals: build
   :gen-args: -DEXTRA_CONF_FILE=overlay-bt_ll_sw_split.conf

Building for an nrf5340dk
-------------------------

You can build both the application core image and an appropriate controller image for the network
core with:

.. zephyr-app-commands::
   :zephyr-app: samples/bluetooth/bap_unicast_client/
   :board: nrf5340dk/nrf5340/cpuapp
   :goals: build
   :west-args: --sysbuild

If you prefer to only build the application core image, you can do so by doing instead:

.. zephyr-app-commands::
   :zephyr-app: samples/bluetooth/bap_unicast_server/
   :board: nrf5340dk/nrf5340/cpuapp
   :goals: build

In that case you can pair this application core image with the
:zephyr:code-sample:`bluetooth_hci_ipc` sample
:zephyr_file:`samples/bluetooth/hci_ipc/nrf5340_cpunet_iso-bt_ll_sw_split.conf` configuration.

Building for a simulated nrf52_bsim
-----------------------------------

Similarly to how you would for real HW, you can do:

.. zephyr-app-commands::
   :zephyr-app: samples/bluetooth/bap_unicast_client/
   :board: nrf52_bsim
   :goals: build
   :gen-args: -DEXTRA_CONF_FILE=overlay-bt_ll_sw_split.conf

Note this will produce a Linux executable in :file:`./build/zephyr/zephyr.exe`.
For more information, check :ref:`this board documentation <nrf52_bsim>`.

Building for a simulated nrf5340bsim
------------------------------------

.. zephyr-app-commands::
   :zephyr-app: samples/bluetooth/bap_unicast_client/
   :board: nrf5340bsim/nrf5340/cpuapp
   :goals: build
   :west-args: --sysbuild