nRF5340 Audio DKs losing sync in external I2S loopback

I am trying to send / receive bi-directional audio between two nRF5340 Audio DKs with an external I2S bus on the gateway DK.  I am modifying the nrf5340_audio example from SDK V2.6.0.

I have added CONFIG_STREAM_BIDIRECTIONAL=y and CONFIG_AUDIO_SOURCE_I2S=y to the gateway and headset apps.  I have also set gpio pin 21 in unicast_client main.c to enable external I2S in the gateway and tied I2S DIN and DOUT together on the gateway external I2S to loop back the audio.  I am sending audio from the headset DK to the gateway DK and looping it back to the headset DK using the external I2S bus on the gateway DK

Audio loops back fine until I try to disable the gateway DKs on-board hardware codec.  When I disable the hardware codec I get loud ticks in the loop-back audio at the headset DK.  I think the audio stream between the two DKs is losing sync.  Since I am not using the gateway on-board hardware codec, I am not sure why this should affect the synchronization of the audio streams.  How can I correct this?

Parents
  • Hi,

    I will have to discuss this with the Audio team, but in the meanwhile have you seen this part of the documentation? https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/applications/nrf5340_audio/doc/firmware_architecture.html#synchronization_module_overview I think this should answer most of your questions, but let me know if things are still unclear after this

    Kind regards,
    Andreas

  • Thanks for the reply.   I am running external I2S bus and not using the hardware codec on the unicast_client.  My guess is that frequency drift compensation stops working when I disable the hardware codec on the unicast_client.

  • Thank you very much for your assistance.

    Audio synchronization appears to work when running external I2S with debug code & logging.  It just doesn't quite sync when running external I2S with release mode code.

    I would like to try the nrf5340_audio example from SDK v2.7.0.  However buildprog.py in 2.7.0 fails to program the DK - error message is "NET core hex not found.  Built as APP core child image.  I suspect this has to do with sysbuild changes.  How do I build / program the DK with the new version of the nrf5340 Audio App?

  • Could you clarify if you've copied the nrf5340 audio project to another path when using 2.7.0?

    And yes, apparently there is an issue related to sysbuild, there's a PR to fix it here: https://github.com/nrfconnect/sdk-nrf/pull/16449

    Kind regards,
    Andreas

  • Yes, I have made a clean copy of the nrf5340_audio example from SDK 2.7.0 in a new directory.

    After modifying buildprog.py I get a new error message from sysbuild:

    CMake Error at C:/nordicsemi/v2.7.0/zephyr/cmake/modules/boards.cmake:320 (message):
      Board qualifiers `/nrf5340/cpuapp--sysbuild` for board `nrf5340_audio_dk`
      not found.  Please specify a valid board target.

      Valid board targets for nrf5340_audio_dk are:

      nrf5340_audio_dk/nrf5340/cpuapp

      nrf5340_audio_dk/nrf5340/cpuapp/ns

      nrf5340_audio_dk/nrf5340/cpunet

    How do I add board targets for sysbuild?

  • Sorry - please ignore CMake Error above.  New App.  I forgot to add build configuration.

    nrf5340 Audio example builds, programs and runs.

    Thanks for all your help

  • Happy to hear that you were able to resolve it! 

    I'll mark this case as verified and since I'll be out of office for holidays this week I would recommend that you create a new case and refer to this one in case you have any additional follow ups after I leave so that you can get a faster follow up from us! :) 

    Kind regards,
    Andreas

Reply
  • Happy to hear that you were able to resolve it! 

    I'll mark this case as verified and since I'll be out of office for holidays this week I would recommend that you create a new case and refer to this one in case you have any additional follow ups after I leave so that you can get a faster follow up from us! :) 

    Kind regards,
    Andreas

Children
No Data