nRF5340 Audio DK Setup

Hi,

I am having issues testing the nRF5340 Audio DK, I have two dev kits and I am trying to program one with the Unicast Server and one with the Unicast Client hex files that I built, but based on the description of what is supposed to happen in the documentation describing the configuration found here and use of the device it doesn't seem like it is behaving correctly.  I have tried with just the default configuration, with I2S as the audio source, and with the Walkie Talkie Demo but the LEDs behavior are always the same.  On reset on the client the RGB LEDs turn solid green for about 2 seconds and then they turn red.  LED 2 starts by flashing while the RGB LEDs are green and then LED 3 lights up when they go red.  On the Server the LED behavior is the same except it is blue, not green.

I am using the NCS version 3.1.0 and the example code with no changes.  I can't get the buildprog.py script to work, so I am building the project from the command line.  The commands I am using to build them are:

Server:
west build --build-dir /opt/nordic/ncs/v3.1.0/nrf/applications/nrf5340_audio/build_server /opt/nordic/ncs/v3.1.0/nrf/applications/nrf5340_audio --pristine --board nrf5340_audio_dk/nrf5340/cpuapp --no-sysbuild -- -DEXTRA_CONF_FILE="./unicast_server/overlay-unicast_server.conf" -DZEPHYR_SDK_INSTALL_DIR="/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk" -DCMAKE_PREFIX_PATH="/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk/cmake"
Client:
west build --build-dir /opt/nordic/ncs/v3.1.0/nrf/applications/nrf5340_audio/build_client /opt/nordic/ncs/v3.1.0/nrf/applications/nrf5340_audio --pristine --board nrf5340_audio_dk/nrf5340/cpuapp --no-sysbuild -- -DEXTRA_CONF_FILE="./unicast_client/overlay-unicast_client.conf" -DZEPHYR_SDK_INSTALL_DIR="/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk" -DCMAKE_PREFIX_PATH="/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk/cmake"
Attached is the prj.conf file with the changes I made for the different configurations.
I don't have a lot of experience with the NCS, so I might be missing something simple.
Thanks for your help,
Jeremy
Parents
  • Hi Jeremy, 

    I am not able to download your attachment. Could you share it by using the Insert->Code feature? Just copy the contents of prj.conf and paste it into the pop-up box. 

    Regarding your issue. It seems like the gateway device (client) gets an error shortly after booting. There could be a few reasons for this. At this point I think the most likely explanation is that the network core image is not correctly functioning. We can find out what is going wrong by looking at the logs from the boards. I suspect the error is for the network core, but it is helpful to look at the appliation core log as well. When connecting to the Audio DK on the computer, three VCOM/TTY instances show up. The application core logs are viewed on the first one and the network core logs on the second. 

    If the network core image is built along the application, ipc_radio can be found in the build directory. 

    On reset on the client the RGB LEDs turn solid green for about 2 seconds and then they turn red.  LED 2 starts by flashing while the RGB LEDs are green and then LED 3 lights up when they go red.  On the Server the LED behavior is the same except it is blue, not green.

    An overview of what the LEDs on the Audio DK signal can be found in the User interface overview in the nRF5340 Audio application documentation. 

    I don't have a lot of experience with the NCS, so I might be missing something simple.

    Consider going through the nRF Connect SDK Fundamentals, Bluetooth Low Energy Fundamentals, and nRF Connect SDK Intermediate courses on DevAcademy to get more familiar with nRF Connect SDK! 

    Best regards,

    Maria

Reply
  • Hi Jeremy, 

    I am not able to download your attachment. Could you share it by using the Insert->Code feature? Just copy the contents of prj.conf and paste it into the pop-up box. 

    Regarding your issue. It seems like the gateway device (client) gets an error shortly after booting. There could be a few reasons for this. At this point I think the most likely explanation is that the network core image is not correctly functioning. We can find out what is going wrong by looking at the logs from the boards. I suspect the error is for the network core, but it is helpful to look at the appliation core log as well. When connecting to the Audio DK on the computer, three VCOM/TTY instances show up. The application core logs are viewed on the first one and the network core logs on the second. 

    If the network core image is built along the application, ipc_radio can be found in the build directory. 

    On reset on the client the RGB LEDs turn solid green for about 2 seconds and then they turn red.  LED 2 starts by flashing while the RGB LEDs are green and then LED 3 lights up when they go red.  On the Server the LED behavior is the same except it is blue, not green.

    An overview of what the LEDs on the Audio DK signal can be found in the User interface overview in the nRF5340 Audio application documentation. 

    I don't have a lot of experience with the NCS, so I might be missing something simple.

    Consider going through the nRF Connect SDK Fundamentals, Bluetooth Low Energy Fundamentals, and nRF Connect SDK Intermediate courses on DevAcademy to get more familiar with nRF Connect SDK! 

    Best regards,

    Maria

Children
  • I will take a look at those courses, thanks for the links!  Are there any courses related to working with the Nordic multicore devices?

    Here is the prj.conf file

    #
    # Copyright (c) 2022 Nordic Semiconductor ASA
    #
    # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
    #
    
    # nRF5340 Audio
    CONFIG_NRF5340_AUDIO=y
    CONFIG_SAMPLE_RATE_CONVERTER=y
    CONFIG_SAMPLE_RATE_CONVERTER_FILTER_SIMPLE=y
    
    # General
    CONFIG_DEBUG=y
    CONFIG_DEBUG_INFO=y
    CONFIG_ASSERT=y
    CONFIG_STACK_USAGE=y
    CONFIG_THREAD_RUNTIME_STATS=y
    CONFIG_STACK_SENTINEL=y
    CONFIG_INIT_STACKS=y
    CONFIG_BT=y
    CONFIG_NET_BUF_POOL_USAGE=y
    
    # Uart driver
    CONFIG_SERIAL=y
    
    # Logging
    CONFIG_LOG=y
    CONFIG_LOG_TAG_MAX_LEN=2
    CONFIG_LOG_TAG_DEFAULT="--"
    CONFIG_LOG_BACKEND_UART=y
    CONFIG_LOG_BUFFER_SIZE=4096
    CONFIG_BT_SECURITY_ERR_TO_STR=y
    
    # Use this for debugging thread usage
    #CONFIG_LOG_THREAD_ID_PREFIX=y
    
    # Console related defines
    CONFIG_CONSOLE=y
    CONFIG_RTT_CONSOLE=y
    CONFIG_UART_CONSOLE=y
    
    # Shell related defines
    CONFIG_SHELL=y
    CONFIG_KERNEL_SHELL=y
    CONFIG_USE_SEGGER_RTT=y
    ## Disable logs on RTT
    CONFIG_SHELL_RTT_INIT_LOG_LEVEL_NONE=y
    CONFIG_SHELL_BACKEND_RTT=y
    CONFIG_SHELL_BACKEND_SERIAL=n
    CONFIG_SHELL_VT100_COMMANDS=y
    CONFIG_SHELL_VT100_COLORS=y
    CONFIG_SHELL_STACK_SIZE=4096
    CONFIG_SHELL_CMD_BUFF_SIZE=128
    ## Reduce shell memory usage
    CONFIG_SHELL_WILDCARD=n
    CONFIG_SHELL_HELP_ON_WRONG_ARGUMENT_COUNT=n
    CONFIG_SHELL_STATS=n
    CONFIG_SHELL_CMDS=n
    CONFIG_SHELL_HISTORY=y
    
    # Turn off default shell commands
    CONFIG_I2C_SHELL=n
    CONFIG_HWINFO_SHELL=n
    CONFIG_CLOCK_CONTROL_NRF_SHELL=n
    CONFIG_FLASH_SHELL=n
    CONFIG_DEVICE_SHELL=n
    
    # Suppress LOG_ERR messages from sd_check_card_type. Because SPI_SDHC has no card presence method,
    # assume card is in slot. Thus error message is always shown if card is not inserted
    CONFIG_SD_LOG_LEVEL_OFF=y
    
    # Suppress LOG_INF messages from hci_core
    CONFIG_BT_HCI_CORE_LOG_LEVEL_WRN=y
    
    # BT related configs
    CONFIG_BT_ISO_TX_BUF_COUNT=3
    CONFIG_BT_BUF_ACL_TX_COUNT=3
    CONFIG_BT_ATT_TX_COUNT=12
    
    
    # CONFIG_STREAM_BIDIRECTIONAL= # Enables bidirectional communication mode for CIS streams.
    CONFIG_WALKIE_TALKIE_DEMO=y  # Enables the walkie-talkie demo functionality using bidirectional streams.
    # CONFIG_TRANSPORT_BIS= # Enables Auracast™ (broadcast) mode for working with broadcast sources and sinks.
    # CONFIG_BT_AUDIO_USE_BROADCAST_NAME_ALT=  # Enables BIS mode with two gateways, allowing headsets to switch between gateways.
    # CONFIG_BT_AUDIO_BROADCAST_NAME_ALT= # Provides an alternative name for the second gateway in BIS mode.
    # CONFIG_BT_AUDIO_SCAN_DELEGATOR= # Enables scan delegator. When the scan delegator feature is enabled, the broadcast sink will not search for a predefined broadcast source. Instead, it will wait for a broadcast assistant to connect and control it.
    # CONFIG_AUDIO_SOURCE_I2S=y # Switches from USB audio source to 3.5 mm jack analog input using I2S.
    # CONFIG_NRF5340_AUDIO_SD_CARD_MODULE= # Enables the SD card module (enabled by default on the nRF5340 Audio DK).
    # CONFIG_SD_CARD_PLAYBACK= # Enables SD card playback functionality.
    # CONFIG_SD_CARD_PLAYBACK_STACK_SIZE=4096 # Sets the stack size for the SD card playback thread (default: 4096).
    # CONFIG_SD_CARD_PLAYBACK_RING_BUF_SIZE=960 # Sets the size of the ring buffer for audio data (default: 960).
    # CONFIG_SD_CARD_PLAYBACK_THREAD_PRIO=7 # Sets the priority for the SD card playback thread (default: 7).
    

    Here are the logs from the application core

    *** Booting nRF Connect SDK v3.1.0-6c6e5b32496e ***
    *** Using Zephyr OS v4.1.99-1612683d4010 ***
    GW [00:00:00.267,089] <wrn> location: Invalid location in UICR, using default location
    GW [00:00:00.278,259] <inf> nrf5340_audio_dk_version: Compatible board/HW version found: 1.0.0
    GW [00:00:00.313,079] <inf> sd_card: SD card volume size: 15707668480 B
    GW [00:00:00.318,115] <inf> fw_info: 
             nRF5340 Audio nRF5340 Audio DK cpuapp                      
             NCS base version: 3.1.0                            
             Cmake run : Thu Sep 04 17:01:22 2025
    GW [00:00:00.318,115] <inf> fw_info: ------- DEBUG BUILD -------
    GW [00:00:00.318,145] <inf> fw_info: GATEWAY device
    GW [00:00:02.321,990] <err> bt_hci_driver: Endpoint binding failed with -11
    GW [00:00:02.321,990] <err> bt_hci_core: HCI driver open failed (-11)
    GW [00:00:02.321,990] <err> main: ERR_CHK Err_code: [-11] @ line: 559
    GW [00:00:02.322,021] <err> os: r0/a1:  0x00000003  r1/a2:  0x00000003  r2/a3:  0x00000002
    GW [00:00:02.322,021] <err> os: r3/a4:  0x00000003 r12/ip:  0x200037c0 r14/lr:  0x0006675b
    GW [00:00:02.322,021] <err> os:  xpsr:  0x09100000
    GW [00:00:02.322,021] <err> os: s[ 0]:  0x20001db4  s[ 1]:  0x00066949  s[ 2]:  0x2001dea8  s[ 3]:  0x00000004
    GW [00:00:02.322,052] <err> os: s[ 4]:  0x00000008  s[ 5]:  0x2001ded8  s[ 6]:  0x0004137d  s[ 7]:  0x00000000
    GW [00:00:02.322,052] <err> os: s[ 8]:  0x2001dea8  s[ 9]:  0x00000000  s[10]:  0x00000008  s[11]:  0x0006698d
    GW [00:00:02.322,052] <err> os: s[12]:  0x2001ded8  s[13]:  0x000798e8  s[14]:  0xfffffff5  s[15]:  0x0000022f
    GW [00:00:02.322,082] <err> os: fpscr:  0x2001ded8
    GW [00:00:02.322,082] <err> os: Faulting instruction address (r15/pc): 0x00002e48
    GW [00:00:02.322,113] <err> os: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0
    GW [00:00:02.322,113] <err> os: Current thread: 0x20006510 (main)
    GW [00:00:02.322,113] <err> error_handler: Caught system error -- reason 3. Entering infinite loop

    There are no logs from the network core, so that might be part of the problem.  There isn't a folder called "ipc_radio" in the directory, if it gets generated do those files have to be programmed separately?  Is there a different process to build for the network core as well?

    Thanks,

    Jeremy

  • I was able to get it working once I was able to get the code for the network core building.  The commands I used were:

    Server Build Commands:
    west build --build-dir /opt/nordic/ncs/v3.1.0/nrf/applications/nrf5340_audio/build_server /opt/nordic/ncs/v3.1.0/nrf/applications/nrf5340_audio --pristine --board nrf5340_audio_dk/nrf5340/cpuapp --no-sysbuild -- -DEXTRA_CONF_FILE="./unicast_server/overlay-unicast_server.conf" -DZEPHYR_SDK_INSTALL_DIR="/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk" -DCMAKE_PREFIX_PATH="/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk/cmake"
    west build /opt/nordic/ncs/v3.1.0/nrf/applications/nrf5340_audio -b nrf5340_audio_dk/nrf5340/cpuapp --sysbuild --domain ipc_radio -d /opt/nordic/ncs/v3.1.0/nrf/applications/nrf5340_audio/build_radio_server  -DEXTRA_CONF_FILE="./unicast_server/overlay-unicast_server.conf" -DZEPHYR_SDK_INSTALL_DIR="/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk" -DCMAKE_PREFIX_PATH="/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk/cmake"
    
    
    
    Client Build Commands:
    west build --build-dir /opt/nordic/ncs/v3.1.0/nrf/applications/nrf5340_audio/build_client /opt/nordic/ncs/v3.1.0/nrf/applications/nrf5340_audio --pristine --board nrf5340_audio_dk/nrf5340/cpuapp --no-sysbuild -- -DEXTRA_CONF_FILE="./unicast_client/overlay-unicast_client.conf" -DZEPHYR_SDK_INSTALL_DIR="/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk" -DCMAKE_PREFIX_PATH="/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk/cmake"
    west build /opt/nordic/ncs/v3.1.0/nrf/applications/nrf5340_audio -b nrf5340_audio_dk/nrf5340/cpuapp --sysbuild --domain ipc_radio -d /opt/nordic/ncs/v3.1.0/nrf/applications/nrf5340_audio/build_radio_client  -DEXTRA_CONF_FILE="./unicast_client/overlay-unicast_client.conf" -DZEPHYR_SDK_INSTALL_DIR="/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk" -DCMAKE_PREFIX_PATH="/opt/nordic/ncs/toolchains/5c0d382932/opt/zephyr-sdk/cmake"
    
    Thanks for pointing me in the right direction.

Related