nRF5430 audio DK - configure stereo BIC mode

Hello,

I have 2 of the nRF5430 audio development kits, hence my debuggin possibilities are a little bit limited. But as far as I understand the BIC mode can be used to stream audio to multiple sinks at the same time. At least for my 2 boards, this seems to be working. But I can only archive a mono signal. In the manual is stated, that I can switch between left and right via the press of one of the volume buttons during reset. After some testing I figured out that this is true as well, but the audio signal is always outputed on the same side of my headphone. So I was wondering how I can configure the audio DK to output true stereo from a single sink?

Yours faithfully

Chris

Parents
  • Oh, a clear case of RTFM first. The 160 Dollar audio DK only has a mono headphone output. Whatever lead to this design decision, I find it hard to believe, that you do not offer a Stereo output on this.

    In this case, what can I do to get an Stereo signal? Attach a simple Stereo DAC like the PCM5102 to the I2S bus? What parts of the source code must be modified?

    Best regards

    Chris

  • Thank you Amanda, From what I see on in the Github links it looked doable. Unfortunatley the code is outdate not suitable for the newest SDKs anymore.

    Another problem ist that the regular BIS example is already unstable. The link is lost after a minute or so. Resetting the sink device restores the stream.

    I've added this lines to the prj.conf file

    CONFIG_STREAM_BIDIRECTIONAL=n
    CONFIG_TRANSPORT_BIS=n

    maybe I'm missing something else?

  • Hi, 

    Sorry for the delay. 

    ChrisKay said:
    Another problem ist that the regular BIS example is already unstable. The link is lost after a minute or so. Resetting the sink device restores the stream.

    What NCS version are you using? Could you try with the latest version, v2.5.2?

    Also for setup of the BIS, please add the following configs into prj.conf

    CONFIG_TRANSPORT_BIS=y # the default setting for project is CIS mode, so we need to turn this on for BIS
    
    CONFIG_AUDIO_SOURCE_I2S=y # using I2S instead of USB can lead to better user experience

    If it doesn't help with the issue, please provide the log from the application. 

    Regards,
    Amanda H.

  • Hello Amanda,

    thank you again for your support. Indeed I was using the SDK version 2.5.1.

    I will give the 2.5.2 a try. Unfortunately I have many different topics on my list right now. So tinkering with the Audio DK is low priority right now. Therefore my responses might be coming slow.

    I've tested both options I2S_Input and USB Input in both cases the stream is only working for a few seconds.

    Here is the output of the sink device

    *** Booting nRF Connect SDK v2.5.2 ***
    HL [00:00:00.258,453] <inf> fw_info:
             nRF5340 Audio nRF5340 Audio DK cpuapp
             NCS base version: 2.5.2
             Cmake run : Thu Feb 22 23:17:43 2024
    HL [00:00:00.258,453] <inf> fw_info: ------- DEBUG BUILD -------
    HL [00:00:00.258,483] <inf> fw_info: HEADSET left device
    HL [00:00:00.269,104] <inf> board_version: Compatible board/HW version found: 1.                                                                                                                                                                                                                               0.0
    HL [00:00:00.307,189] <inf> bt_mgmt_ctlr_cfg: Controller: LL_ACS_NRF53. Version:                                                                                                                                                                                                                                3424
    HL [00:00:00.309,143] <inf> bt_mgmt: Local identity addr: D0:E9:D3:9B:BE:90 (ran                                                                                                                                                                                                                               dom)
    HL [00:00:00.435,729] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random)                                                                                                                                                                                                                               . May time out. Updates not printed
    HL [00:00:00.435,729] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:00.439,300] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER f                                                                                                                                                                                                                               ound, id: 0x3b7d61
    HL [00:00:00.652,099] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:01.452,056] <inf> broadcast_sink: Syncing to broadcast stream index 0
    HL [00:00:01.452,239] <inf> streamctrl_broadcast_sink: Presentation delay 10000                                                                                                                                                                                                                                us is set
    HL [00:00:02.252,349] <inf> broadcast_sink: Stream index 0 started
    HL [00:00:02.252,349] <inf> broadcast_sink: Codec config for LC3:
    HL [00:00:02.252,349] <inf> broadcast_sink:     Frequency: 48000 Hz
    HL [00:00:02.252,380] <inf> broadcast_sink:     Frame Duration: 10000 us
    HL [00:00:02.252,380] <inf> broadcast_sink:     Octets per frame: 120 (96000 kbp                                                                                                                                                                                                                               s)
    HL [00:00:02.252,380] <inf> broadcast_sink:     Frames per SDU: 1
    HL [00:00:02.252,410] <inf> broadcast_sink:     Channel allocation: 0x1
    HL [00:00:02.253,601] <wrn> le_audio_rx: Not in streaming state, throwing data:                                                                                                                                                                                                                                1
    HL [00:00:02.264,038] <inf> audio_datapath: Drft comp state: CALIB
    HL [00:00:02.266,021] <wrn> audio_datapath: Data received, total underruns: 2
    
    HL [00:00:02.364,013] <inf> audio_datapath: Drft comp state: OFFSET
    HL [00:00:02.586,822] <wrn> audio_datapath: Data received, total underruns: 3
    HL [00:00:02.863,708] <inf> audio_datapath: Drft comp state: LOCKED
    HL [00:00:02.863,739] <inf> audio_datapath: Pres comp state: MEAS
    HL [00:00:02.973,724] <inf> audio_datapath: Pres comp state: WAIT
    HL [00:00:03.113,739] <inf> audio_datapath: Pres comp state: INIT
    HL [00:00:03.123,748] <inf> audio_datapath: Pres comp state: MEAS
    HL [00:00:03.234,405] <inf> audio_datapath: Pres comp state: LOCKED
    HL [00:00:16.813,201] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:16.815,277] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:16.815,277] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:16.815,277] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:16.833,007] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:17.052,734] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:17.053,222] <inf> broadcast_sink: Stream stopped by user
    HL [00:00:17.053,253] <inf> broadcast_sink: Stream index 0 stopped. Reason: 22
    HL [00:00:17.053,588] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:17.055,664] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:17.055,664] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:17.055,694] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:17.058,654] <inf> audio_datapath: Pres comp state: INIT
    HL [00:00:17.061,828] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:17.260,528] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:17.260,803] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:17.262,847] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:17.262,878] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:17.262,878] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:17.269,989] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:17.454,193] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:17.454,467] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:17.456,512] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:17.456,512] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:17.456,542] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:17.489,959] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:17.652,770] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:17.653,045] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:17.655,090] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:17.655,090] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:17.655,090] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:17.659,973] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:17.852,783] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:17.853,057] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:17.855,102] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:17.855,102] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:17.855,133] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:17.881,835] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:18.052,795] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:18.053,070] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:18.055,114] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:18.055,114] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:18.055,114] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:18.071,868] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:18.252,807] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:18.253,051] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:18.255,096] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:18.255,126] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:18.255,126] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:18.259,979] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:18.452,819] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:18.453,063] <inf> streamctrl_broadcast_sink: PA sync lost

    What I have done is to install the SDK 2.5.2

    add the following lines to my prj.conf

    CONFIG_STREAM_BIDIRECTIONAL=n
    CONFIG_TRANSPORT_BIS=y
    CONFIG_AUDIO_SOURCE_I2S=y

    and build everything using the script

    py buildprog.py -c both -b debug -d both -p -s --recover_on_fail

    Best regards

    Chris

Reply
  • Hello Amanda,

    thank you again for your support. Indeed I was using the SDK version 2.5.1.

    I will give the 2.5.2 a try. Unfortunately I have many different topics on my list right now. So tinkering with the Audio DK is low priority right now. Therefore my responses might be coming slow.

    I've tested both options I2S_Input and USB Input in both cases the stream is only working for a few seconds.

    Here is the output of the sink device

    *** Booting nRF Connect SDK v2.5.2 ***
    HL [00:00:00.258,453] <inf> fw_info:
             nRF5340 Audio nRF5340 Audio DK cpuapp
             NCS base version: 2.5.2
             Cmake run : Thu Feb 22 23:17:43 2024
    HL [00:00:00.258,453] <inf> fw_info: ------- DEBUG BUILD -------
    HL [00:00:00.258,483] <inf> fw_info: HEADSET left device
    HL [00:00:00.269,104] <inf> board_version: Compatible board/HW version found: 1.                                                                                                                                                                                                                               0.0
    HL [00:00:00.307,189] <inf> bt_mgmt_ctlr_cfg: Controller: LL_ACS_NRF53. Version:                                                                                                                                                                                                                                3424
    HL [00:00:00.309,143] <inf> bt_mgmt: Local identity addr: D0:E9:D3:9B:BE:90 (ran                                                                                                                                                                                                                               dom)
    HL [00:00:00.435,729] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random)                                                                                                                                                                                                                               . May time out. Updates not printed
    HL [00:00:00.435,729] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:00.439,300] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER f                                                                                                                                                                                                                               ound, id: 0x3b7d61
    HL [00:00:00.652,099] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:01.452,056] <inf> broadcast_sink: Syncing to broadcast stream index 0
    HL [00:00:01.452,239] <inf> streamctrl_broadcast_sink: Presentation delay 10000                                                                                                                                                                                                                                us is set
    HL [00:00:02.252,349] <inf> broadcast_sink: Stream index 0 started
    HL [00:00:02.252,349] <inf> broadcast_sink: Codec config for LC3:
    HL [00:00:02.252,349] <inf> broadcast_sink:     Frequency: 48000 Hz
    HL [00:00:02.252,380] <inf> broadcast_sink:     Frame Duration: 10000 us
    HL [00:00:02.252,380] <inf> broadcast_sink:     Octets per frame: 120 (96000 kbp                                                                                                                                                                                                                               s)
    HL [00:00:02.252,380] <inf> broadcast_sink:     Frames per SDU: 1
    HL [00:00:02.252,410] <inf> broadcast_sink:     Channel allocation: 0x1
    HL [00:00:02.253,601] <wrn> le_audio_rx: Not in streaming state, throwing data:                                                                                                                                                                                                                                1
    HL [00:00:02.264,038] <inf> audio_datapath: Drft comp state: CALIB
    HL [00:00:02.266,021] <wrn> audio_datapath: Data received, total underruns: 2
    
    HL [00:00:02.364,013] <inf> audio_datapath: Drft comp state: OFFSET
    HL [00:00:02.586,822] <wrn> audio_datapath: Data received, total underruns: 3
    HL [00:00:02.863,708] <inf> audio_datapath: Drft comp state: LOCKED
    HL [00:00:02.863,739] <inf> audio_datapath: Pres comp state: MEAS
    HL [00:00:02.973,724] <inf> audio_datapath: Pres comp state: WAIT
    HL [00:00:03.113,739] <inf> audio_datapath: Pres comp state: INIT
    HL [00:00:03.123,748] <inf> audio_datapath: Pres comp state: MEAS
    HL [00:00:03.234,405] <inf> audio_datapath: Pres comp state: LOCKED
    HL [00:00:16.813,201] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:16.815,277] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:16.815,277] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:16.815,277] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:16.833,007] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:17.052,734] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:17.053,222] <inf> broadcast_sink: Stream stopped by user
    HL [00:00:17.053,253] <inf> broadcast_sink: Stream index 0 stopped. Reason: 22
    HL [00:00:17.053,588] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:17.055,664] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:17.055,664] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:17.055,694] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:17.058,654] <inf> audio_datapath: Pres comp state: INIT
    HL [00:00:17.061,828] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:17.260,528] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:17.260,803] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:17.262,847] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:17.262,878] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:17.262,878] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:17.269,989] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:17.454,193] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:17.454,467] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:17.456,512] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:17.456,512] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:17.456,542] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:17.489,959] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:17.652,770] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:17.653,045] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:17.655,090] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:17.655,090] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:17.655,090] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:17.659,973] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:17.852,783] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:17.853,057] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:17.855,102] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:17.855,102] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:17.855,133] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:17.881,835] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:18.052,795] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:18.053,070] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:18.055,114] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:18.055,114] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:18.055,114] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:18.071,868] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:18.252,807] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:18.253,051] <inf> streamctrl_broadcast_sink: PA sync lost
    HL [00:00:18.255,096] <inf> bt_mgmt_scan: Local addr: D0:E9:D3:9B:BE:90 (random). May time out. Updates not printed
    HL [00:00:18.255,126] <inf> bt_mgmt_scan: Scanning successfully started
    HL [00:00:18.255,126] <inf> streamctrl_broadcast_sink: Restarted scanning for broadcaster
    HL [00:00:18.259,979] <inf> bt_mgmt_scan: Broadcast source NRF5340_BROADCASTER found, id: 0x3b7d61
    HL [00:00:18.452,819] <inf> streamctrl_broadcast_sink: PA synced
    HL [00:00:18.453,063] <inf> streamctrl_broadcast_sink: PA sync lost

    What I have done is to install the SDK 2.5.2

    add the following lines to my prj.conf

    CONFIG_STREAM_BIDIRECTIONAL=n
    CONFIG_TRANSPORT_BIS=y
    CONFIG_AUDIO_SOURCE_I2S=y

    and build everything using the script

    py buildprog.py -c both -b debug -d both -p -s --recover_on_fail

    Best regards

    Chris

Children
No Data
Related