Here is the prj.conf
# # Copyright (c) 2022 Nordic Semiconductor ASA # # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause # # nRF5340 Audio CONFIG_NRF5340_AUDIO=y # Custom config CONFIG_AUDIO_SOURCE_I2S=y CONFIG_TRANSPORT_BIS=y CONFIG_FIFO_FRAME_SPLIT_NUM=10 CONFIG_FIFO_TX_FRAME_COUNT=6 CONFIG_FIFO_RX_FRAME_COUNT=1 # minimum bitrate CONFIG_LC3_BITRATE=32000 CONFIG_BT_AUDIO_BROADCAST_16_2_1=y # configuration ok, for 4 streams #CONFIG_LC3_BITRATE=48000 #CONFIG_BT_AUDIO_BROADCAST_24_2_1=y #doesn't work for 4 channels #CONFIG_LC3_BITRATE=96000 CONFIG_AUDIO_SAMPLE_RATE_16000_HZ=y CONFIG_AUDIO_BIT_DEPTH_16=y CONFIG_BT_AUDIO_BROADCAST_SRC_STREAM_COUNT=6 CONFIG_BT_AUDIO_BROADCAST_SNK_STREAM_COUNT=6 CONFIG_BT_ISO_MAX_CHAN=6 CONFIG_BT_ISO_TX_BUF_COUNT=6 CONFIG_BT_ISO_TX_FRAG_COUNT=6 CONFIG_BT_EXT_ADV_MAX_ADV_SET=6 CONFIG_BT_ISO_TX_MTU=500 CONFIG_BT_ISO_MAX_BIG=2 # Bluetooth buffer configuration # default 27 CONFIG_BT_BUF_ACL_TX_SIZE=83 #default 3 CONFIG_BT_BUF_ACL_TX_COUNT=6 #default 68 CONFIG_BT_BUF_EVT_RX_SIZE=255 #default 58 CONFIG_BT_BUF_EVT_DISCARDABLE_SIZE=255 #default 3 CONFIG_BT_BUF_EVT_DISCARDABLE_COUNT=10 #default 255 CONFIG_BT_BUF_CMD_TX_SIZE=255 #default 10 CONFIG_BT_BUF_CMD_TX_COUNT=20 CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=??? #default n CONFIG_BT_HCI_TX_STACK_SIZE_WITH_PROMPT=y #default 1024 CONFIG_BT_HCI_TX_STACK_SIZE=2048 CONFIG_BT_AUDIO_BROADCAST_SRC_COUNT=2 #CONFIG_BT_BUF_ACL_ #CONFIG_BT_BUF_ACL_ CONFIG_BT_LIM_ADV_TIMEOUT=120 CONFIG_LC3_ENC_CHAN_MAX=6 CONFIG_ENCODER_STACK_SIZE=16384 CONFIG_AUDIO_DATAPATH_STACK_SIZE=16384 CONFIG_MAIN_LOG_LEVEL_DBG=y CONFIG_AUDIO_SYSTEM_LOG_LEVEL_DBG=y CONFIG_SW_CODEC_SELECT_LOG_LEVEL_DBG=y CONFIG_BLE_LOG_LEVEL_DBG=y CONFIG_BT_LOG_LEVEL_DBG=y CONFIG_BT_AUDIO_DEBUG_STREAM=y CONFIG_BT_AUDIO_DEBUG_STREAM_DATA=y CONFIG_BT_AUDIO_DEBUG_BROADCAST_SOURCE=y CONFIG_STREAMCTRL_LOG_LEVEL_DBG=y CONFIG_BT_AUDIO_DEBUG_STREAM=y CONFIG_LOG_DEFAULT_LEVEL=4 CONFIG_THREAD_ANALYZER=y # General CONFIG_DEBUG=y CONFIG_DEBUG_INFO=y CONFIG_ASSERT=y CONFIG_STACK_USAGE=y CONFIG_THREAD_RUNTIME_STATS=y CONFIG_STACK_SENTINEL=y CONFIG_INIT_STACKS=y # Uart driver CONFIG_SERIAL=y # Logging CONFIG_LOG=y CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y CONFIG_LOG_TAG_MAX_LEN=2 CONFIG_LOG_TAG_DEFAULT="--" CONFIG_LOG_PROCESS_THREAD_SLEEP_MS=500 CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=8192 CONFIG_LOG_BUFFER_SIZE=65536 CONFIG_LOG_SPEED=y ## Avoid redundant warnings for endpoint setting in USB stack CONFIG_USB_DRIVER_LOG_LEVEL_ERR=y CONFIG_USB_DEVICE_LOG_LEVEL_ERR=y # Console related defines CONFIG_CONSOLE=y CONFIG_RTT_CONSOLE=y CONFIG_UART_CONSOLE=y # Shell related defines CONFIG_SHELL=y CONFIG_KERNEL_SHELL=y CONFIG_USE_SEGGER_RTT=y ## Disable logs on RTT CONFIG_SHELL_RTT_INIT_LOG_LEVEL_NONE=y CONFIG_SHELL_BACKEND_RTT=y CONFIG_SHELL_BACKEND_SERIAL=n CONFIG_SHELL_VT100_COLORS=y CONFIG_SHELL_STACK_SIZE=1024 CONFIG_SHELL_CMD_BUFF_SIZE=128 ## Reduce shell memory usage CONFIG_SHELL_WILDCARD=n CONFIG_SHELL_HELP_ON_WRONG_ARGUMENT_COUNT=n CONFIG_SHELL_STATS=n CONFIG_SHELL_CMDS=n CONFIG_SHELL_HISTORY=y # Turn off default shell commands CONFIG_I2C_SHELL=n CONFIG_HWINFO_SHELL=n CONFIG_CLOCK_CONTROL_NRF_SHELL=n CONFIG_FLASH_SHELL=n CONFIG_DEVICE_SHELL=n # Suppress err msg from sd_check_card_type. Because SPI_SDHC has no card presence method, # assume card is in slot. Thus error message is always shown if card is not inserted CONFIG_SD_LOG_LEVEL_OFF=y CONFIG_NVS_LOG_LEVEL_WRN=y CONFIG_CPU_LOAD=y CONFIG_CPU_LOAD_LOG_PERIODIC=y CONFIG_CPU_LOAD_LOG_INTERVAL=2000
Hi,
There is a limitation on the controller side to maximum 4 BIS streams.
Best regards,
Dejan
Thanks, dejans
Is there any chance that the max BIS to be increased to 6 or 8, and a new binary of the controller to be released?
Hi,
We are investigating the effects of having more BIS'es. Could you please perform a CPU load check with your settings (see below some of them)? What are the results?
CONFIG_LC3_BITRATE=32000 (and 48000)
CONFIG_LC3_ENC_CHAN_MAX=4 (and 6)
CONFIG_ENCODER_STACK_SIZE=16384
Best regards,
Dejan
Hi,
If possible, could you provide information why you would need 6 BIS streams and what would they be used for?
Best regards,
Dejan
Hi,
The main idea is to demonstrate the BLE Audio capabilities of nRF5340; the use-case is: multiple audio-streams will be distributed in a room to multiple listeners, and each will choose their active stream.
For now 2 streams will be from I2S (left and right from audio stereo), while the channels #3 to #6 will be generated sinewaves.
On long-term, minimum 16 channels should be broadcasted; most-likely the LC3 encoding should be done on a more powerful MCU, so nRF5340 will remain just to handle LE Audio stack and decoding (only on the receiving kit).
Would broadcasting 16 BIS (without LC3 encoding, 48kbps each stream (probably 2 retransmissions min), so this is 96KB/sec audio-data for all streams) is achievable for nRF5340 and BLE Audio stack?
Thank you!
Hi,
As there is theoretical limit for 2M Phy of around 1.4 Mbps, that would enable support for less than 10 streams (with 48 Kbps) with 2 retransmissions each. Even with only 1 retransmission, maximum number of streams would be 14. However, these are only theoretical considerations, since audio controller currently supports maximum 4 BISes.
Best regards,
Dejan
Hi,
Any news on releasing a new BL Controller with 6 or 8 BIS streams?
thanks,
Catalin
Hi,
It is not supported at the moment. For any other information related to future plans and releases please contact your regional sales manager.
Best regards,
Dejan