bt_ascs: Failed to register ISO server -134

Hi, we are developping a medical device that receives an audio stream from a smartphone. We have a custom board connected to a different DSP than the one in the nrf5340_audio_DK, so for us does not make sense to use the provided example files (on the contrary is creating quite confusion for us).

With a standard nrf5340_DK board, and a modified example unicast server we are getting error "*** Booting nRF Connect SDK v2.9.1-60d0d6c8d42d ***
*** Using Zephyr OS v3.7.99-ca954a6216c9 ***
[00:00:00.279,296] <wrn> bt_hci_core: opcode 0x203a status 0x01 
[00:00:00.279,327] <wrn> bt_hci_core: Controller does not support 'LE_READ_MAX_ADV_DATA_LEN'. Assuming maximum length is 31 bytes.
[00:00:00.282,135] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.282,165] <inf> bt_hci_core: HW Variant: nRF53x (0x0003)
[00:00:00.282,165] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 224.11902 Build 2231721665
[00:00:00.284,088] <inf> bt_hci_core: Identity: F6:5A:AE:C8:06:82 (random)
[00:00:00.284,088] <inf> bt_hci_core: HCI: version 5.4 (0x0d) revision 0x2077, manufacturer 0x0059
[00:00:00.284,118] <inf> bt_hci_core: LMP: version 5.4 (0x0d) subver 0x2077
Bluetooth initialized
[00:00:00.284,179] <err> bt_ascs: Failed to register ISO server -134
[00:00:00.284,637] <wrn> bt_hci_core: opcode 0x2036 status 0x01 
Failed to create adv set (err -5)"

We have created a folder \sysbuild\ and added a conf file for the CPUNET as explained on this same forum "/sysbuild/ipc_radio/overlay-bt_hci_ipc.conf"

CONFIG_CLOCK_CONTROL=y
CONFIG_CLOCK_CONTROL_NRF=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
CONFIG_BT=y
CONFIG_BT_EXT_ADV=y

this is our prj.conf:

#
# prj.conf — nRF5340 DK CPUAPP as LE Audio Unicast Server
#

# Bluetooth core
CONFIG_BT=y
CONFIG_BT_HCI=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_EXT_ADV=y
CONFIG_BT_DEVICE_NAME="INDESmed Audio Server"

#Hci core Problem migth be related to CLK???
CONFIG_CLOCK_CONTROL=y
CONFIG_CLOCK_CONTROL_NRF=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y

# — BLE Audio roles y servicios
CONFIG_BT_AUDIO=y
CONFIG_BT_PAC_SNK=y
CONFIG_BT_ASCS=y

CONFIG_BT_BAP_UNICAST_SERVER=y
CONFIG_BT_CAP_ACCEPTOR=y

# LC3 y soporte interno
CONFIG_FPU=y
CONFIG_LIBLC3=y  
CONFIG_SW_CODEC_LC3_T2_SOFTWARE=y
CONFIG_BT_ISO_PERIPHERAL=y
CONFIG_BT_ISO_SYNC_RECEIVER=y
CONFIG_BT_ATT_PREPARE_COUNT=2

# Added large stack sizes. Can be optimized.
CONFIG_MAIN_STACK_SIZE=8192
CONFIG_HEAP_MEM_POOL_SIZE=16384
CONFIG_LC3_ENC_CHAN_MAX=2
CONFIG_LC3_DEC_CHAN_MAX=2

# Logging / RTT
CONFIG_PRINTK=y
CONFIG_LOG=y

thanks in advance for the support.

  • Hi, 

    Rafael Vidal said:
    2) I have also added symbol "CONFIG_BT_LL_SW_SPLIT=y" on my /sybuild/ipc_radio/ipc_radio.conf

    This will select the Zephyr controller, so this should not be included when you mean to use the SoftDevice Controller. See the Kconfig documentation for the symbol: https://docs.nordicsemi.com/bundle/ncs-latest/page/kconfig/index.html#CONFIG_BT_LL_SW_SPLIT

    The other descriptions of what you have done are good.

    Rafael Vidal said:
    1)    Where exactly should those multicore radio settings live? In the /sysbuild/ipc_radio/prj.conf or the CPUAPP prj.conf?

    There are a few options for this. In cases where you have multiple Kconfig fragments (or dts overlays) for one or several images, it is recommended to have all the configurations in a subfolder in the sysbuild directory. If you only have one Kconfig fragment for each image, placing the fragment directly in the sysbuild directory is fine. More information on this can be found here

    Rafael Vidal said:

    2)    How can I verify that the net-core actually ran the HCI-IPC build (and not the default Zephyr Controller)? Is there a specific log or HCI version query I should look for?

    I used the VS Code extension and verified which image was running on the network core and which Kconfig fragments were active. This can be verified before running the sample on hardware. 

    Rafael Vidal said:
    3)    Is my sysbuild.cmake approach correct, or is there a simpler way to force the net-core image override?

    It looks mostly alright. 

    Just make sure that sysbuild/ipc_radio/prj.conf has all the Kconfig symbols needed. When specifying a CONF_FILE, this file will be the base configuration file and other fragments will be added to it if found by the build system. You could also specify EXTRA_CONF_FILE instead. This will add sysbuild/ipc_radio/prj.conf to the other Kconfig fragments (like the prj.conf in the ipc_radio application directory). 

    Rafael Vidal said:
     4)  Any other Kconfig symbols or steps I’m missing so that the ASCS ISO server can register successfully?

    I'm not sure. If my comments from this reply is not helpful, I can clean up the sample I used to reproduce and fix on my end so you have a reference to use for comparison on your end. 

    Best regards,

    Maria

Related