nRF5340 LE Audio: Audio quality randomly good or degraded depending on connection with Google Pixel 7

Hello,

we are currently developing a device based on the nRF5340 using LE Audio.

The device streams audio to a smartphone, where the corresponding Android application can record the incoming audio stream.

Our software is based on the nRF5340 Audio Unicast Server application from nRF Connect SDK v3.1.1.

Due to hardware constraints, the nRF5340 has to operate as an I2S slave. The external I2S source provides a sample rate of approximately 46.875 kHz, while the LE Audio/LC3 pipeline operates at 48 kHz.

To compensate for this difference, we implemented a resampling stage using the ratio 125:128, converting the incoming I2S audio to 48 kHz before passing it to the LC3 encoder.

With a Samsung Galaxy S25, the audio quality is consistently good.

With a Google Pixel 7, however, the behavior is different: after establishing the LE Audio connection, the audio quality is either good or noticeably degraded/“robotic”. Once the connection is established, the quality remains in that state for the entire connection. Reconnecting or restarting the device can result in either a good or a bad connection again.

This makes us suspect that the issue may not be caused by the resampling itself, but rather by something that is configured or initialized during LE Audio stream establishment.

Could this behavior be related to the negotiated BAP/ASE/CIS/QoS configuration, ISO timing, or another Android-specific LE Audio configuration?

Are there any known differences or issues with Pixel devices in this regard, or any LE Audio parameters/callbacks we should specifically check to determine why one connection starts in a good state while another starts in a degraded state?

Thanks in advance for your help.

Best regards,
Raphael

  • Hi Raphael

    Are you able to log/print the negotiated connection parameters and ISO timings from a good versus a bad connection? There's nothing specific that comes to mind regarding the Google Pixel 7, but this is a slighter only model, so it could be that it negotiates slightly worse connection parameters. 

    Best regards,

    Simon

  • Hi Simon,

    I added logging for the ACL connection parameters, negotiated ISO QoS and actual ISO TX timestamps.

    There is one reproducible difference between a good and a bad connection.

    GOOD connection at Source stream start:

    • ACL connection interval: 40 ms
    • ACL latency: 0
    • Supervision timeout: 5 s

    BAD connection at Source stream start:

    • ACL connection interval: 15 ms
    • ACL latency: 0
    • Supervision timeout: 5 s

    The ISO parameters are identical in both cases:

    • LC3: 16 kHz, 10 ms, 40 bytes / SDU
    • ISO interval: 10 ms
    • PHY: 2M
    • RTN: 2
    • Transport latency: 10 ms
    • Presentation delay: 5 ms

    The controller TX timestamps also look stable in both cases, with approximately 9998–10001 us between SDUs and no ISO TX buffer overruns.

    Interestingly, in the good case the ACL interval changes several times after connection establishment (15 ms → 45 ms → 15 ms → 45 ms → 40 ms), while in the bad case it remains at 15 ms until the audio stream starts.

    Is there a way to really force 40ms connection interval? I know that I can request it, however as far as I understand the Pixel still has the last word.

    Attached you can find the logs.

    Best regards,
    Raphael

    HL [00:00:01.223,876] <inf> fw_info: ------- DEBUG BUILD -------
    HL [00:00:01.223,876] <inf> fw_info: HEADSET location: Front left
    HL [00:00:01.269,256] <inf> bt_mgmt_ctlr_cfg: Controller: SoftDevice: Version 6.1 (0x0f), Revision 8297
    HL [00:00:01.269,439] <inf> bt_mgmt: Local identity addr: CF:BC:E7:9E:72:B8 (random)
    HL [00:00:01.271,636] <wrn> unicast_server: CSIP using the default SIRK, must be changed before production
    HL [00:00:01.274,536] <inf> bt_mgmt_adv: Local addr: 50:3B:D8:04:7B:57 (random)
    HL [00:00:01.274,566] <inf> bt_mgmt_adv: Adv directed to: E8:D5:2B:04:82:13 (public).
    HL [00:00:01.275,329] <inf> bt_mgmt_adv: Advertising successfully started
    HL [00:00:01.279,693] <inf> bt_mgmt: Connected: E8:D5:2B:04:82:13 (public)
    HL [00:00:01.279,724] <inf> main: Connection event. Num connections: 1
    HL [00:00:01.279,754] <inf> main: === ACL CONNECTION PARAMS ===
    HL [00:00:01.279,754] <inf> main: interval=12 units (15000 us)
    HL [00:00:01.279,754] <inf> main: latency=0
    HL [00:00:01.279,754] <inf> main: supervision_timeout=500 units (5000 ms)
    HL [00:00:01.279,907] <inf> bt_mgmt_adv: RPA (Resolvable Private Address) expired.
    HL [00:00:01.279,968] <inf> bt_mgmt_adv: Local addr: 50:3B:D8:04:7B:57 (random)
    HL [00:00:01.466,857] <inf> main: ACL PARAM UPDATE:
    HL [00:00:01.466,857] <inf> main:   interval=36 units (45000 us)
    HL [00:00:01.466,857] <inf> main:   latency=0
    HL [00:00:01.466,857] <inf> main:   supervision timeout=500 units (5000 ms)
    HL [00:00:01.781,890] <inf> main: Security changed
    HL [00:00:02.096,984] <inf> main: ACL PARAM UPDATE:
    HL [00:00:02.096,984] <inf> main:   interval=12 units (15000 us)
    HL [00:00:02.096,984] <inf> main:   latency=0
    HL [00:00:02.097,015] <inf> main:   supervision timeout=500 units (5000 ms)
    HL [00:00:02.906,768] <inf> bt_content_ctrl_media: Discovery of MCS finished
    HL [00:00:03.101,684] <inf> main: ACL PARAM UPDATE:
    HL [00:00:03.101,684] <inf> main:   interval=36 units (45000 us)
    HL [00:00:03.101,715] <inf> main:   latency=0
    HL [00:00:03.101,715] <inf> main:   supervision timeout=500 units (5000 ms)
    HL [00:00:03.401,794] <inf> bt_vol_rend: Volume = 102, mute state = 0
    HL [00:00:10.917,785] <inf> le_audio: LC3 codec config for sink:
    HL [00:00:10.917,816] <inf> le_audio:  Frequency: 16000 Hz
    HL [00:00:10.917,816] <inf> le_audio:  Duration: 10000 us
    HL [00:00:10.917,816] <inf> le_audio:  Channel allocation: 0x1
    HL [00:00:10.917,816] <inf> le_audio:  Octets per frame: 40 (32000 bps)
    HL [00:00:10.917,846] <inf> le_audio:  Frames per SDU: 1
    HL [00:00:10.917,968] <inf> le_audio: LC3 codec config for source:
    HL [00:00:10.917,968] <inf> le_audio:  Frequency: 16000 Hz
    HL [00:00:10.917,968] <inf> le_audio:  Duration: 10000 us
    HL [00:00:10.917,968] <inf> le_audio:  Channel allocation: 0x1
    HL [00:00:10.917,999] <inf> le_audio:  Octets per frame: 40 (32000 bps)
    HL [00:00:10.917,999] <inf> le_audio:  Frames per SDU: 1
    HL [00:00:11.051,757] <inf> unicast_server: === ISO QOS dir=1 ===
    HL [00:00:11.051,788] <inf> unicast_server: SDU interval: 10000 us
    HL [00:00:11.051,788] <inf> unicast_server: Framing: 0
    HL [00:00:11.051,788] <inf> unicast_server: PHY: 0x02
    HL [00:00:11.051,788] <inf> unicast_server: Max SDU: 40 bytes
    HL [00:00:11.051,788] <inf> unicast_server: RTN: 2
    HL [00:00:11.051,788] <inf> unicast_server: Transport latency: 10 ms
    HL [00:00:11.051,818] <inf> unicast_server: Presentation delay: 5000 us
    HL [00:00:11.051,879] <inf> unicast_server: === ISO QOS dir=2 ===
    HL [00:00:11.051,879] <inf> unicast_server: SDU interval: 10000 us
    HL [00:00:11.051,910] <inf> unicast_server: Framing: 0
    HL [00:00:11.051,910] <inf> unicast_server: PHY: 0x02
    HL [00:00:11.051,910] <inf> unicast_server: Max SDU: 40 bytes
    HL [00:00:11.051,910] <inf> unicast_server: RTN: 2
    HL [00:00:11.051,910] <inf> unicast_server: Transport latency: 10 ms
    HL [00:00:11.051,940] <inf> unicast_server: Presentation delay: 5000 us
    HL [00:00:11.052,459] <inf> main: Presentation delay 5000 us is set by initiator
    HL [00:00:11.052,490] <inf> main: Presentation delay 5000 us is set by initiator
    HL [00:00:11.141,448] <wrn> bt_ascs: CCID 2 is unknown
    HL [00:00:11.141,448] <wrn> bt_ascs: CCID 2 is unknown
    HL [00:00:11.501,190] <inf> main: ACL PARAM UPDATE:
    HL [00:00:11.501,190] <inf> main:   interval=32 units (40000 us)
    HL [00:00:11.501,220] <inf> main:   latency=0
    HL [00:00:11.501,220] <inf> main:   supervision timeout=500 units (5000 ms)
    HL [00:00:11.761,291] <inf> unicast_server: Stream 0x2000e8a4 started
    HL [00:00:11.761,505] <inf> main: LE audio evt streaming, dir=1
    HL [00:00:11.761,505] <inf> main: Sink ASE started - ignored for local audio pipeline
    HL [00:00:11.762,451] <wrn> le_audio_rx: Not in streaming state (1), thrown 1 packet(s)
    HL [00:00:11.796,752] <inf> unicast_server: Stream 0x2000e8cc started
    HL [00:00:11.797,027] <inf> main: LE audio evt streaming, dir=2
    HL [00:00:11.797,027] <inf> main: === SOURCE STREAM START ===
    HL [00:00:11.797,027] <inf> main: === ACL CONNECTION PARAMS ===
    HL [00:00:11.797,027] <inf> main: interval=32 units (40000 us)
    HL [00:00:11.797,058] <inf> main: latency=0
    HL [00:00:11.797,058] <inf> main: supervision_timeout=500 units (5000 ms)
    HL [00:00:11.803,527] <inf> audio_system: Encoder started
    HL [00:00:11.813,659] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:11.817,169] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=1 ctrl_seq=6 tx_ts=10583356 delta=0 us alloc=0
    HL [00:00:11.827,117] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=2 ctrl_seq=7 tx_ts=10593356 delta=10000 us alloc=0
    HL [00:00:11.837,554] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=3 ctrl_seq=8 tx_ts=10603355 delta=9999 us alloc=0
    HL [00:00:11.847,167] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=4 ctrl_seq=9 tx_ts=10613355 delta=10000 us alloc=0
    HL [00:00:11.857,208] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=5 ctrl_seq=10 tx_ts=10623355 delta=10000 us alloc=0
    HL [00:00:12.809,570] <inf> audio_system: TX cadence: 100 frames in 993 ms
    HL [00:00:12.816,162] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:12.819,488] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=101 ctrl_seq=106 tx_ts=11583295 delta=10000 us alloc=0
    HL [00:00:13.036,163] <wrn> bt_ascs: CCID 2 is unknown
    HL [00:00:13.812,408] <inf> audio_system: TX cadence: 100 frames in 994 ms
    HL [00:00:13.818,695] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:13.822,387] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=201 ctrl_seq=207 tx_ts=12593232 delta=9998 us alloc=0
    HL [00:00:14.814,666] <inf> audio_system: TX cadence: 100 frames in 993 ms
    HL [00:00:14.821,228] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:14.824,707] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=301 ctrl_seq=307 tx_ts=13593171 delta=10000 us alloc=0
    HL [00:00:15.817,230] <inf> audio_system: TX cadence: 100 frames in 994 ms
    HL [00:00:15.823,730] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:15.827,209] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=401 ctrl_seq=407 tx_ts=14593110 delta=10000 us alloc=0
    HL [00:00:16.819,732] <inf> audio_system: TX cadence: 100 frames in 993 ms
    HL [00:00:16.826,263] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:16.829,956] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=501 ctrl_seq=508 tx_ts=15603047 delta=9999 us alloc=0
    HL [00:00:17.822,418] <inf> audio_system: TX cadence: 100 frames in 994 ms
    HL [00:00:17.828,796] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:17.832,305] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=601 ctrl_seq=608 tx_ts=16602987 delta=10001 us alloc=0
    HL [00:00:18.824,829] <inf> audio_system: TX cadence: 100 frames in 993 ms
    HL [00:00:18.831,329] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:18.834,716] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=701 ctrl_seq=708 tx_ts=17602925 delta=10000 us alloc=0
    HL [00:00:19.827,331] <inf> audio_system: TX cadence: 100 frames in 994 ms
    HL [00:00:19.833,831] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:19.837,371] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=801 ctrl_seq=808 tx_ts=18602863 delta=9999 us alloc=0
    HL [00:00:20.830,474] <inf> audio_system: TX cadence: 100 frames in 994 ms
    HL [00:00:20.836,364] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:20.840,484] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=901 ctrl_seq=909 tx_ts=19612772 delta=9998 us alloc=0
    HL [00:00:21.595,581] <wrn> bt_ascs: CCID 2 is unknown
    HL [00:00:21.832,550] <inf> audio_system: TX cadence: 100 frames in 994 ms
    HL [00:00:21.838,897] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:21.842,437] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=1001 ctrl_seq=1009 tx_ts=20612693 delta=10000 us alloc=0
    HL [00:00:22.835,113] <inf> audio_system: TX cadence: 100 frames in 994 ms
    HL [00:00:22.841,430] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:22.844,879] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=1101 ctrl_seq=1109 tx_ts=21612598 delta=9999 us alloc=0
    HL [00:00:23.436,950] <inf> unicast_server: Stream 0x2000e8a4 released
    HL [00:00:23.437,316] <inf> main: LE audio evt not streaming, dir=1
    HL [00:00:23.437,347] <inf> main: LE audio evt not streaming, dir=2
    HL [00:00:23.437,347] <inf> audio_system: Encoder stopped
    HL [00:00:23.437,438] <inf> main: LE audio evt not streaming, dir=1
    HL [00:00:23.437,469] <inf> main: LE audio evt not streaming, dir=2
    HL [00:00:23.437,622] <wrn> bt_hci_core: opcode 0xfd17 status 0x0c
    HL [00:00:23.437,622] <wrn> bt_le_audio_tx: Unable to get tx sync. ret: -13 stream: 0x2000e8cc
    HL [00:00:23.437,652] <inf> main: Source already stopped
    HL [00:00:23.519,683] <inf> unicast_server: Stream 0x2000e8cc released
    HL [00:00:23.595,977] <inf> le_audio: LC3 codec config for sink:
    HL [00:00:23.595,977] <inf> le_audio:  Frequency: 48000 Hz
    HL [00:00:23.595,977] <inf> le_audio:  Duration: 10000 us
    HL [00:00:23.596,008] <inf> le_audio:  Channel allocation: 0x1
    HL [00:00:23.596,008] <inf> le_audio:  Octets per frame: 120 (96000 bps)
    HL [00:00:23.596,008] <inf> le_audio:  Frames per SDU: 1
    HL [00:00:23.675,598] <inf> unicast_server: === ISO QOS dir=1 ===
    HL [00:00:23.675,598] <inf> unicast_server: SDU interval: 10000 us
    HL [00:00:23.675,598] <inf> unicast_server: Framing: 0
    HL [00:00:23.675,598] <inf> unicast_server: PHY: 0x02
    HL [00:00:23.675,598] <inf> unicast_server: Max SDU: 120 bytes
    HL [00:00:23.675,628] <inf> unicast_server: RTN: 2
    HL [00:00:23.675,628] <inf> unicast_server: Transport latency: 10 ms
    HL [00:00:23.675,628] <inf> unicast_server: Presentation delay: 5000 us
    HL [00:00:23.676,086] <inf> main: Presentation delay 5000 us is set by initiator
    HL [00:00:24.359,191] <inf> unicast_server: Stream 0x2000e8a4 started
    HL [00:00:24.359,405] <inf> main: LE audio evt streaming, dir=1
    HL [00:00:24.359,405] <inf> main: Sink ASE started - ignored for local audio pipeline
    HL [00:00:24.955,596] <inf> main: LE audio evt not streaming, dir=1
    HL [00:00:24.956,359] <inf> main: LE audio evt not streaming, dir=1
    HL [00:00:25.038,543] <inf> unicast_server: Stream 0x2000e8a4 released
    HL [00:00:01.305,297] <inf> fw_info: ------- DEBUG BUILD -------
    HL [00:00:01.305,297] <inf> fw_info: HEADSET location: Front left
    HL [00:00:01.350,769] <inf> bt_mgmt_ctlr_cfg: Controller: SoftDevice: Version 6.1 (0x0f), Revision 8297
    HL [00:00:01.350,952] <inf> bt_mgmt: Local identity addr: CF:BC:E7:9E:72:B8 (random)
    HL [00:00:01.352,874] <wrn> unicast_server: CSIP using the default SIRK, must be changed before production
    HL [00:00:01.355,194] <inf> bt_mgmt_adv: Local addr: 72:C1:CC:4C:72:1C (random)
    HL [00:00:01.355,865] <inf> bt_mgmt_adv: Advertising successfully started
    HL [00:00:12.819,305] <inf> bt_mgmt: Connected: 7A:16:3B:E1:C6:D9 (random)
    HL [00:00:12.819,335] <inf> main: Connection event. Num connections: 1
    HL [00:00:12.819,366] <inf> main: === ACL CONNECTION PARAMS ===
    HL [00:00:12.819,366] <inf> main: interval=12 units (15000 us)
    HL [00:00:12.819,366] <inf> main: latency=0
    HL [00:00:12.819,366] <inf> main: supervision_timeout=500 units (5000 ms)
    HL [00:00:14.067,077] <inf> main: Security changed
    HL [00:00:14.116,302] <wrn> bt_csip_set_member: Could not add device to pending notification list
    HL [00:00:14.981,811] <inf> bt_content_ctrl_media: Discovery of MCS finished
    HL [00:00:16.331,787] <inf> bt_vol_rend: Volume = 102, mute state = 0
    HL [00:00:21.987,518] <inf> le_audio: LC3 codec config for sink:
    HL [00:00:21.987,518] <inf> le_audio:  Frequency: 16000 Hz
    HL [00:00:21.987,518] <inf> le_audio:  Duration: 10000 us
    HL [00:00:21.987,548] <inf> le_audio:  Channel allocation: 0x1
    HL [00:00:21.987,548] <inf> le_audio:  Octets per frame: 40 (32000 bps)
    HL [00:00:21.987,548] <inf> le_audio:  Frames per SDU: 1
    HL [00:00:21.987,670] <inf> le_audio: LC3 codec config for source:
    HL [00:00:21.987,670] <inf> le_audio:  Frequency: 16000 Hz
    HL [00:00:21.987,701] <inf> le_audio:  Duration: 10000 us
    HL [00:00:21.987,701] <inf> le_audio:  Channel allocation: 0x1
    HL [00:00:21.987,701] <inf> le_audio:  Octets per frame: 40 (32000 bps)
    HL [00:00:21.987,731] <inf> le_audio:  Frames per SDU: 1
    HL [00:00:22.046,936] <inf> unicast_server: === ISO QOS dir=1 ===
    HL [00:00:22.046,966] <inf> unicast_server: SDU interval: 10000 us
    HL [00:00:22.046,966] <inf> unicast_server: Framing: 0
    HL [00:00:22.046,966] <inf> unicast_server: PHY: 0x02
    HL [00:00:22.046,966] <inf> unicast_server: Max SDU: 40 bytes
    HL [00:00:22.046,966] <inf> unicast_server: RTN: 2
    HL [00:00:22.046,966] <inf> unicast_server: Transport latency: 10 ms
    HL [00:00:22.046,997] <inf> unicast_server: Presentation delay: 5000 us
    HL [00:00:22.047,058] <inf> unicast_server: === ISO QOS dir=2 ===
    HL [00:00:22.047,058] <inf> unicast_server: SDU interval: 10000 us
    HL [00:00:22.047,058] <inf> unicast_server: Framing: 0
    HL [00:00:22.047,088] <inf> unicast_server: PHY: 0x02
    HL [00:00:22.047,088] <inf> unicast_server: Max SDU: 40 bytes
    HL [00:00:22.047,088] <inf> unicast_server: RTN: 2
    HL [00:00:22.047,088] <inf> unicast_server: Transport latency: 10 ms
    HL [00:00:22.047,088] <inf> unicast_server: Presentation delay: 5000 us
    HL [00:00:22.047,637] <inf> main: Presentation delay 5000 us is set by initiator
    HL [00:00:22.047,668] <inf> main: Presentation delay 5000 us is set by initiator
    HL [00:00:22.076,629] <wrn> bt_ascs: CCID 2 is unknown
    HL [00:00:22.076,660] <wrn> bt_ascs: CCID 2 is unknown
    HL [00:00:22.171,508] <inf> unicast_server: Stream 0x2000e8a4 started
    HL [00:00:22.171,722] <inf> main: LE audio evt streaming, dir=1
    HL [00:00:22.171,722] <inf> main: Sink ASE started - ignored for local audio pipeline
    HL [00:00:22.172,729] <wrn> le_audio_rx: Not in streaming state (1), thrown 1 packet(s)
    HL [00:00:22.196,960] <inf> unicast_server: Stream 0x2000e8cc started
    HL [00:00:22.197,235] <inf> main: LE audio evt streaming, dir=2
    HL [00:00:22.197,235] <inf> main: === SOURCE STREAM START ===
    HL [00:00:22.197,235] <inf> main: === ACL CONNECTION PARAMS ===
    HL [00:00:22.197,235] <inf> main: interval=12 units (15000 us)
    HL [00:00:22.197,265] <inf> main: latency=0
    HL [00:00:22.197,265] <inf> main: supervision_timeout=500 units (5000 ms)
    HL [00:00:22.203,765] <inf> audio_system: Encoder started
    HL [00:00:22.213,867] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:22.217,559] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=1 ctrl_seq=5 tx_ts=20901952 delta=0 us alloc=0
    HL [00:00:22.227,508] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=2 ctrl_seq=6 tx_ts=20911951 delta=9999 us alloc=0
    HL [00:00:22.237,304] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=3 ctrl_seq=7 tx_ts=20921950 delta=9999 us alloc=0
    HL [00:00:22.247,375] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=4 ctrl_seq=8 tx_ts=20931950 delta=10000 us alloc=0
    HL [00:00:22.257,385] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=5 ctrl_seq=9 tx_ts=20941949 delta=9999 us alloc=0
    HL [00:00:23.209,747] <inf> audio_system: TX cadence: 100 frames in 993 ms
    HL [00:00:23.216,400] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:23.219,970] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=101 ctrl_seq=106 tx_ts=21911890 delta=10000 us alloc=0
    HL [00:00:23.426,269] <wrn> bt_ascs: CCID 2 is unknown
    HL [00:00:24.212,615] <inf> audio_system: TX cadence: 100 frames in 994 ms
    HL [00:00:24.218,902] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:24.222,473] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=201 ctrl_seq=206 tx_ts=22911830 delta=10000 us alloc=0
    HL [00:00:25.214,996] <inf> audio_system: TX cadence: 100 frames in 993 ms
    HL [00:00:25.221,435] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:25.225,036] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=301 ctrl_seq=306 tx_ts=23911768 delta=9999 us alloc=0
    HL [00:00:26.217,346] <inf> audio_system: TX cadence: 100 frames in 993 ms
    HL [00:00:26.223,968] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:26.227,539] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=401 ctrl_seq=406 tx_ts=24911707 delta=9999 us alloc=0
    HL [00:00:27.220,062] <inf> audio_system: TX cadence: 100 frames in 994 ms
    HL [00:00:27.226,501] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:27.230,194] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=501 ctrl_seq=507 tx_ts=25921630 delta=10000 us alloc=0
    HL [00:00:28.222,991] <inf> audio_system: TX cadence: 100 frames in 993 ms
    HL [00:00:28.229,003] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:28.232,757] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=601 ctrl_seq=607 tx_ts=26921552 delta=9999 us alloc=0
    HL [00:00:29.224,945] <inf> audio_system: TX cadence: 100 frames in 993 ms
    HL [00:00:29.231,536] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:29.234,893] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=701 ctrl_seq=707 tx_ts=27921474 delta=10000 us alloc=0
    HL [00:00:30.227,630] <inf> audio_system: TX cadence: 100 frames in 994 ms
    HL [00:00:30.234,069] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:30.237,579] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=801 ctrl_seq=807 tx_ts=28921392 delta=9998 us alloc=0
    HL [00:00:30.985,748] <wrn> bt_ascs: CCID 2 is unknown
    HL [00:00:31.230,590] <inf> audio_system: TX cadence: 100 frames in 994 ms
    HL [00:00:31.236,602] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:31.240,173] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=901 ctrl_seq=908 tx_ts=29931334 delta=9999 us alloc=0
    HL [00:00:32.232,574] <inf> audio_system: TX cadence: 100 frames in 993 ms
    HL [00:00:32.239,105] <inf> audio_system: ASRC frame: in=470  out=480  added=10
    HL [00:00:32.242,828] <inf> bt_le_audio_tx: ISO TX: handle=0x0003 app_seq=1001 ctrl_seq=1008 tx_ts=30931266 delta=10001 us alloc=0
    HL [00:00:32.847,137] <inf> unicast_server: Stream 0x2000e8a4 released
    HL [00:00:32.848,266] <inf> main: LE audio evt not streaming, dir=1
    HL [00:00:32.848,297] <inf> main: LE audio evt not streaming, dir=2
    HL [00:00:32.848,297] <inf> audio_system: Encoder stopped
    HL [00:00:32.848,327] <inf> audio_system: Partial encoder frame discarded
    HL [00:00:32.848,419] <inf> main: LE audio evt not streaming, dir=1
    HL [00:00:32.848,449] <inf> main: LE audio evt not streaming, dir=2
    HL [00:00:32.848,449] <inf> main: Source already stopped
    HL [00:00:32.910,003] <inf> unicast_server: Stream 0x2000e8cc released
    HL [00:00:32.936,157] <inf> le_audio: LC3 codec config for sink:
    HL [00:00:32.936,157] <inf> le_audio:  Frequency: 48000 Hz
    HL [00:00:32.936,157] <inf> le_audio:  Duration: 10000 us
    HL [00:00:32.936,157] <inf> le_audio:  Channel allocation: 0x1
    HL [00:00:32.936,187] <inf> le_audio:  Octets per frame: 120 (96000 bps)
    HL [00:00:32.936,187] <inf> le_audio:  Frames per SDU: 1
    HL [00:00:32.995,635] <inf> unicast_server: === ISO QOS dir=1 ===
    HL [00:00:32.995,635] <inf> unicast_server: SDU interval: 10000 us
    HL [00:00:32.995,666] <inf> unicast_server: Framing: 0
    HL [00:00:32.995,666] <inf> unicast_server: PHY: 0x02
    HL [00:00:32.995,666] <inf> unicast_server: Max SDU: 120 bytes
    HL [00:00:32.995,666] <inf> unicast_server: RTN: 2
    HL [00:00:32.995,666] <inf> unicast_server: Transport latency: 10 ms
    HL [00:00:32.995,666] <inf> unicast_server: Presentation delay: 5000 us
    HL [00:00:32.996,124] <inf> main: Presentation delay 5000 us is set by initiator
    HL [00:00:33.124,420] <inf> unicast_server: Stream 0x2000e8a4 started
    HL [00:00:33.124,633] <inf> main: LE audio evt streaming, dir=1
    HL [00:00:33.124,633] <inf> main: Sink ASE started - ignored for local audio pipeline
    HL [00:00:34.115,905] <wrn> le_audio_rx: Not in streaming state (1), thrown 101 packet(s)
    HL [00:00:34.330,810] <inf> main: LE audio evt not streaming, dir=1
    HL [00:00:34.331,542] <inf> main: LE audio evt not streaming, dir=1
    HL [00:00:34.383,728] <inf> unicast_server: Stream 0x2000e8a4 released
    
    

  • Hi

    The connection interval seems to be the limiting factor here then. What are the requested connection interval in your application? You can try to set it specifically to 40ms and that should give the Pixel 7 more of an inclination to choose that interval, but as you say, it is up to the phone in the end. 

    I guess something you can do is to implement a disconnect once you run into these bad connections where there are multiple dropped packets and reconnect.

    Best regards,

    Simon

Related