samples: Bluetooth: Broadcast audio source USB headset on nRF52 Series

Broadcast audio source USB headset on nRF52 Series with USB
support.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
Vinayak Kariappa Chettimada 2023-12-01 15:49:40 +01:00 committed by Carles Cufí
commit d8969904ce
9 changed files with 49 additions and 8 deletions

View file

@ -24,7 +24,8 @@ config ENABLE_LC3
bool "Enable the LC3 codec" bool "Enable the LC3 codec"
# By default let's enable it in the platforms we know are capable of supporting it # By default let's enable it in the platforms we know are capable of supporting it
default y default y
depends on (ARCH_POSIX || SOC_NRF5340_CPUAPP) depends on CPU_HAS_FPU && \
(ARCH_POSIX || SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF5340_CPUAPP)
select LIBLC3 select LIBLC3
select FPU select FPU

View file

@ -0,0 +1,5 @@
CONFIG_MAIN_STACK_SIZE=4096
# Use USB Audio as input
CONFIG_USE_USB_AUDIO_INPUT=y
CONFIG_USB_DEVICE_PRODUCT="Zephyr Broadcast Source"

View file

@ -0,0 +1,15 @@
zephyr_udc0: &usbd {
compatible = "nordic,nrf-usbd";
status = "okay";
hs_0: hs_0 {
compatible = "usb-audio-hs";
mic-feature-mute;
mic-channel-l;
mic-channel-r;
hp-feature-mute;
hp-channel-l;
hp-channel-r;
};
};

View file

@ -0,0 +1,5 @@
CONFIG_MAIN_STACK_SIZE=4096
# Use USB Audio as input
CONFIG_USE_USB_AUDIO_INPUT=y
CONFIG_USB_DEVICE_PRODUCT="Zephyr Broadcast Source"

View file

@ -0,0 +1,15 @@
zephyr_udc0: &usbd {
compatible = "nordic,nrf-usbd";
status = "okay";
hs_0: hs_0 {
compatible = "usb-audio-hs";
mic-feature-mute;
mic-channel-l;
mic-channel-r;
hp-feature-mute;
hp-channel-l;
hp-channel-r;
};
};

View file

@ -3,6 +3,3 @@ CONFIG_MAIN_STACK_SIZE=4096
# Use USB Audio as input # Use USB Audio as input
CONFIG_USE_USB_AUDIO_INPUT=y CONFIG_USE_USB_AUDIO_INPUT=y
CONFIG_USB_DEVICE_PRODUCT="Zephyr Broadcast Source" CONFIG_USB_DEVICE_PRODUCT="Zephyr Broadcast Source"
# Two streams in one subgroup (stereo)
CONFIG_BT_BAP_BROADCAST_SRC_SUBGROUP_COUNT=1

View file

@ -7,8 +7,8 @@ CONFIG_BT_BAP_BROADCAST_SOURCE=y
CONFIG_BT_ISO_MAX_CHAN=2 CONFIG_BT_ISO_MAX_CHAN=2
CONFIG_BT_BAP_BROADCAST_SRC_STREAM_COUNT=2 CONFIG_BT_BAP_BROADCAST_SRC_STREAM_COUNT=2
CONFIG_BT_BAP_BROADCAST_SRC_SUBGROUP_COUNT=2 # Two streams in one subgroup (stereo)
CONFIG_BT_ISO_TX_BUF_COUNT=4 CONFIG_BT_BAP_BROADCAST_SRC_SUBGROUP_COUNT=1
CONFIG_BT_ISO_TX_MTU=60 CONFIG_BT_ISO_TX_MTU=60

View file

@ -20,8 +20,10 @@ tests:
- nrf52_bsim - nrf52_bsim
- nrf52833dk_nrf52820 - nrf52833dk_nrf52820
- nrf52833dk_nrf52833 - nrf52833dk_nrf52833
- nrf52840dongle_nrf52840
integration_platforms: integration_platforms:
- nrf52_bsim - nrf52_bsim
- nrf52833dk_nrf52833 - nrf52833dk_nrf52833
- nrf52840dongle_nrf52840
extra_args: OVERLAY_CONFIG=overlay-bt_ll_sw_split.conf extra_args: OVERLAY_CONFIG=overlay-bt_ll_sw_split.conf
tags: bluetooth tags: bluetooth

View file

@ -465,10 +465,11 @@ int main(void)
usb_audio_register(hs_dev, &ops); usb_audio_register(hs_dev, &ops);
err = usb_enable(NULL); err = usb_enable(NULL);
if (err) { if (err && err != -EALREADY) {
printk("Failed to enable USB"); printk("Failed to enable USB (%d)", err);
return 0; return 0;
} }
#endif /* defined(CONFIG_USB_DEVICE_AUDIO) */ #endif /* defined(CONFIG_USB_DEVICE_AUDIO) */
k_thread_start(encoder); k_thread_start(encoder);
#endif /* defined(CONFIG_LIBLC3) */ #endif /* defined(CONFIG_LIBLC3) */