[CIS][SDK3.2.1] nRF5340 with SDK 3.2.1 periodically misses CIS events from Pixel 10 Phone - clicks in audio

I have a nRF5340 module with an application built using SDK 3.2.1.

The nRF5340 is acting as a CIS Peripheral.

It has an ACL connection and a CIS connection with a Pixel 10 Phone acting as a Central and sending audio over the CIS.

CIS configuration:

  • ISO Interval = 10 ms
  • NSE = 2
  • BN C to P = 1
  • BN P to C = 0
  • MAX PDU C to P = 40
  • PHY C to P = 2M
  • PHY P to C = 1M

Sniffer capture of the CIS_REQ packet:

The Audio received on the nRF5340 has some clicks in it.

These are some captures from the sniffer (Teledyne LeCroy Sodera) which showed that the nRF5340 periodically misses some CIS events form the Pixel 10 phone.

The nRF53 also acts as Central for a Peripheral device, on an ACL connection, with a very high Peripheral Latency, around 80.

Please see below and example of the nRF5340 not responding to a CIS event from the PIxel 10, and the Pixel 10 repeating the payload in both subevents of the CIS.

I noticed that the missed CIS events seem to happen immediately after an ACL event with the other device.

Is it possible tat the nRF5340 prioritizes the ACL over the CIS and that is why it is missing the CIS event?

Technically, it has enough time to figure out that the Peripheral did not answer and catch at least the retransmission from the second CIS subevent which is ~1.6 ms from the end of the ACL packet.

The clicks were not audible in the previous SDK we used, 3.1.1. Has the behavior changed since then?

If this is the cause of the missed CIS is it possible to configure the device to always prioritize the CIS over ACL (maybe with the exception of special situations like connection update instants)?

Parents
  • I have done more experiments on my side.

    I have disabled the Peripheral device with which the nRF3540 only has a low bandwidth ACL.

    In the following screenshots, only the ACL and CIS with the Pixel 10 Phone are active.

    Now I hear gaps in the audio and I see gaps in nRF5340 responses in the sniffer capture on both the ACL and the CIS with the Pixel 10.

    The sniffer capture shows that the nRF5340 periodically does not answer the for 3 CIS events and 1 ACL event.

    Zoom in on one of the gaps:

    What I am suspecting that the gaps in ACL and CIS events responses are caused by the nRF5340 scanning for the missing peer.

    Can you confirm this. Is there any way to make it scan between CIS and ACL events?

Reply
  • I have done more experiments on my side.

    I have disabled the Peripheral device with which the nRF3540 only has a low bandwidth ACL.

    In the following screenshots, only the ACL and CIS with the Pixel 10 Phone are active.

    Now I hear gaps in the audio and I see gaps in nRF5340 responses in the sniffer capture on both the ACL and the CIS with the Pixel 10.

    The sniffer capture shows that the nRF5340 periodically does not answer the for 3 CIS events and 1 ACL event.

    Zoom in on one of the gaps:

    What I am suspecting that the gaps in ACL and CIS events responses are caused by the nRF5340 scanning for the missing peer.

    Can you confirm this. Is there any way to make it scan between CIS and ACL events?

Children
No Data
Related