Scan Delegator functionality in audio headset application

The scan delegator functionality has been implemented in Zephyr and the samples\bluetooth\broadcast_audio_sink application uses it. A broadcast Assistant than therefore scan for broadcast sources on behalf on the scan delegator there.

I am using the nrf5340 audio development kits.

I am now trying to integrate this Scan Delegator functionality into the nrf\applications\nrf5340_audio headset application. I am using the latest nrf version 2.4.0. The APIs for the Scan Delegator are there, but it is not possible for me to build this due to the Kconfig warnings as below. Any help with this would be much appreciated. Thanks in advance. 

Invoking build step
Net core uses precompiled hex
Run: west build C:\ble-audio\applications\nrf5340_audio -b nrf5340_audio_dk_nrf5340_cpuapp -d C:\ble-audio\applications\nrf5340_audio\build\dev_headset\build_debug
ninja: no work to do.
Run: west build C:\ble-audio\applications\nrf5340_audio -b nrf5340_audio_dk_nrf5340_cpuapp -d C:\ble-audio\applications\nrf5340_audio\build\dev_gateway\build_debug
-- west build: generating a build system
Loading Zephyr default modules (Zephyr base (cached)).
-- Application: C:/ble-audio/applications/nrf5340_audio
-- CMake version: 3.20.5
-- Cache files will be written to: C:/ncs/v2.3.0/zephyr/.cache
-- Zephyr version: 3.3.99 (C:/ncs/v2.3.0/zephyr)
-- Found west (found suitable version "0.14.0", minimum required is "0.7.1")
-- Board: nrf5340_audio_dk_nrf5340_cpuapp
-- Found host-tools: zephyr 0.15.2 (C:/ncs/toolchains/v2.3.0/opt/zephyr-sdk)
-- Found toolchain: zephyr 0.15.2 (C:/ncs/toolchains/v2.3.0/opt/zephyr-sdk)
-- Found BOARD.dts: C:/ncs/v2.3.0/zephyr/boards/arm/nrf5340_audio_dk_nrf5340/nrf5340_audio_dk_nrf5340_cpuapp.dts
-- Found devicetree overlay: C:/ble-audio/applications/nrf5340_audio/app.overlay
-- Generated zephyr.dts: C:/ble-audio/applications/nrf5340_audio/build/dev_gateway/build_debug/zephyr/zephyr.dts
-- Generated devicetree_generated.h: C:/ble-audio/applications/nrf5340_audio/build/dev_gateway/build_debug/zephyr/include/generated/devicetree_generated.h
-- Including generated dts.cmake file: C:/ble-audio/applications/nrf5340_audio/build/dev_gateway/build_debug/zephyr/dts.cmake

warning: BT_PER_ADV_SYNC_MAX (defined at C:/ncs/v2.3.0/zephyr/subsys/bluetooth/Kconfig.adv:73,
subsys/bluetooth\Kconfig.adv:73) was assigned the value '4' but got the value ''. Check these
unsatisfied dependencies: ((BT_PER_ADV_SYNC && BT_EXT_ADV && BT_RPC_STACK) || (BT_PER_ADV_SYNC &&
BT_EXT_ADV && BT_HCI && BT)) (=n). See
http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_BT_PER_ADV_SYNC_MAX and/or look up
BT_PER_ADV_SYNC_MAX in the menuconfig/guiconfig interface. The Application Development Primer,
Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be
helpful too.


warning: BT_BAP_BROADCAST_SNK_COUNT (defined at
C:/ncs/v2.3.0/zephyr/subsys/bluetooth/host\../audio\Kconfig.bap:183,
subsys/bluetooth\host\../audio\Kconfig.bap:183) was assigned the value '4' but got the value ''.
Check these unsatisfied dependencies: ((BT_BAP_BROADCAST_SINK && BT_AUDIO && BT_HCI_HOST &&
BT_RPC_STACK) || (BT_BAP_BROADCAST_SINK && BT_AUDIO && BT_HCI_HOST && BT_HParsing C:/ble-audio/applications/nrf5340_audio/Kconfig
Loaded configuration 'C:/ncs/v2.3.0/zephyr/boards/arm/nrf5340_audio_dk_nrf5340/nrf5340_audio_dk_nrf5340_cpuapp_defconfig'
Merged configuration 'C:/ble-audio/applications/nrf5340_audio/prj.conf'
Merged configuration 'C:/ble-audio/applications/nrf5340_audio/build/dev_gateway/build_debug/zephyr/misc/generated/extra_kconfig_options.conf'
CI && BT)) (=n). See
http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_BT_BAP_BROADCAST_SNK_COUNT and/or look up
BT_BAP_BROADCAST_SNK_COUNT in the menuconfig/guiconfig interface. The Application Development
Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual
might be helpful too.


warning: USB_CDC_ACM (defined at subsys/usb/device/class/Kconfig.cdc:6) was assigned the value 'y'
but got the value 'n'. Check these unsatisfied dependencies: DT_HAS_ZEPHYR_CDC_ACM_UART_ENABLED
(=n). See http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_USB_CDC_ACM and/or look up
USB_CDC_ACM in the menuconfig/guiconfig interface. The Application Development Primer, Setting
Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be helpful
too.


warning: Experimental symbol NRF5340_AUDIO is enabled.


warning: Experimental symbol BT_LL_ACS_NRF53 is enabled.


warning: Experimental symbol BT_ISO_BROADCASTER is enabled.


warning: Experimental symbol BT_AUDIO is enabled.


warning: Experimental symbol BT_BAP_BROADCAST_SOURCE is enabled.


warning: BT_PER_ADV_SYNC_TRANSFER_RECEIVER (defined at subsys/bluetooth/Kconfig:164) has direct dependencies BT_PER_ADV_SYNC && (!BT_CTLR || BT_CTLR_SYNC_TRANSFER_RECEIVER_SUPPORT) && BT_CONN && BT_HCI && BT with value n, but is currently being y-selected by the following symbols:
 - SCAN_OFFLOAD (defined at C:/ble-audio/applications/nrf5340_audio/Kconfig:97), with value y, direct dependencies y (value: y), and select condition !BT_CTLR || BT_CTLR_SYNC_TRANSFER_RECEIVER_SUPPORT (value: y)

error: Aborting due to Kconfig warnings

CMake Error at C:/ncs/v2.3.0/zephyr/cmake/modules/kconfig.cmake:339 (message):
  command failed with return code: 1
Call Stack (most recent call first):
  C:/ncs/v2.3.0/nrf/cmake/modules/kconfig.cmake:29 (include)
  C:/ncs/v2.3.0/zephyr/cmake/modules/zephyr_default.cmake:115 (include)
  C:/ncs/v2.3.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
  C:/ncs/v2.3.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:97 (include_boilerplate)
  CMakeLists.txt:46 (find_package)


-- Configuring incomplete, errors occurred!
FATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\v2.3.0\opt\bin\cmake.EXE' -DWEST_PYTHON=C:/ncs/toolchains/v2.3.0/opt/bin/python.exe '-BC:\ble-audio\applications\nrf5340_audio\build\dev_gateway\build_debug' -GNinja '-SC:\ble-audio\applications\nrf5340_audio'
Traceback (most recent call last):
  File "buildprog.py", line 404, in <module>
    __main()
  File "buildprog.py", line 387, in __main
    __build_module(build_cfg, options)
  File "buildprog.py", line 150, in __build_module
    raise Exception("cmake error: " + str(ret_val))
Exception: cmake error: 1

Parents
  • Hello, 

    The Zephyr Project » Bluetooth: Broadcast Audio Sink sample does have support for the nRF5340 Audio DK. Looking at the sample.yaml file it does have support for nrf5340dk_nrf5340_cpuapp. I tried building the project for this board without issues. Note that this does not include the peripherals as the Audio DK. 

    The sample is not made by Nordic, but by the Zephyr community. Due to summer vacation period closing in, It may be quicker to get answers through the Zephyr community on Discord.

    Kind regards,

    Øyvind

  • Hi  Thanks for your reply. The problem is not about getting the Zephyr Project » Bluetooth: Broadcast Audio Sink application running by itself on the nrf5340 audio dev kit. This works fine, and with the new Scan Delegator functionality. 

    I am trying to integrate this new Scan Delegator functionality from that Zephyr Broadcast Audio Sink application into the Nordic audio application nrf\applications\nrf5340_audio : https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/applications/nrf5340_audio/README.html .

    I have the Scan Delegator functionality added, the Zephyr APIs are there, but unable to build due to the Kconfig issues as posted. 

  • Chris, our audio team informs me that the scan delegator feature is ready in the Zephyr host, but Nordic Semiconductor  hasn't deployed it to any application at the moment. No timeline for when this will happen I'm afraid.

    Further, the developer writes:

    The customer can make a trial to port the scan delegator feature to application by self, I do have a prototype branch which provides the very basic feature (which doesn't support encryption at this moment, and only for demo purpose). If customer just would like to make a trial and accept there's no further support on this, then I can rebase the example and share in next week.

    Kind regards,
    Øyvind

  • Thank you, Øyvind. What exactly do you mean by "Zephyr host"?

    That prototype branch your developer has does sound helpful. Even a basic, early example of this would be useful for me.

    Thanks,
    Chris

  • Hi Øyvind,

    Could you let your team member share the scan delegator feature example? 

    We could implement ourselves version according to your code.

    The customer can make a trial to port the scan delegator feature to application by self, I do have a prototype branch which provides the very basic feature (which doesn't support encryption at this moment, and only for demo purpose). If customer just would like to make a trial and accept there's no further support on this, then I can rebase the example and share in next week.

     

    Best Regards,

    Tommy

     

  • Hello Chris and Tommy, 

    cwhit said:
    What exactly do you mean by "Zephyr host"?

    This means that the sample is based on the Zephyr Bluetooth stack, while our official nRF Connect SDK bluetooth samples are/will usually be based on our Softdevice Controller.

    Tommy_Li said:
    Could you let your team member share the scan delegator feature example? 

    The following Github branch is for demo purposes only. This is not an official Nordic Semiconductor branch, and we will not be able to provide any official support. The branch is intended as a starting point from one of our developers while waiting for our official support in the nRF Connect SDK.

    https://github.com/rick1082/sdk-nrf/tree/scan_delegator_demo

    After programming the headset with default settings from the project branch, the headset will advertise "BIS_HEADSET". 

    Let me know if there are any questions and I will forward to our developers.

    Kind regards,
    Øyvind

  • Hi Øyvind,

    Thank you so much for your help.

    We will study this exmple to understand the working mechanism of the scan delegator.

    Best Regards.

    Tommy.

Reply Children
Related