[nRF5340 Audio DK] Inquiry About CPU Load for CIS Bidirectional Streaming with USB Audio Source

Hello,

We are currently evaluating BLE Gateway (CIS, BIS) development using the nRF5340 Audio DK.

We would like to ask whether bidirectional CIS streaming is officially supported when using the USB audio source.

In the documentation below, we found a statement mentioning CPU load concerns for bidirectional streaming when USB audio source is used:
Nordic Semiconductor Documentation

"The audio source selection affects the firmware architecture and available features. USB audio source is limited to unidirectional streams due to CPU load considerations, while I2S supports bidirectional communication."

Could you please explain in more detail what kind of CPU load limitations or concerns are being referred to?

Also, are there any plans to improve or address these limitations in future software and/or hardware updates?

Currently, we have tested a bidirectional CIS stream configuration using two nRF5340 Audio DK boards configured as:

  • CIS Gateway (client)
  • CIS Headset (server)

The test results showed normal operation:

  • Gateway: outputs a 1 kHz tone
  • Headset: speaker-to-microphone loopback
  • Gateway: records and confirms the received 1 kHz tone

We are currently using nRF Connect SDK v3.2.4.

We have additionally ordered one more nRF5340 Audio DK and plan to test a configuration with:

  • 1 CIS Gateway (client)
  • 2 CIS Headsets (servers)

Additionally, the Headset board currently uses the microphone as the audio input source.
Is it possible to configure the audio input source as a 3.5 mm line input instead?
We would like to perform a loopback test using 3.5 mm output and 3.5 mm input.

Thank you.

Parents
  • Hello, 

    We would like to ask whether bidirectional CIS streaming is officially supported when using the USB audio source.

    In the documentation below, we found a statement mentioning CPU load concerns for bidirectional streaming when USB audio source is used:
    Nordic Semiconductor Documentation

    "The audio source selection affects the firmware architecture and available features. USB audio source is limited to unidirectional streams due to CPU load considerations, while I2S supports bidirectional communication."

    Could you please explain in more detail what kind of CPU load limitations or concerns are being referred to?

    Bidirectional CIS with USB source is supported with some adjustments. USB supports 48kHz sample rate, which needs -- as a rule-of-thumb -- around 30% of the CPU to encode. Decoding takes around half of the encoding load (normally a bit more than half). If you are encoding at another sample rate than 48kHz, the sample rate converter is active, which takes up more of the CPU. Stereo encoding/decoding will also increase the CPU load. So, for example when using sample rate and encoding rate of 48kHz the CPU load for encoding and decoding is ~46% CPU load. For stereo this will exceed 90% CPU load (if both directions are stereo). 

    Also, are there any plans to improve or address these limitations in future software and/or hardware updates?

    These limitations are connected to the nRF5340 SoC capabilities. Future devices supporting LE Audio may have improvements here. If you have questions about future products, please contact your Regional Sales Director. 

    Additionally, the Headset board currently uses the microphone as the audio input source.
    Is it possible to configure the audio input source as a 3.5 mm line input instead?
    We would like to perform a loopback test using 3.5 mm output and 3.5 mm input.

    Yes, it is possible to modify the application such that the line-in is used as the input source for the headset. The application has code in place which sets up I2S as the source, so while there could be a bit of work to modify this, it should be possible to do so with the code base you have available. 

    Thank you for your patience while I took some time to reply to this. My apologies for the long wait. 

    Best regards,

    Maria

Reply
  • Hello, 

    We would like to ask whether bidirectional CIS streaming is officially supported when using the USB audio source.

    In the documentation below, we found a statement mentioning CPU load concerns for bidirectional streaming when USB audio source is used:
    Nordic Semiconductor Documentation

    "The audio source selection affects the firmware architecture and available features. USB audio source is limited to unidirectional streams due to CPU load considerations, while I2S supports bidirectional communication."

    Could you please explain in more detail what kind of CPU load limitations or concerns are being referred to?

    Bidirectional CIS with USB source is supported with some adjustments. USB supports 48kHz sample rate, which needs -- as a rule-of-thumb -- around 30% of the CPU to encode. Decoding takes around half of the encoding load (normally a bit more than half). If you are encoding at another sample rate than 48kHz, the sample rate converter is active, which takes up more of the CPU. Stereo encoding/decoding will also increase the CPU load. So, for example when using sample rate and encoding rate of 48kHz the CPU load for encoding and decoding is ~46% CPU load. For stereo this will exceed 90% CPU load (if both directions are stereo). 

    Also, are there any plans to improve or address these limitations in future software and/or hardware updates?

    These limitations are connected to the nRF5340 SoC capabilities. Future devices supporting LE Audio may have improvements here. If you have questions about future products, please contact your Regional Sales Director. 

    Additionally, the Headset board currently uses the microphone as the audio input source.
    Is it possible to configure the audio input source as a 3.5 mm line input instead?
    We would like to perform a loopback test using 3.5 mm output and 3.5 mm input.

    Yes, it is possible to modify the application such that the line-in is used as the input source for the headset. The application has code in place which sets up I2S as the source, so while there could be a bit of work to modify this, it should be possible to do so with the code base you have available. 

    Thank you for your patience while I took some time to reply to this. My apologies for the long wait. 

    Best regards,

    Maria

Children
No Data
Related