Multiple broadcasts from NRF5340

I’m working on a prototype based on the nRF5340 Audio DK, starting from the included nrf5340_audio application (NCS v3.1.1).
The goal is to support multiple simultaneous Bluetooth LE Audio broadcasts (at least two BIGs). After the response to my previous topic here  Creating multiple BIGs with nRF5340, I'm able to create two broadcast sources and start advertising, and don't see any sign of any problems in the log output. Each source is created as the one in the sample project, i.e. 2 streams per BIG. 

Each broadcaster works correctly if I disable the other (i.e. simply commenting out the lines creating them), but when both are active at once, I observe the following:

  • If I start both broadcasters at boot, no broadcast sinks can find any broadcast.

  • If I start only one at boot and later initialize the second (I added a command so I can trigger this via UART):

    • The first broadcast continues streaming correctly to connected sinks.

    • Once the second broadcaster is started, I can no longer discover or connect to either broadcaster (including the first one if I disconnect).

    • A sink already connected to the first broadcaster continues to receive audio normally.

This makes me suspect the issue is still related to advertising or extended advertising setup, rather than the BIGs themselves, since audio continues to stream for existing connections. I noticed that both sources were getting the same ID and was briefly hopeful that was the cause, but after setting `CONFIG_BT_AUDIO_USE_BROADCAST_ID_RANDOM=y` the behaviour remains the same (the logs do confirm different IDs for each broadcast source).


Development setup:

  • Hardware: nRF5340 Audio DK

  • NCS version: 3.1.1

  • IDE: VS Code with Nordic Connect extensions (build/flash/debug through the extension)

  • Build targets:

    • nrf5340_audio 

    • ipc_radio 


Below is a copy of the logs when starting with both broadcasters enabled. I don't see anything here that indicates a problem:

******* Booting nRF Connect SDK v3.1.1-e2a97fe2578a ***
*** Using Zephyr OS v4.1.99-ff8f0c579eeb ***
GW [00:00:00.372,253] <wrn> location: Invalid location in UICR, using default location
GW [00:00:00.383,392] <inf> nrf5340_audio_dk_version: Compatible board/HW version found: 1.1.0
GW [00:00:00.416,137] <inf> fw_info: 
         nRF5340 Audio nRF5340 Audio DK cpuapp                      
         NCS base version: 3.1.1                            
         Cmake run : Wed Oct 22 12:15:55 2025
GW [00:00:00.416,137] <inf> fw_info: ------- DEBUG BUILD -------
GW [00:00:00.416,137] <inf> fw_info: GATEWAY device
GW [00:00:00.445,343] <inf> bt_mgmt_ctlr_cfg: Controller: SoftDevice: Version 6.1 (0x0f), Revision 8297
GW [00:00:00.445,526] <inf> bt_mgmt: Local identity addr: F1:CF:FB:4F:83:D1 (random)
GW [00:00:00.474,121] <inf> bt_connection_manager: set initial broadcast name 'auracast' (9 chars)
GW [00:00:00.474,273] <dbg> bt_bap_broadcast_source: broadcast_source_ep_init: ep 0x20010f34
GW [00:00:00.474,304] <dbg> bt_bap_iso: bt_bap_iso_bind_ep: iso 0x200101e4 ep 0x20010f34 dir source
GW [00:00:00.474,334] <dbg> bt_bap_broadcast_source: broadcast_source_ep_init: ep 0x20010ff0
GW [00:00:00.474,334] <dbg> bt_bap_iso: bt_bap_iso_bind_ep: iso 0x20010244 ep 0x20010ff0 dir source
GW [00:00:00.474,365] <dbg> bt_bap_broadcast_source: broadcast_source_set_ep_state: ep 0x20010f34 id 0x00 idle -> qos-configured
GW [00:00:00.474,395] <dbg> bt_bap_broadcast_source: broadcast_source_set_ep_state: ep 0x20010ff0 id 0x00 idle -> qos-configured
GW [00:00:00.474,426] <inf> broadcast_source: Created: 0x20011af4 auracast
GW [00:00:00.474,426] <dbg> bt_connection_manager: ext_adv_populate: Using random broadcast ID
GW [00:00:00.474,426] <inf> broadcast_source: auracast
GW [00:00:00.474,517] <dbg> bt_connection_manager: ext_adv_populate: Size of adv data: 40, num_elements: 5
GW [00:00:00.474,548] <dbg> bt_connection_manager: per_adv_populate: Size of per adv data: 8, num_elements: 1
GW [00:00:00.475,830] <inf> bt_connection_manager: set initial broadcast name 'castaura' (9 chars)
GW [00:00:00.475,860] <dbg> broadcast_source: broadcast_source_enable: Callbacks already registered
GW [00:00:00.475,982] <dbg> bt_bap_broadcast_source: broadcast_source_ep_init: ep 0x20011514
GW [00:00:00.476,013] <dbg> bt_bap_iso: bt_bap_iso_bind_ep: iso 0x200102a4 ep 0x20011514 dir source
GW [00:00:00.476,013] <dbg> bt_bap_broadcast_source: broadcast_source_ep_init: ep 0x200115d0
GW [00:00:00.476,043] <dbg> bt_bap_iso: bt_bap_iso_bind_ep: iso 0x20010304 ep 0x200115d0 dir source
GW [00:00:00.476,074] <dbg> bt_bap_broadcast_source: broadcast_source_set_ep_state: ep 0x20011514 id 0x00 idle -> qos-configured
GW [00:00:00.476,104] <dbg> bt_bap_broadcast_source: broadcast_source_set_ep_state: ep 0x200115d0 id 0x00 idle -> qos-configured
GW [00:00:00.476,104] <inf> broadcast_source: Created: 0x20011af8 castaura
GW [00:00:00.476,135] <dbg> bt_connection_manager: ext_adv_populate: Using random broadcast ID
GW [00:00:00.476,379] <inf> broadcast_source: castaura
GW [00:00:00.476,470] <dbg> bt_connection_manager: ext_adv_populate: Size of adv data: 40, num_elements: 5
GW [00:00:00.476,501] <dbg> bt_connection_manager: per_adv_populate: Size of per adv data: 8, num_elements: 1
GW [00:00:00.478,088] <inf> bt_mgmt_adv: Local addr: F1:CF:FB:4F:83:D1 (random)
GW [00:00:00.479,949] <inf> main: Ext adv ready
GW [00:00:00.479,949] <inf> main: index: 0
GW [00:00:00.479,949] <dbg> broadcast_source: broadcast_source_start: Starting broadcast source
GW [00:00:00.479,980] <dbg> bt_bap_broadcast_source: broadcast_source_set_ep_state: ep 0x20010f34 id 0x00 qos-configured -> enabling
GW [00:00:00.480,010] <dbg> bt_bap_broadcast_source: broadcast_source_set_ep_state: ep 0x20010ff0 id 0x00 qos-configured -> enabling
GW [00:00:00.480,804] <inf> bt_mgmt_adv: Advertising successfully started
GW [00:00:00.482,543] <inf> bt_mgmt_adv: Local addr: 13:E4:9F:F7:3E:5F (random)
GW [00:00:00.484,771] <inf> main: Ext adv ready
GW [00:00:00.484,771] <inf> main: index: 1
GW [00:00:00.484,802] <dbg> broadcast_source: broadcast_source_start: Starting broadcast source
GW [00:00:00.484,832] <dbg> bt_bap_broadcast_source: broadcast_source_set_ep_state: ep 0x20011514 id 0x00 qos-configured -> enabling
GW [00:00:00.484,832] <dbg> bt_bap_broadcast_source: broadcast_source_set_ep_state: ep 0x200115d0 id 0x00 qos-configured -> enabling
GW [00:00:00.485,900] <inf> bt_mgmt_adv: Advertising successfully started
GW [00:00:00.487,976] <dbg> bt_bap_broadcast_source: broadcast_source_iso_connected: stream 0x2000e508 ep 0x20010f34
GW [00:00:00.488,464] <dbg> bt_bap_broadcast_source: broadcast_source_set_ep_state: ep 0x20010f34 id 0x00 enabling -> streaming
GW [00:00:00.488,525] <inf> broadcast_source: Broadcast stream 0x2000e508 started
GW [00:00:00.488,555] <inf> le_audio: LC3 codec config for source:
GW [00:00:00.488,555] <inf> le_audio:   Frequency: 48000 Hz
GW [00:00:00.488,555] <inf> le_audio:   Duration: 10000 us
GW [00:00:00.488,555] <inf> le_audio:   Channel allocation: 0x1
GW [00:00:00.488,555] <inf> le_audio:   Octets per frame: 120 (96000 bps)
GW [00:00:00.488,586] <inf> le_audio:   Frames per SDU: 1
GW [00:00:00.488,586] <dbg> bt_bap_broadcast_source: broadcast_source_iso_connected: stream 0x2000e530 ep 0x20010ff0
GW [00:00:00.489,105] <dbg> bt_bap_broadcast_source: broadcast_source_set_ep_state: ep 0x20010ff0 id 0x00 enabling -> streaming
GW [00:00:00.489,135] <inf> broadcast_source: Broadcast stream 0x2000e530 started
GW [00:00:00.489,166] <inf> le_audio: LC3 codec config for source:
GW [00:00:00.489,166] <inf> le_audio:   Frequency: 48000 Hz
GW [00:00:00.489,166] <inf> le_audio:   Duration: 10000 us
GW [00:00:00.489,196] <inf> le_audio:   Channel allocation: 0x2
GW [00:00:00.489,196] <inf> le_audio:   Octets per frame: 120 (96000 bps)
GW [00:00:00.489,196] <inf> le_audio:   Frames per SDU: 1
GW [00:00:00.489,196] <inf> broadcast_source: Source 0x20011af4 started
GW [00:00:00.489,196] <inf> broadcast_source:   Index: 0
GW [00:00:00.489,227] <inf> broadcast_source:   ID: 9699013
GW [00:00:00.489,227] <inf> broadcast_source:   Num subgroups: 1
GW [00:00:00.489,227] <inf> broadcast_source:   Not encrypted
GW [00:00:00.492,950] <dbg> bt_bap_broadcast_source: broadcast_source_iso_connected: stream 0x2000ea08 ep 0x20011514
GW [00:00:00.493,438] <dbg> bt_bap_broadcast_source: broadcast_source_set_ep_state: ep 0x20011514 id 0x00 enabling -> streaming
GW [00:00:00.493,499] <inf> broadcast_source: Broadcast stream 0x2000ea08 started
GW [00:00:00.493,530] <inf> le_audio: LC3 codec config for source:
GW [00:00:00.493,530] <inf> le_audio:   Frequency: 48000 Hz
GW [00:00:00.493,530] <inf> le_audio:   Duration: 10000 us
GW [00:00:00.493,530] <inf> le_audio:   Channel allocation: 0x1
GW [00:00:00.493,530] <inf> le_audio:   Octets per frame: 120 (96000 bps)
GW [00:00:00.493,560] <inf> le_audio:   Frames per SDU: 1
GW [00:00:00.493,560] <dbg> bt_bap_broadcast_source: broadcast_source_iso_connected: stream 0x2000ea30 ep 0x200115d0
GW [00:00:00.494,049] <dbg> bt_bap_broadcast_source: broadcast_source_set_ep_state: ep 0x200115d0 id 0x00 enabling -> streaming
GW [00:00:00.494,110] <inf> broadcast_source: Broadcast stream 0x2000ea30 started
GW [00:00:00.494,140] <inf> le_audio: LC3 codec config for source:
GW [00:00:00.494,140] <inf> le_audio:   Frequency: 48000 Hz
GW [00:00:00.494,140] <inf> le_audio:   Duration: 10000 us
GW [00:00:00.494,171] <inf> le_audio:   Channel allocation: 0x2
GW [00:00:00.494,171] <inf> le_audio:   Octets per frame: 120 (96000 bps)
GW [00:00:00.494,171] <inf> le_audio:   Frames per SDU: 1
GW [00:00:00.494,171] <inf> broadcast_source: Source 0x20011af8 started
GW [00:00:00.494,171] <inf> broadcast_source:   Index: 1
GW [00:00:00.494,201] <inf> broadcast_source:   ID: 7922609
GW [00:00:00.494,201] <inf> broadcast_source:   Num subgroups: 1
GW [00:00:00.494,201] <inf> broadcast_source:   Not encrypted
GW [00:00:00.521,057] <inf> audio_datapath: Drft comp state: CALIB
GW [00:00:00.621,032] <inf> audio_datapath: Drft comp state: INIT
GW [00:00:00.622,039] <inf> audio_datapath: Drft comp state: CALIB
GW [00:00:00.722,045] <inf> audio_datapath: Drft comp state: OFFSET
GW [00:00:01.221,771] <inf> audio_datapath: Drft comp state: LOCKED


(Note: the `bt_connection_manager` seen in these logs is a simple wrapper around the broadcast_source creation process from the sample project


int initialise_broadcast(uint8_t big_index, const char *initial_name, size_t len){
	LOG_INF("set initial broadcast name '%s' (%i chars)", initial_name, len);
	if(len == 0 || len >= BROADCAST_SOURCE_ADV_NAME_MAX){
		LOG_WRN("broadcast name too short or too long (%i chars)", len);
		return -EINVAL;
	}

	memcpy(broadcast_name[big_index], initial_name, len);
	broadcast_name[big_index][len] = '\0';

	broadcast_source_default_create(&broadcast_param[big_index], broadcast_name[big_index], len);

	int ret = broadcast_source_enable(&broadcast_param[big_index], big_index);
	ERR_CHK_MSG(ret, "Failed to enable broadcaster(s)");

	ret = ext_adv_populate(big_index, &ext_adv_data[big_index], ext_adv_buf[big_index], ARRAY_SIZE(ext_adv_buf[big_index]),
			       &ext_adv_buf_cnt[big_index]);
	ERR_CHK_MSG(ret, "Failed to populate extended advertising data");

	ret = per_adv_populate(big_index, &per_adv_data[big_index], &per_adv_buf[big_index], 1, &per_adv_buf_cnt[big_index]);
	ERR_CHK_MSG(ret, "Failed to populate periodic advertising data");

	ret = bt_mgmt_adv_start(big_index, ext_adv_buf[big_index], ext_adv_buf_cnt[big_index], &per_adv_buf[big_index],
				per_adv_buf_cnt[big_index], false);
	ERR_CHK_MSG(ret, "Failed to start advertiser");

    return ret;
}


My prj.conf and overlay for the nrf5340_audio target:

# nRF5340 Audio
CONFIG_NRF5340_AUDIO=y
CONFIG_SAMPLE_RATE_CONVERTER=y
CONFIG_SAMPLE_RATE_CONVERTER_FILTER_SIMPLE=y
CONFIG_AUDIO_SOURCE_I2S=y
CONFIG_TRANSPORT_BIS=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
CONFIG_BT=y
CONFIG_NET_BUF_POOL_USAGE=y
CONFIG_BROADCAST_SOURCE_LOG_LEVEL_DBG=y
CONFIG_BT_BAP_BROADCAST_SOURCE_LOG_LEVEL_DBG=y
CONFIG_BT_HCI_CORE_LOG_LEVEL_DBG=y

# Uart driver
CONFIG_SERIAL=y

# Logging
CONFIG_LOG=y
CONFIG_LOG_TAG_MAX_LEN=2
CONFIG_LOG_TAG_DEFAULT="--"
CONFIG_LOG_BACKEND_UART=y
CONFIG_LOG_BUFFER_SIZE=4096
CONFIG_BT_SECURITY_ERR_TO_STR=y

# Use this for debugging thread usage
#CONFIG_LOG_THREAD_ID_PREFIX=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_COMMANDS=y
CONFIG_SHELL_VT100_COLORS=y
CONFIG_SHELL_STACK_SIZE=4096
CONFIG_SHELL_CMD_BUFF_SIZE=512
## 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 LOG_ERR messages 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

# Suppress LOG_INF messages from hci_core
CONFIG_BT_HCI_CORE_LOG_LEVEL_WRN=y

# BT related configs
CONFIG_BT_ISO_TX_BUF_COUNT=3
CONFIG_BT_BUF_ACL_TX_COUNT=6
CONFIG_BT_ATT_TX_COUNT=6
CONFIG_BT_AUDIO_BROADCAST_NAME="auracast"
CONFIG_BT_AUDIO_BROADCAST_NAME_ALT="castaura"
CONFIG_BT_DEVICE_NAME_DYNAMIC=y
CONFIG_BT_CAP_INITIATOR=y
CONFIG_BT_MGMT_LOG_LEVEL_INF=y
CONFIG_BT_MGMT_SCAN_LOG_LEVEL_DBG=y
CONFIG_AURACAST=y

# Enable UART
CONFIG_SERIAL=y
CONFIG_UART_ASYNC_API=y

# Copyright (c) 2025 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

CONFIG_TRANSPORT_BIS=y
CONFIG_AUDIO_DEV=2

CONFIG_BT_CAP_INITIATOR=y
CONFIG_BT_AUDIO=y

CONFIG_BT_AUDIO_BROADCAST_CONFIGURABLE=y

CONFIG_BT_DEVICE_APPEARANCE=2181

CONFIG_BT_ISO_BROADCASTER=y

CONFIG_BT_BAP_BROADCAST_SOURCE=y
CONFIG_BT_BAP_BROADCAST_SRC_COUNT=2
CONFIG_BT_BAP_BROADCAST_SRC_STREAM_COUNT=8
CONFIG_BT_BAP_BROADCAST_SRC_SUBGROUP_COUNT=4
CONFIG_BT_ISO_BROADCASTER=y

CONFIG_BT_ISO_MAX_CHAN=10

CONFIG_BT_ISO_MAX_BIG=2
CONFIG_BT_EXT_ADV_MAX_ADV_SET=4
CONFIG_EXT_ADV_BUF_MAX=10

CONFIG_LC3_ENC_CHAN_MAX=4
CONFIG_AUDIO_ENCODE_CHANNELS_MAX=4
CONFIG_ENTROPY_GENERATOR=y
CONFIG_BT_ISO_TX_BUF_COUNT=3
CONFIG_BT_BUF_ACL_TX_COUNT=3
CONFIG_BT_BUF_EVT_RX_COUNT=12
CONFIG_BT_AUDIO_USE_BROADCAST_ID_RANDOM=y

# additional debug output
CONFIG_BT_BAP_ISO_LOG_LEVEL_DBG=y

CONFIG_BT_EXT_ADV=y
CONFIG_BT_EXT_ADV_LEGACY_SUPPORT=y

CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_CTLR_ADV_SET=2
CONFIG_BT_CTLR_ADV_AUX_SET=2


and for the ipc_radio target:
#
# Copyright (c) 2023 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

CONFIG_HEAP_MEM_POOL_SIZE=8192
CONFIG_MAIN_STACK_SIZE=2048
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048

CONFIG_MBOX=y
CONFIG_IPC_SERVICE=y

CONFIG_BT=y
CONFIG_BT_HCI_RAW=y
CONFIG_BT_CTLR_ASSERT_HANDLER=y

CONFIG_BT_ISO_PERIPHERAL=y
CONFIG_BT_ISO_CENTRAL=y
CONFIG_BT_ISO_BROADCASTER=y
CONFIG_BT_ISO_SYNC_RECEIVER=y
CONFIG_BT_EXT_ADV=y
CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER=y
CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER=y

CONFIG_BT_CTLR_CONN_ISO_GROUPS=1
CONFIG_BT_CTLR_CONN_ISO_STREAMS=2
CONFIG_BT_CTLR_SYNC_ISO_STREAM_COUNT=2
CONFIG_BT_CTLR_ADV_ISO_SET=1
CONFIG_BT_CTLR_ADV_ISO_STREAM_COUNT=2

CONFIG_BT_EXT_ADV_MAX_ADV_SET=2
CONFIG_BT_ISO_MAX_CHAN=2
CONFIG_BT_ISO_TX_BUF_COUNT=2
CONFIG_BT_ISO_MAX_BIG=2

CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
CONFIG_BT_CTLR_ADV_ISO_STREAM_COUNT=4

# Support two links as a central, or one link as a peripheral
CONFIG_BT_MAX_CONN=3
CONFIG_BT_CTLR_SDC_PERIPHERAL_COUNT=1

# Allow using more than default advertising event length
CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=251

# To present the audio at the right point in time, we need the controller and
# audio clock to be synchronized
CONFIG_MPSL_TRIGGER_IPC_TASK_ON_RTC_START=y
CONFIG_MPSL_TRIGGER_IPC_TASK_ON_RTC_START_CHANNEL=4

# Needed for builds with nrf21540
# Can also be set to 20, but check local restrictions first
#CONFIG_BT_CTLR_TX_PWR_ANTENNA=10
#CONFIG_MPSL_FEM_NRF21540_TX_GAIN_DB=10

CONFIG_IPC_RADIO_BT=y
CONFIG_IPC_RADIO_BT_HCI_IPC=y

CONFIG_BT_ISO_MAX_BIG=2
CONFIG_BT_CTLR_ADV_ISO_STREAM_COUNT=4

I'm stuck for ideas what's causing this behaviour. Is anybody able to provide some hint as to what I might have overlooked or misconfigured?

Parents
  • Hello,

    Can you please upload the application project where you start both broadcasts, and an application that would act as the sink for each of the two, so that I can try to replicate the issue locally.

    Best regards,

    Edvin

  • Hi Edvin,

    thanks for the response. I've attached a zipped application folder of my current status:

    4137.nrf5340_audio.zip

    it's largely the included `nrf5340_audio` sample application, with some changes made to the `broadcast_source` version to accept commands over UART and create multiple broadcasts (nothing configured yet to play over the second broadcast). It's configured to accept audio input over the `LINE IN` 3.5mm jack. 

    The `broadcast_sink` version is almost unchanged (added some flashing lights after disconnection) and works to pick up the broadcast. 

    The file I've uploaded has both broadcasters initialised on boot. In this configuration, the sink fails to connect.

    If you comment out the lines 

    	ret = initialise_broadcast(1, CONFIG_BT_AUDIO_BROADCAST_NAME_ALT, sizeof(CONFIG_BT_AUDIO_BROADCAST_NAME_ALT));
    	ERR_CHK_MSG(ret, "Failed to initialise bluetooth broadcast 1");


    then build and flash again, it will connect successfully and you can hear the audio over headphones plugged into the broadcast_sink board.

    If you then send I1 (which I now realise isn't the easiest thing to read, so for clarity: that's the letter 'I' for 'Initialise', then the number '1' as a broadcast index) to the broadcast_source over UART, it will initialise the second broadcast. As described above, you'll still be able to hear the stream over the broadcast sink if you're already connected at this time, but if you reboot the sink now that both broadcasts are active then it will fail to connect.

    regards

    Chris

  • Hello Chris,

    I am sorry for the late reply. I have been held up with other tasks. 

    Are you still stuck on this? If so, can you upload the sink that you are using, for convenience?

    Best regards,

    Edvin

  • Hi Edvin,

    Sorry for the late reply on my side also. Currently we're working on a demonstrator/prototype of a potential future product. If the project goes ahead beyond that the second would be a firm requirement, but for the demonstration phase we can live with just the one. 

    I'm not on the machine with the sink currently, but I'm pretty certain it's had no meaningful modifications (just flashing some lights a bit differently and maybe some log output) from the standard broadcast_sink configuration of the NRF5340 audio application. I also see the same behaviour when connecting from an existing set of BLE/Auracast-compatible consumer heapdhones (Creative Zen Hybrid Pro).

    Thanks,
    Chris

  • Hello,

    I have discussed this with our LE Audio team. Sorry for my lack of familiarity with the LE Audio applications, but what sort of streams are you trying to have two of? Is it 2x stereo streams? And are they encoded realtime?

    Best regards,

    Edvin

  • Two mono streams, coming from each channel of I2S input. 

    (The actual input source for the second stream isn't yet configured in the modified application, but I don't believe that could be related to the kind of behaviour I'm seeing)

Reply Children
  • Hi Chris, 

    Thank you for your patience. 

    Edvin asked me to look into this and I have started to get to know your current use case and code now. We do have some reference code which configures multiple BIGs and BISes which is the nRF Auraconfig sample. You can find the documentation for the sample here (docs.nordicsemi.com) and the source code here on GitHub. I can see that you are already doing something similar, but please check out the sample to see if you have missed anything. I also tried to take a look, but I did not get so far into your code today, unfortunately. Note that the nRF Auraconfig sample does not include any audio processing as it is designed to work with pre-encoded streams to allow for up to 2 BIG with 4 BISes each. 

    Regarding you using two mono streams, the nRF5340 has enough CPU power to handle encoding two (actually up to three) mono streams. 

    Best regards,

    Maria

Related