nRF5340 audio dk failure to maintain connection after updating Galaxy Buds2 Pro software

I was working with the nRF5340 audio dk gateway application to connect to my Samsung Galaxy Buds2 Pro ear buds. I was able to make a cis connection and stream data bidirectionally.

Then I updated the software on the Buds2 to RS10XXUDAWF4 and now I cannot stream data between the ear buds and the gateway. I see errors in the log that seem significant: "Unable to find ASE Control Point" then "No sinks found, Disconnected." Does anyone know what that means or what changed on the new Buds2 Pro software?

Parents
  • Hi Ed

    Would you happen to have an Ellisys Bluetooth sniffer (or something comparable) so you can see what is happening over the air? 

    Otherwise it is hard to know what Samsung might have done on their side, to make it non functional between one update and the next. 

    I will check internally if someone in the audio team happen to have the same airbuds, if so we can do some testing on our side to try and verify your findings. 

    Best regards
    Torbjørn

  • So, thanks again for your response earlier Torbjorn, I wasn't able to get a sniffer going but now I'm looking at this again since Samsung came out with a new software update for the Galaxy Buds2 Pro ear buds. I updated to R510XXU0AWI2 today and now connections to the nRF5340 audio dk gateway are very stable. However, when I try to stream to the buds from the gateway I2S line in the audio is choppy. If I interrupt the streaming by tapping the ear buds to pause and then tap again to un-pause, the audio is very clear and stable for a couple of seconds and then it starts to get choppy again. This behavior is very repeatable.

    I configured the gateway for bidirectional mode but, for now, I'm just trying to make input from the line in work clearly. Do you, or does anyone, have any suggestions as to what I should try now. I feel like I'm so close to a working demo!

Reply
  • So, thanks again for your response earlier Torbjorn, I wasn't able to get a sniffer going but now I'm looking at this again since Samsung came out with a new software update for the Galaxy Buds2 Pro ear buds. I updated to R510XXU0AWI2 today and now connections to the nRF5340 audio dk gateway are very stable. However, when I try to stream to the buds from the gateway I2S line in the audio is choppy. If I interrupt the streaming by tapping the ear buds to pause and then tap again to un-pause, the audio is very clear and stable for a couple of seconds and then it starts to get choppy again. This behavior is very repeatable.

    I configured the gateway for bidirectional mode but, for now, I'm just trying to make input from the line in work clearly. Do you, or does anyone, have any suggestions as to what I should try now. I feel like I'm so close to a working demo!

Children
  • Hi Ed

    Good to hear you are having some progress at least Slight smile

    Can you let me know which version of the SDK and the Bluetooth controller you are using? 

    Did you make any modifications to the application, or is it just the standard Audio application with some configuration changes? 

    Would you be able to share the application log from the gateway when the issue appears? 

    Best regards
    Torbjørn

  • Thanks for responding. I'm getting back to this problem now. I'm using nRF Connect SDK 2.4.2. The controller version is 3349 and my hardware is 1.0.0. I'm using the standard nrf5340_audio application with the following additions at the end of prj.conf:

    CONFIG_AUDIO_SOURCE_I2S=y
    CONFIG_BLE_ACL_CONN_INTERVAL=36
    CONFIG_BT_AUDIO_PRESENTATION_DELAY_US=40000
    CONFIG_BT_AUDIO_MAX_TRANSPORT_LATENCY_MS=100
    # CONFIG_BT_DEVICE_NAME="EarFun Air Pro 3"
    CONFIG_BT_DEVICE_NAME="Galaxy Buds2 Pro"
    CONFIG_BT_LOG_SNIFFER_INFO=y
    CONFIG_BT_BONDABLE=n
    CONFIG_STREAM_BIDIRECTIONAL=y
    I have fiddled with some of the parameters above but nothing I've tried works better than these values.
    Here is the RTT log. While collecting the log I booted the dk, connected the ear buds then listened to the choppy audio, periodically pausing and unpausing the audio by tapping the ear buds.
    00> rtt:~$ *** Booting Zephyr OS build v3.3.99-ncs1-1 ***
    00> rtt:~$ GW [00:00:00.354,156] <inf> fw_info:
    00> nRF5340 Audio nRF5340 Audio DK cpuapp
    00> NCS base version: 2.4.2
    00> Cmake run : Tue Oct 17 01:25:35 2023
    00> rtt:~$ GW [00:00:00.354,156] <inf> fw_info: ------- DEBUG BUILD -------
    00> rtt:~$ GW [00:00:00.354,187] <inf> fw_info: Compiled for GATEWAY device
    00> rtt:~$ GW [00:00:00.364,807] <inf> board_version: Compatible board/HW version found: 1.0.0
    00> rtt:~$ GW [00:00:00.402,221] <wrn> bt_hci_core: Controller to host flow control not supported
    00> rtt:~$ GW [00:00:00.405,334] <inf> bt_hci_core: No ID address. App must call settings_load()
    00> rtt:~$ GW [00:00:00.405,395] <inf> ble: MAC: 00:00:00:00:00:00 (public)
    00> rtt:~$ GW [00:00:00.405,975] <inf> ble: Controller version: 3349
    00> rtt:~$ GW [00:00:00.408,081] <inf> bt_hci_core: Identity: D8:DC:CB:11:DD:10 (random)
    00> rtt:~$ GW [00:00:00.408,111] <inf> bt_hci_core: IRK: 0x0e2c831c2be4d7fb3d399f94529c06a0
    00> rtt:~$ GW [00:00:00.408,142] <inf> bt_hci_core: HCI: version 5.2 (0x0b) revision 0x0d15, manufacturer 0x07e8
    00> rtt:~$ GW [00:00:00.408,142] <inf> bt_hci_core: LMP: version 5.2 (0x0b) subver 0x0d15
    00> rtt:~$ rtt:~$ GW [00:00:00.526,550] <inf> bt_id: RPA: 53:F3:AA:B2:17:26
    00> rtt:~$ GW [00:00:00.527,313] <inf> cis_gateway: Scanning successfully started
    00> rtt:~$ rtt:~$ GW [00:00:18.105,773] <inf> cis_gateway: Connected: 65:EA:A0:0E:15:D1 (random)
    00> rtt:~$ rtt:~$ GW [00:00:19.419,067] <inf> bt_smp: SC LTK: 0x4860fa59a51d9aa4f96c25e441d0f7ea (No bonding)
    00> rtt:~$ GW [00:00:20.229,431] <inf> cis_gateway: Scanning successfully started
    00> rtt:~$ rtt:~$ GW [00:00:20.633,117] <inf> cis_gateway: Connected: 65:AA:27:14:5C:A2 (random)
    00> rtt:~$ GW [00:00:21.308,868] <wrn> cis_gateway: More than one sink endpoints found, ep idx 0 is used by default
    00> rtt:~$ rtt:~$ GW [00:00:22.028,106] <inf> bt_smp: SC LTK: 0xae0359873bd1582933c6b0199c54efce (No bonding)
    00> rtt:~$ GW [00:00:22.839,965] <inf> cis_gateway: RIGHT sink stream configured
    00> rtt:~$ rtt:~$ GW [00:00:23.438,751] <inf> ble_audio_services: VCS discover finished
    00> rtt:~$ GW [00:00:23.528,137] <inf> cis_gateway: All headsets connected
    00> rtt:~$ rtt:~$ GW [00:00:25.657,958] <wrn> cis_gateway: More than one sink endpoints found, ep idx 0 is used by default
    00> rtt:~$ rtt:~$ GW [00:00:27.609,069] <inf> cis_gateway: LEFT sink stream configured
    00> rtt:~$ GW [00:00:28.387,847] <inf> ble_audio_services: VCS discover finished
    00> rtt:~$ rtt:~$ GW [00:00:28.719,573] <inf> cis_gateway: RIGHT source stream configured
    00> rtt:~$ GW [00:00:28.839,477] <inf> cis_gateway: Enable stream 0x20002fc4
    00> rtt:~$ GW [00:00:28.839,996] <inf> cis_gateway: Enable stream 0x20002da4
    00> rtt:~$ GW [00:00:29.228,942] <inf> cis_gateway: Stream 0x20002da4 started
    00> rtt:~$ GW [00:00:29.255,493] <wrn> bt_hci_core: opcode 0x2061 status 0x0c
    00> rtt:~$ GW [00:00:29.649,414] <inf> cis_gateway: Stream 0x20002fc4 started
    00> rtt:~$ rtt:~$ GW [00:00:33.158,660] <inf> cis_gateway: LEFT source stream configured
    00> rtt:~$ GW [00:00:33.338,134] <inf> cis_gateway: Enable stream 0x20002b04
    00> rtt:~$ GW [00:00:33.338,623] <inf> cis_gateway: Enable stream 0x200028e4
    00> rtt:~$ GW [00:00:33.668,060] <inf> cis_gateway: Stream 0x200028e4 started
    00> rtt:~$ GW [00:00:33.676,055] <wrn> bt_hci_core: opcode 0x2061 status 0x0c
    00> rtt:~$ GW [00:00:34.028,564] <inf> cis_gateway: Stream 0x20002b04 started
    00> rtt:~$ GW [00:00:34.241,180] <wrn> audio_datapath: In I2S TX underrun condition, total: 5000
    00> rtt:~$ GW [00:00:34.246,215] <inf> audio_datapath: Drft comp state: CALIB
    00> rtt:~$ GW [00:00:34.248,199] <wrn> audio_datapath: Data received, total underruns: 5006
    00> rtt:~$ GW [00:00:34.346,191] <inf> audio_datapath: Drft comp state: OFFSET
    00> rtt:~$ rtt:~$ GW [00:00:34.659,332] <wrn> audio_datapath: Data received, total underruns: 5007
    00> rtt:~$ GW [00:00:34.698,364] <inf> audio_datapath: Drft comp state: LOCKED
    00> rtt:~$ GW [00:00:34.705,444] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:00:34.815,429] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:00:34.955,749] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:00:34.965,850] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:00:35.076,110] <inf> audio_datapath: Pres comp state: LOCKED
    00> rtt:~$ rtt:~$ GW [00:00:41.061,553] <wrn> audio_datapath: In I2S TX underrun condition, total: 10000
    00> rtt:~$ GW [00:00:41.856,109] <inf> audio_datapath: sdu_ref_us not from consecutive frames (diff: 5830000 us)
    00> rtt:~$ GW [00:00:41.856,109] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:00:41.858,581] <wrn> audio_datapath: Data received, total underruns: 10796
    00> rtt:~$ GW [00:00:41.869,598] <wrn> audio_datapath: Data received, total underruns: 10797
    00> rtt:~$ GW [00:00:41.986,053] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:00:41.996,429] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:00:42.105,957] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:00:42.246,063] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:00:42.256,256] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:00:42.348,815] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ rtt:~$ GW [00:00:46.629,730] <inf> cis_gateway: Stream 0x20002da4 started
    00> rtt:~$ GW [00:00:46.643,646] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:00:46.646,118] <wrn> audio_datapath: Data received, total underruns: 8
    00> rtt:~$ GW [00:00:46.667,114] <wrn> audio_datapath: Data received, total underruns: 9
    00> rtt:~$ GW [00:00:46.686,157] <inf> audio_datapath: Drft comp state: INIT
    00> rtt:~$ GW [00:00:46.687,133] <inf> audio_datapath: Drft comp state: CALIB
    00> rtt:~$ GW [00:00:46.693,725] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:00:46.718,505] <inf> cis_gateway: Stream 0x200028e4 started
    00> rtt:~$ GW [00:00:46.786,956] <inf> audio_datapath: Drft comp state: OFFSET
    00> rtt:~$ GW [00:00:47.113,800] <inf> audio_datapath: Drft comp state: LOCKED
    00> rtt:~$ GW [00:00:47.123,352] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:00:47.233,032] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:00:47.373,382] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:00:47.383,270] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:00:47.493,164] <inf> audio_datapath: Pres comp state: LOCKED
    00> rtt:~$ rtt:~$ GW [00:00:53.920,013] <wrn> audio_datapath: In I2S TX underrun condition, total: 5000
    00> rtt:~$ GW [00:00:54.353,698] <inf> audio_datapath: sdu_ref_us not from consecutive frames (diff: 5470000 us)
    00> rtt:~$ GW [00:00:54.353,729] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:00:54.357,025] <wrn> audio_datapath: Data received, total underruns: 5436
    00> rtt:~$ GW [00:00:54.483,551] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:00:54.493,377] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:00:54.603,057] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:00:54.745,330] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ rtt:~$ GW [00:00:59.020,141] <inf> cis_gateway: Stream 0x20002da4 started
    00> rtt:~$ GW [00:00:59.035,186] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:00:59.037,536] <wrn> audio_datapath: Data received, total underruns: 9
    00> rtt:~$ GW [00:00:59.048,919] <inf> cis_gateway: Stream 0x200028e4 started
    00> rtt:~$ GW [00:00:59.095,581] <inf> audio_datapath: Drft comp state: INIT
    00> rtt:~$ GW [00:00:59.096,557] <inf> audio_datapath: Drft comp state: CALIB
    00> rtt:~$ GW [00:00:59.104,949] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:00:59.196,411] <inf> audio_datapath: Drft comp state: OFFSET
    00> rtt:~$ GW [00:00:59.522,247] <inf> audio_datapath: Drft comp state: LOCKED
    00> rtt:~$ GW [00:00:59.524,414] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:00:59.634,582] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:00:59.774,597] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:00:59.784,545] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:00:59.894,622] <inf> audio_datapath: Pres comp state: LOCKED
    00> rtt:~$ rtt:~$ GW [00:01:05.175,201] <inf> audio_datapath: sdu_ref_us not from consecutive frames (diff: 3910000 us)
    00> rtt:~$ GW [00:01:05.175,231] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:01:05.178,375] <wrn> audio_datapath: Data received, total underruns: 3877
    00> rtt:~$ GW [00:01:05.304,748] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:01:05.314,788] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:05.424,865] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:01:05.564,727] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:01:05.574,798] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:05.636,260] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ rtt:~$ GW [00:01:09.040,466] <inf> cis_gateway: Stream 0x20002da4 started
    00> rtt:~$ GW [00:01:09.056,213] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:09.058,898] <wrn> audio_datapath: Data received, total underruns: 10
    00> rtt:~$ GW [00:01:09.069,274] <inf> cis_gateway: Stream 0x200028e4 started
    00> rtt:~$ GW [00:01:09.133,911] <inf> audio_datapath: Drft comp state: INIT
    00> rtt:~$ GW [00:01:09.134,887] <inf> audio_datapath: Drft comp state: CALIB
    00> rtt:~$ GW [00:01:09.136,322] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:01:09.234,710] <inf> audio_datapath: Drft comp state: OFFSET
    00> rtt:~$ GW [00:01:09.560,577] <inf> audio_datapath: Drft comp state: LOCKED
    00> rtt:~$ GW [00:01:09.565,734] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:09.675,750] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:01:09.815,765] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:01:09.825,897] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:09.935,699] <inf> audio_datapath: Pres comp state: LOCKED
    00> rtt:~$ rtt:~$ GW [00:01:17.169,799] <wrn> audio_datapath: In I2S TX underrun condition, total: 5000
    00> rtt:~$ rtt:~$ GW [00:01:18.596,008] <inf> audio_datapath: sdu_ref_us not from consecutive frames (diff: 6460000 us)
    00> rtt:~$ GW [00:01:18.596,038] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:01:18.598,846] <wrn> audio_datapath: Data received, total underruns: 6428
    00> rtt:~$ GW [00:01:18.726,104] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:01:18.736,602] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:18.776,916] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ rtt:~$ GW [00:01:22.960,937] <inf> cis_gateway: Stream 0x20002da4 started
    00> rtt:~$ GW [00:01:22.976,867] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:22.979,339] <wrn> audio_datapath: Data received, total underruns: 10
    00> rtt:~$ GW [00:01:22.990,264] <inf> cis_gateway: Stream 0x200028e4 started
    00> rtt:~$ GW [00:01:23.051,361] <inf> audio_datapath: Drft comp state: INIT
    00> rtt:~$ GW [00:01:23.052,337] <inf> audio_datapath: Drft comp state: CALIB
    00> rtt:~$ GW [00:01:23.056,823] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:01:23.110,229] <wrn> audio_datapath: Data received, total underruns: 11
    00> rtt:~$ GW [00:01:23.152,191] <inf> audio_datapath: Drft comp state: OFFSET
    00> rtt:~$ GW [00:01:23.469,055] <inf> audio_datapath: Drft comp state: LOCKED
    00> rtt:~$ GW [00:01:23.476,715] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:23.586,242] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:01:23.726,654] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:01:23.736,236] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:23.847,045] <inf> audio_datapath: Pres comp state: LOCKED
    00> rtt:~$ rtt:~$ GW [00:01:31.089,263] <wrn> audio_datapath: In I2S TX underrun condition, total: 5000
    00> rtt:~$ rtt:~$ GW [00:01:33.476,959] <inf> audio_datapath: sdu_ref_us not from consecutive frames (diff: 7420000 us)
    00> rtt:~$ GW [00:01:33.476,989] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:01:33.479,339] <wrn> audio_datapath: Data received, total underruns: 7389
    00> rtt:~$ GW [00:01:33.500,366] <wrn> audio_datapath: Data received, total underruns: 7390
    00> rtt:~$ GW [00:01:33.607,391] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:01:33.616,699] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:33.726,715] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:01:33.866,546] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:01:33.876,556] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:33.919,464] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ rtt:~$ GW [00:01:42.070,526] <inf> cis_gateway: Stream 0x200028e4 started
    00> rtt:~$ GW [00:01:42.084,777] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:42.087,066] <wrn> audio_datapath: Data received, total underruns: 8
    00> rtt:~$ GW [00:01:42.101,593] <inf> cis_gateway: Stream 0x20002da4 started
    00> rtt:~$ GW [00:01:42.108,093] <wrn> audio_datapath: Data received, total underruns: 9
    00> rtt:~$ GW [00:01:42.127,105] <inf> audio_datapath: Drft comp state: INIT
    00> rtt:~$ GW [00:01:42.128,112] <inf> audio_datapath: Drft comp state: CALIB
    00> rtt:~$ GW [00:01:42.134,490] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:01:42.227,874] <inf> audio_datapath: Drft comp state: OFFSET
    00> rtt:~$ GW [00:01:42.571,685] <inf> audio_datapath: Drft comp state: LOCKED
    00> rtt:~$ GW [00:01:42.573,913] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:42.684,722] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:01:42.824,615] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:01:42.833,953] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:01:42.944,274] <inf> audio_datapath: Pres comp state: LOCKED
    00> rtt:~$ rtt:~$ GW [00:01:50.181,915] <wrn> audio_datapath: In I2S TX underrun condition, total: 5000
    00> rtt:~$ rtt:~$ GW [00:01:55.182,098] <wrn> audio_datapath: In I2S TX underrun condition, total: 10000
    00> rtt:~$ rtt:~$ GW [00:02:00.182,250] <wrn> audio_datapath: In I2S TX underrun condition, total: 15000
    00> rtt:~$ rtt:~$ GW [00:02:01.358,123] <inf> audio_datapath: sdu_ref_us not from consecutive frames (diff: 16210008 us)
    00> rtt:~$ GW [00:02:01.358,123] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:02:01.359,313] <wrn> audio_datapath: Data received, total underruns: 16176
    00> rtt:~$ rtt:~$ GW [00:02:05.192,443] <wrn> audio_datapath: In I2S TX underrun condition, total: 20000
    00> rtt:~$ rtt:~$ GW [00:02:10.192,596] <wrn> audio_datapath: In I2S TX underrun condition, total: 25000
    00> rtt:~$ rtt:~$ GW [00:02:15.192,779] <wrn> audio_datapath: In I2S TX underrun condition, total: 30000
    00> rtt:~$ rtt:~$ GW [00:02:20.192,962] <wrn> audio_datapath: In I2S TX underrun condition, total: 35000
    00> rtt:~$ rtt:~$ GW [00:02:22.725,524] <inf> audio_datapath: sdu_ref_us not from consecutive frames (diff: 21369992 us)
    00> rtt:~$ GW [00:02:22.729,034] <wrn> audio_datapath: Data received, total underruns: 37535
    00> rtt:~$ GW [00:02:22.845,367] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:02:22.855,468] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:02:22.965,576] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:02:23.105,560] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:02:23.115,295] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:02:23.215,850] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ rtt:~$ GW [00:02:28.303,192] <inf> cis_gateway: Stream 0x20002da4 started
    00> rtt:~$ GW [00:02:28.320,220] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:02:28.322,601] <wrn> audio_datapath: Data received, total underruns: 11
    00> rtt:~$ GW [00:02:28.331,970] <inf> cis_gateway: Stream 0x200028e4 started
    00> rtt:~$ GW [00:02:28.367,614] <inf> audio_datapath: Drft comp state: INIT
    00> rtt:~$ GW [00:02:28.368,621] <inf> audio_datapath: Drft comp state: CALIB
    00> rtt:~$ GW [00:02:28.370,178] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:02:28.403,533] <wrn> audio_datapath: Data received, total underruns: 12
    00> rtt:~$ GW [00:02:28.468,444] <inf> audio_datapath: Drft comp state: OFFSET
    00> rtt:~$ GW [00:02:28.802,276] <inf> audio_datapath: Drft comp state: LOCKED
    00> rtt:~$ GW [00:02:28.809,967] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:02:28.919,708] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:02:29.059,844] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:02:29.069,427] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:02:29.179,656] <inf> audio_datapath: Pres comp state: LOCKED
    00> rtt:~$ rtt:~$ GW [00:02:36.430,480] <wrn> audio_datapath: In I2S TX underrun condition, total: 5000
    00> rtt:~$ rtt:~$ GW [00:02:41.430,664] <wrn> audio_datapath: In I2S TX underrun condition, total: 10000
    00> rtt:~$ GW [00:02:42.170,135] <inf> audio_datapath: sdu_ref_us not from consecutive frames (diff: 10770000 us)
    00> rtt:~$ GW [00:02:42.170,166] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:02:42.172,698] <wrn> audio_datapath: Data received, total underruns: 10741
    00> rtt:~$ GW [00:02:42.183,685] <wrn> audio_datapath: Data received, total underruns: 10742
    00> rtt:~$ GW [00:02:42.300,262] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:02:42.310,333] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:02:42.420,349] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:02:42.560,180] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:02:42.570,190] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:02:42.592,681] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ rtt:~$ GW [00:02:45.073,730] <inf> cis_gateway: Stream 0x20002da4 started
    00> rtt:~$ GW [00:02:45.088,684] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:02:45.091,156] <wrn> audio_datapath: Data received, total underruns: 9
    00> rtt:~$ GW [00:02:45.091,186] <inf> audio_datapath: Drft comp state: INIT
    00> rtt:~$ GW [00:02:45.092,163] <inf> audio_datapath: Drft comp state: CALIB
    00> rtt:~$ GW [00:02:45.098,785] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:02:45.102,539] <inf> cis_gateway: Stream 0x200028e4 started
    00> rtt:~$ GW [00:02:45.112,121] <wrn> audio_datapath: Data received, total underruns: 10
    00> rtt:~$ GW [00:02:45.191,986] <inf> audio_datapath: Drft comp state: OFFSET
    00> rtt:~$ GW [00:02:45.517,822] <inf> audio_datapath: Drft comp state: LOCKED
    00> rtt:~$ GW [00:02:45.518,157] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:02:45.628,204] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:02:45.767,913] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:02:45.777,832] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:02:45.888,122] <inf> audio_datapath: Pres comp state: LOCKED
    00> rtt:~$ rtt:~$ GW [00:02:48.187,988] <inf> audio_datapath: sdu_ref_us not from consecutive frames (diff: 20000 us)
    00> rtt:~$ GW [00:02:48.188,018] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ rtt:~$ GW [00:02:53.213,043] <wrn> audio_datapath: In I2S TX underrun condition, total: 5000
    00> rtt:~$ rtt:~$ GW [00:02:58.213,226] <wrn> audio_datapath: In I2S TX underrun condition, total: 10000
  • After posting my results above, I briefly tried using SDK version 2.5.0 of the app. It didn't work as well as 2.4.2. I could only get audio from one ear bud and the log was spewing "Data size mismatch" warning messages.

    00> rtt:~$ *** Booting nRF Connect SDK v2.5.0 ***
    00> rtt:~$ GW [00:00:00.393,951] <inf> fw_info:
    00> nRF5340 Audio nRF5340 Audio DK cpuapp
    00> NCS base version: 2.5.0
    00> Cmake run : Sun Oct 29 12:24:25 2023
    00> rtt:~$ GW [00:00:00.393,951] <inf> fw_info: ------- DEBUG BUILD -------
    00> rtt:~$ GW [00:00:00.393,951] <inf> fw_info: Compiled for GATEWAY device
    00> rtt:~$ GW [00:00:00.404,602] <inf> board_version: Compatible board/HW version found: 1.0.0
    00> rtt:~$ GW [00:00:00.447,448] <inf> bt_mgmt_ctlr_cfg: Controller: LL_ACS_NRF53. Version: 3393
    00> rtt:~$ GW [00:00:00.449,371] <inf> bt_mgmt: Local identity addr: FD:31:C4:B9:84:DD (random)
    00> rtt:~$ GW [00:00:00.575,500] <inf> bt_mgmt_scan: Local addr: 6E:BA:8B:D8:56:5D (random). May time out. Updates not printed
    00> rtt:~$ GW [00:00:00.575,500] <inf> bt_mgmt_scan: Scanning successfully started
    00> rtt:~$ rtt:~$ GW [00:00:20.460,235] <inf> bt_mgmt_scan: Creating connection to device: 73:AA:4E:4F:0C:00 (random)
    00> rtt:~$ GW [00:00:20.643,005] <inf> bt_mgmt: Connected: 73:AA:4E:4F:0C:00 (random)
    00> rtt:~$ GW [00:00:20.651,031] <inf> bt_mgmt_scan: Local addr: 62:75:F4:4C:57:6B (random). May time out. Updates not printed
    00> rtt:~$ GW [00:00:20.651,062] <inf> bt_mgmt_scan: Scanning successfully started
    00> rtt:~$ GW [00:00:20.651,275] <inf> streamctrl_unicast_client: Device connected
    00> rtt:~$ GW [00:00:20.665,679] <inf> bt_mgmt_scan: Creating connection to device: 42:05:70:44:DA:1F (random)
    00> rtt:~$ GW [00:00:20.862,670] <inf> bt_mgmt: Connected: 42:05:70:44:DA:1F (random)
    00> rtt:~$ GW [00:00:20.862,884] <inf> streamctrl_unicast_client: Device connected
    00> rtt:~$ rtt:~$ GW [00:00:22.053,833] <inf> bt_smp: SC LTK: 0x2a38cdb73d019dca2eed913985263a75 (No bonding)
    00> rtt:~$ GW [00:00:22.054,779] <inf> streamctrl_unicast_client: Security changed
    00> rtt:~$ GW [00:00:22.121,337] <inf> bt_smp: SC LTK: 0xfdd854bafe8221a6dc87cd3fae543603 (No bonding)
    00> rtt:~$ GW [00:00:22.122,467] <inf> streamctrl_unicast_client: Security changed
    00> rtt:~$ GW [00:00:22.444,091] <inf> bt_rend_vol: VCS discover finished
    00> rtt:~$ GW [00:00:22.541,595] <inf> bt_rend_vol: VCS discover finished
    00> rtt:~$ rtt:~$ GW [00:00:26.493,835] <wrn> unicast_client: More than one sink endpoint found, idx 0 is used by default
    00> rtt:~$ GW [00:00:26.621,368] <wrn> unicast_client: More than one sink endpoint found, idx 0 is used by default
    00> rtt:~$ rtt:~$ GW [00:00:32.855,316] <inf> unicast_client: RIGHT sink stream configured
    00> rtt:~$ GW [00:00:32.884,735] <inf> unicast_client: RIGHT source stream configured
    00> rtt:~$ GW [00:00:32.974,670] <inf> unicast_client: Enable stream 0x20002e9c
    00> rtt:~$ GW [00:00:32.975,189] <inf> unicast_client: Enable stream 0x20002da8
    00> rtt:~$ GW [00:00:33.102,264] <inf> unicast_client: LEFT sink stream configured
    00> rtt:~$ GW [00:00:33.132,263] <inf> unicast_client: LEFT source stream configured
    00> rtt:~$ GW [00:00:33.222,198] <inf> unicast_client: Enable stream 0x20002c2c
    00> rtt:~$ GW [00:00:33.222,686] <inf> unicast_client: Enable stream 0x20002b38
    00> rtt:~$ GW [00:00:33.334,167] <inf> unicast_client: Stream 0x20002da8 started
    00> rtt:~$ GW [00:00:33.364,624] <inf> unicast_client: Stream 0x20002e9c started
    00> rtt:~$ GW [00:00:33.366,699] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.376,708] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.386,688] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.396,697] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.406,707] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.416,687] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.426,696] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ rtt:~$ --- 13 messages dropped ---
    00> GW [00:00:33.436,706] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.446,716] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.466,705] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.476,715] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.486,694] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.496,704] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.506,713] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.516,693] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.526,702] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.566,711] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.616,699] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.676,727] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.686,706] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.696,716] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.701,690] <inf> unicast_client: Stream 0x20002c2c started
    00> rtt:~$ GW [00:00:33.703,216] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.706,726] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.713,226] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.716,705] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.723,236] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ rtt:~$ GW [00:00:33.726,715] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.734,405] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.736,724] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.743,225] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.746,704] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.753,234] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.756,713] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.763,244] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.766,723] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.773,223] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.776,733] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.783,233] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.786,712] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.793,243] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.796,722] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.803,222] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.806,732] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.813,232] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.816,711] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.823,242] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.826,721] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ rtt:~$ GW [00:00:33.833,251] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.836,730] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.843,231] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.846,740] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.854,400] <inf> audio_datapath: Drft comp state: CALIB
    00> rtt:~$ GW [00:00:33.856,719] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:33.862,365] <wrn> audio_datapath: Data received, total underruns: 515
    00> rtt:~$ GW [00:00:33.954,376] <inf> audio_datapath: Drft comp state: OFFSET
    00> rtt:~$ GW [00:00:34.375,701] <inf> audio_datapath: Drft comp state: LOCKED
    00> rtt:~$ GW [00:00:34.383,850] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:00:34.493,835] <inf> audio_datapath: Pres comp state: WAIT
    00> rtt:~$ GW [00:00:34.633,850] <inf> audio_datapath: Pres comp state: INIT
    00> rtt:~$ GW [00:00:34.643,859] <inf> audio_datapath: Pres comp state: MEAS
    00> rtt:~$ GW [00:00:34.753,845] <inf> audio_datapath: Pres comp state: LOCKED
    00> rtt:~$ rtt:~$ --- 26 messages dropped ---
    00> GW [00:00:35.796,813] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.806,823] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.816,833] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.826,812] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.836,822] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.843,322] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.846,832] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.853,332] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.856,811] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.863,342] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.866,821] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.873,321] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.876,831] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.883,331] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.886,840] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.893,341] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.913,330] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.947,967] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:35.976,837] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.006,835] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.033,325] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ rtt:~$ --- 84 messages dropped ---
    00> GW [00:00:36.063,354] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.096,832] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.116,851] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.146,850] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.166,839] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.193,359] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.216,857] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.243,347] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.266,845] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.286,865] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.316,864] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.343,353] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.363,342] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.386,871] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.413,360] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.436,859] <wrn> le_audio_rx: Data size mismatch
    00> rtt:~$ GW [00:00:36.456,878] <wrn> le_audio_rx: Data size mismatch

  • Hi slswks, I noticed you're using an old controller version.  How do you get on with 3393? https://github.com/nrfconnect/sdk-nrf/tree/main/lib/bin/bt_ll_acs_nrf53/bin

    (see a few other posts linked to the buds2 where the Nordic team have suggested this)

  • Hi Ed

    What if you disable the bidirectional mode, are you still having issues? 

    One of my colleagues did some testing with the Buds2 Pro and can not get it to work reliably in bidirectional mode either. In terms of narrowing down the issue it would be good to know if you see the same behavior. 

    Is bidirectional support a requirement for you? 

    Best regards
    Torbjørn

Related