How works the Broadcast Source Device with Broadcast Audio Assistant and non-nordic headset compatible Auracast.

nrf Toolchain: 2.7.0
nrf Connect SDK : 2.7.0
Gateway: nrF5340 Audio DK
Headset: Earbud 'MOMENTUM TW 4' (Sennheiser)

I try to run and test this following application "Broadcast Source"  into the nrF5340 Audio DK (as role gateway) which should interact with auracast earbuds 'MOMENTUM TW 4' (as role headset).

As far as I understand , we need an intermediate "Broadcast Audio Assistant Device" which can be a smartphone (using nrf Connect Mobile ?), a PC, or a nrf-DK with LE audio support:

Use Case 1: Try to use the nrF5340 Audio DK (running "Broadcast Source" app) as gateway, my smartphone as Broadcast Audio Assistant Device and my auracast eardbud 'MOMENTUM TW 4' as headset.
The broadcast service of nrF5340 is published and detected by the nrf Connect mobile app. but my smartphone doesn't support the LE audio support. Is it necessary for the smartphone to support the LE Audio to manage the nrF5340 broadcast service and be able to select the advertisement or the channel wished to be listened ?

Use Case 2: Try to use a 1st nrF5340 Audio DK as gateway, a second nrF5340 Audio DK as Broadcast Audio Assistant, and auracast Headset 'MOMENTUM TW 4'
"Broadcast Audio Assistant" provided by Zephyr Project seems not working into the 2nd nrF5340-Audio-DK which play the role of the Assistant. According the doc, only nrf52840dk is supported.

*** Booting nRF Connect SDK v2.7.0-5cb85570ca43 ***
*** Using Zephyr OS v3.6.99-100befc70c74 ***
[00:00:00.415,588] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.415,649] <inf> bt_hci_core: HW Variant: nRF53x (0x0003)
[00:00:00.415,649] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 214.51162 Build 1926957230
[00:00:00.417,419] <inf> bt_hci_core: Identity: C6:95:06:0E:89:94 (random)
[00:00:00.417,449] <inf> bt_hci_core: HCI: version 5.4 (0x0d) revision 0x21fb, manufacturer 0x0059
[00:00:00.417,480] <inf> bt_hci_core: LMP: version 5.4 (0x0d) subver 0x21fb
Bluetooth initialized
[00:00:00.419,738] <wrn> bt_hci_core: opcode 0x2041 status 0x01
Scanning failed to start (err -5)

First, what I try to achieve makes sense ? if yes, can you help me to understand this issue of running an Broadcast Audio Assistant into a nrF5340-Audio-DK.

Thank in advance for your answers and Best Regards.

Parents
  • Thank a lot for your help, adjusting the code of broadcast_audio_assistant app did help. here the resulting logs:

    [00:00:25.317,535] <inf> bt_id: NRPA: 32:98:84:94:64:98
    Scanning for Broadcast Sink successfully started
    Broadcast Sink Found:
      BT Name:        
    'MOMENTUM' not found in names
    
    Broadcast Sink Found:
      BT Name:        
    'MOMENTUM' not found in names
    
    Broadcast Sink Found:
      BT Name:        MOMENTUM TW 4
    Match found for 'MOMENTUM'
    Connecting to Broadcast Sink: MOMENTUM TW 4
    Connected: 47:6B:23:F0:CF:EB (random)
    [00:00:27.807,678] <inf> bt_smp: SC LTK: 0xd9c530b7db3baf6348ecb61780503ae4 (No bonding)
    Security level changed: 2
    BASS discover done with 1 recv states
    [00:00:28.019,775] <inf> bt_id: NRPA: 0D:70:97:2C:3B:42
    Scanning for Broadcast Source successfully started
    Broadcast Source Found:
      BT Name:        MOMENTUM TW 4
      Broadcast Name: NRF5340_BROADCASTER
      Broadcast ID:   0x96a0b5
    
    Match found for 'NRF5340_BROADCASTER'
    Selecting Broadcast ID: 0x96a0b5
    Attempting to PA sync to the broadcaster with id 0x96A0B5
    Scan stopped, attempting to PA sync to the broadcaster with id 0x96A0B5
    [00:00:28.107,299] <inf> bt_id: NRPA: 1B:47:71:82:6B:30
    Waiting for PA synced
    Broadcast Source Found:
      BT Name:        MOMENTUM TW 4
      Broadcast Name: NRF5340_BROADCASTER
      Broadcast ID:   0x96a0b5
    
    Match found for 'NRF5340_BROADCASTER'
    bt_le_scan_stop failed with -120
    Selecting Broadcast ID: 0x96a0b5
    Attempting to PA sync to the broadcaster with id 0x96A0B5
    Broadcast Source Found:
      BT Name:        MOMENTUM TW 4
      Broadcast Name: NRF5340_BROADCASTER
      Broadcast ID:   0x96a0b5
    
    Match found for 'NRF5340_BROADCASTER'
    bt_le_scan_stop failed with -120
    Selecting Broadcast ID: 0x96a0b5
    Attempting to PA sync to the broadcaster with id 0x96A0B5
    PA sync 0x20002324 synced for broadcast sink with broadcast ID 0x96A0B5
    BASS add source successful


    I was able to hear the music broadcast into the earbuds at the first attempt  Smile (but with a poor sound quality).
    But unfortunately, afterwards from the 2nd attempt, I was not able anymore to hear anything and to reproduce the same result...

    Additional Notes:
    Now, I was able to listen multiple times to the broadcast audio stream but still with very poor sound quality
    How I can configure, control or improve the sound quality from the broadcast source app ?

    Best Regards.

  • Hi, 

    This is great news!

    There could be a chance that the ACL connection packets between earbuds and BA(broadcast assistant) are collided with ISO packets from broadcaster.
    Please follow the dev academy for setting the connection interval to 40ms or 45ms or a trial, or make the BA be able to handle the connection parameter update request from peripheral
    https://academy.nordicsemi.com/courses/bluetooth-low-energy-fundamentals/lessons/lesson-3-bluetooth-le-connections/topic/blefund-lesson-3-exercise-2/

    We could also add 
    CONFIG_BLE_ACL_PER_ADV_INT_MIN=0x50  
    CONFIG_BLE_ACL_PER_ADV_INT_MAX=0x50 
    CONFIG_BT_AUDIO_RETRANSMITS=4

    This will make PER-ADV interval shorter, when should harder to make broadcast sink out of sink from broadcaster
    And the last one will make the retransmission times more. 

    -Amanda H.

  • Hi Amanda,

    maybe I have misunderstood something in your explanations, but I'm not convinced that the root cause is from the BA or from conflicts of ACL connection packets between earbuds and BA .

    The BA has the main role to assist the headset to select or configure the wished advertisement ? So I can turn off the BA as soon that the audio streams is sent from the Broadcast source (BS) directly to the earbud. But I have noticed during my tests, there is no improvement on the quality of the sound even if the BA is turned off.

    based on this last tests, I understand that the route cause is more related between the BS and my earbuds.
    Or do you mean that I can configure or control the sound quality of the BS from the BA ?

    But thank for your supports and tips, I'll play around with your docs and tutorials to understand better my issue to improve the sound quality. If I cannot solve it, I'll come back to you

    Best Regards,
    Selim.

  • I have the same hardware and test the same scenario currently.

    I also had the scenario that i could only listen to the stream once but in sequent tries the sources seems to only send 0 values. So connecting a nrf 5340DK so the broadcast send from a nrf5340 audio dk works and connecting the TWS 4 using the companion app as the broadcast assistant also works but the stream seems to be muted for some reason. Reflashing the devices does not change this behaviour. How did you solve this issue?

    Regarding the audio qualtiy: In the data_recieved callback for the USB audio input the incoming data is downsampeld to mono 16Khz by default. You could increase that to 24khz via the Kconfig options.

    I also noticed that other broadcast sources cant be listened to using the broadcast sink sample in the same way. It always hangs in the "Broadcast Sink created, waiting for BASE" state once a none broadcast_audio_source running broadcast is used. My TWS 4 can connect to the other broadcasts without an issue. 

Reply
  • I have the same hardware and test the same scenario currently.

    I also had the scenario that i could only listen to the stream once but in sequent tries the sources seems to only send 0 values. So connecting a nrf 5340DK so the broadcast send from a nrf5340 audio dk works and connecting the TWS 4 using the companion app as the broadcast assistant also works but the stream seems to be muted for some reason. Reflashing the devices does not change this behaviour. How did you solve this issue?

    Regarding the audio qualtiy: In the data_recieved callback for the USB audio input the incoming data is downsampeld to mono 16Khz by default. You could increase that to 24khz via the Kconfig options.

    I also noticed that other broadcast sources cant be listened to using the broadcast sink sample in the same way. It always hangs in the "Broadcast Sink created, waiting for BASE" state once a none broadcast_audio_source running broadcast is used. My TWS 4 can connect to the other broadcasts without an issue. 

Children
  • Hi,

    I did nothing special as additional changes except what   suggest me to modify, but I can just give you some recommendations to follow for TWS4:

    1) must update the newest firmware for TWS4. the update should be notified automatically once your TWS4 is connected to the mobile app of Sennheiser.

    2) avoid interference with other headset by filtering the allowed headsets:
    add CONFIG_SELECT_SINK_NAME="MOMENTUM TW 4" in prj.conf

    3) leave the earbuds inside its box closed, and start first the BS (broadcast-source) app, then the BA app and finally you can use your earbuds to listen to the auracast stream.

    Note: Don't forget to redirect the played audio stream to the audio channel "nrf5340 USB Audio Analog Stereo". this channel should be automatically detected by your OS once the BS device is turned on.

    I wish you the same result. Best Regards.

Related