nRF5340 Bluetooth audio USB dongle

Hello,

We would like to use your SoC nRF5340 for our future product.

We plan to use it as a USB/Bluetooth dongle.

I will try to explain it in a few lines below.

We would like to use nRF5340 as a convertor between Bluetooth audio device (e.g. cell phone) to USB sound card and vice versa.

This transfer should be bidirectional. It means that I am able to record data from e.g. cell phone and also send audio streams to cell phone.

 

In particular, I have tried to start with this:

https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/applications/nrf5340_audio/README.html

I have tried an examples for USB Audio and Audio Gateway but without success to interconned them together

As I can see from the link, there are a lot of open tasks to do in the Zephyre and SDK for nRF5430.

Also there is in the Zephyre documentation that USB Audio class is in experimental mode.

Could you please tell me which way to go, which examples could be possible combined and which setting could be used?

 

Is it possible to make this application with the current SDK and Zephyre RTOS and with nRF5430?

Or which examples could you recommend to me as a starting point?

How maximal data throughput can be achieved?

 

Thank you very much.

  • Hello,

    The short answer to this is: Yes, it is possible to make this application with the nRF5340 using the nRF5340 LE Audio reference application as its basis.
    I will elaborate further on how you should proceed to implement this tomorrow.

    Best regards,
    Karl

  • Hi David,

    Karl is on out of office, so I will provide some elaboration for you. Thank you for your patience.

    First, I want to note the difference between the nRF LE Audio platform and Zephyr:

    Nordic offers a LE Audio development platform which consists of the nRF5340 Audio reference application and a dedicated LE Audio controller developed by Packetcraft. When used together with the nRF5340 Audio DK, the features from the Feature support matrix in the application documentation is supported according to its software maturity level.
    The reference application is part of nRF Connect SDK which also contains a fork of the Zephyr Project SDK.

    In the Zephyr SDK there is also support for LE Audio development. They have several samples which demonstrates features within LE Audio. The Zephyr controller has isochronous support, but at this point does not have all the feature support that the Packetcraft controller has.

    Now I will address the functionality needs you have expressed.

    We would like to use nRF5340 as a convertor between Bluetooth audio device (e.g. cell phone) to USB sound card and vice versa.

    The Bluetooth LE part of this is supported by the nRF5340 Audio application. The USB output to the sound card is not supported by the application and you will need to implement this into the application yourself.

    This transfer should be bidirectional. It means that I am able to record data from e.g. cell phone and also send audio streams to cell phone.

    The nRF5340 Audio application has support for a CIS bidirectional mode which can be enabled in the project configuration file.

    I have tried an examples for USB Audio and Audio Gateway but without success to interconned them together

    Which examples are you referring to? Please share the full name, link to documentation or source code, or the paths from your SDK installation folder to the project folders.

    Could you please tell me which way to go, which examples could be possible combined and which setting could be used?

    Start with the nRF5340 Audio application.

    Enable bidirectional mode by including CONFIG_STREAM_BIDIRECTIONAL=y in your prj.conf or prj_release.conf.

    USB input is chosen with CONFIG_AUDIO_SOURCE_USB=y. Note that bidirectional mode has a higher CPU load than unidirectional mode because of the need for both encoding and decoding audio. If you have trouble running the application in bidirectional mode with debug options, try to run with the release configuration (prj_release.conf). Remember to add the necessary configurations to the configuration file you are using to build the project.

    USB output is not supported by the nRF5340 Audio application. You can modify the nRF5340 Audio application by adding your implementation of USB output.

    How maximal data throughput can be achieved?

    This will depend on your other criteria for the audio. Please elaborate on what is important for your audio so I have something to build an answer on.

    Best regards,

    Maria

  • Hello Maria, 

    Thank you very much for your response and I would like to apologize to you for the late response. It was caused by my holidays.

    The Bluetooth LE part of this is supported by the nRF5340 Audio application. The USB output to the sound card is not supported by the application and you will need to implement this into the application yourself.

    It means that there is no possibility in the current SDK or Zephyre to implement bidirectional emalution of the USB sound card? Or only one direction (output) is possible to implement and input is not? Will there be a possibility of implementing it or will some elegant way be provided by NRF for implementation of it?

    The nRF5340 Audio application has support for a CIS bidirectional mode which can be enabled in the project configuration file.

    Thank you very much for it!

    I have tried an examples for USB Audio and Audio Gateway but without success to interconned them together

    I have tried the following examples: 

    nrf5340_audio and usb_audio from sample folder. 

    For me, it was possible to detect USB on a PC. I have tried, for example, to try to change the name of the USB device in prj.conf (CONFIG_USB_DEVICE_PRODUCT="SAW Audio") but without any success. 

    Note that for testing I am using the board PCA10095. To be honest, I am a little bit lost about how to combine them together and configure it properly in KCONFIG. 

    How maximal data throughput can be achieved?

    I would like to achieve 48 kHz/16 bit stereo audio. 

    Thank you very much.
    David.

  • Hi David,

    SAWDavid said:
    Thank you very much for your response and I would like to apologize to you for the late response. It was caused by my holidays.

    No worries, I hope you enjoyed your holidays. 

    Apologies for my late reply to you this time. We are currently in the summer holiday period in Norway, so some delays can occur. I am going on vacation this week as well, so this ticket will be transferred back to Karl.

    SAWDavid said:
    It means that there is no possibility in the current SDK or Zephyre to implement bidirectional emalution of the USB sound card?

    It means that we don't have a sample/application which demonstrates LE Audio with USB as the output method. The bidirectional part is fine as long as you can implement it over USB.

    SAWDavid said:
    Will there be a possibility of implementing it or will some elegant way be provided by NRF for implementation of it?

    It is possible to implement. I don't know if it is planned for the application, and we don't discuss roadmaps and future features on DevZone.

    SAWDavid said:

    I have tried the following examples: 

    nrf5340_audio and usb_audio from sample folder. 

    For me, it was possible to detect USB on a PC. I have tried, for example, to try to change the name of the USB device in prj.conf (CONFIG_USB_DEVICE_PRODUCT="SAW Audio") but without any success. 

    Note that for testing I am using the board PCA10095. To be honest, I am a little bit lost about how to combine them together and configure it properly in KCONFIG. 

    I will ask Karl to look into this for you.

    SAWDavid said:
    I would like to achieve 48 kHz/16 bit stereo audio. 

    You can enable 16 bit audio samples with CONFIG_AUDIO_BIT_DEPTH_16 and a sample rate of 48kHz with CONFIG_AUDIO_SAMPLE_RATE_48000_HZ.

    Best regards.

    Maria

Related