How to use nrf54L15-dk with external host through hci uart application

Hi, 

I am trying to build an application using the nrf54L15-dk board and want to use the board as a controller. I run the application on the external host but got an error as controller responsive. Can you provide the details steps so that board can be use with external host.

Parents
  • Hi

    Can you share some details on what sample project you're based your own project on here? And what UART instance and pins on the nRF54L15 are you using for HCI UART here? Please note that some of the pins are not available on the DK, and the different instances have a set amount of pins that can be used (specific ports).

    Is either of these the sample you've based your project on by chance?

    Best regards,

    Simon

  • Hi,
    Thanks for your response.
    i am using the hci_uart application of Zephyr.

    Following is the nrf54l15dk_nrf54l15_cpuapp.overlay file i am using

    &uart20 {
    current-speed = <115200>;
    hw-flow-control;
    status = "okay";
    };

    &uart20_default {
    group1 {
    psels = <NRF_PSEL(UART_TX, 1, 11)>,
    <NRF_PSEL(UART_RTS, 0, 2)>;
    };
    group2 {
    psels = <NRF_PSEL(UART_RX, 1, 10)>,
    <NRF_PSEL(UART_CTS, 0, 3)>;
    bias-pull-up;
    };
    };



    Also, i want to use a channel-sounding feature hence please suggest the necessary flag to enable this. Following is proj.conf file

    CONFIG_CONSOLE=n
    CONFIG_STDOUT_CONSOLE=n
    CONFIG_UART_CONSOLE=n
    CONFIG_GPIO=y
    CONFIG_SERIAL=y
    CONFIG_UART_INTERRUPT_DRIVEN=y
    CONFIG_BT=y
    CONFIG_BT_HCI_RAW=y
    CONFIG_BT_HCI_RAW_H4=y
    CONFIG_BT_HCI_RAW_H4_ENABLE=y
    CONFIG_BT_BUF_ACL_RX_SIZE=255
    CONFIG_BT_BUF_CMD_TX_SIZE=255
    CONFIG_BT_BUF_EVT_DISCARDABLE_SIZE=255
    CONFIG_BT_CTLR_ASSERT_HANDLER=y
    CONFIG_BT_MAX_CONN=16
    CONFIG_BT_CTLR_DTM_HCI=y
    CONFIG_BT_CTLR_ADV_EXT=y

    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=512
  • Hi  ,
    I tried to build an hci_uart application with the command west build -p -b nrf54l15dk/nrf54l15/cpuapp -S nordic-flpr --no-sysbuild. and the above error is solved but am not able to perform rx-tx now. There is no command going from host to controller.. could you please help with this cc  

  • Hi

    For me the following approach works:

    1. checkout NCS v3.0.0-rc1

    2. do `west update` to update all the modules to correct revisions

    3. add `CONFIG_BT_CTLR_CHANNEL_SOUNDING=y` to zephyr/samples/bluetooth/hci_uart/prj.conf

    4. run `west build -bnrf54l15dk/nrf54l15/cpuapp` in zephyr/samples/bluetooth/hci_uart folder

    5. run `west flash`

    I believe it should work for you as well Slight smile



  • I am getting lot of compilation issues now. I just follow what u suggested. Also, searched on the web if any related article can help but nothing relevant to it.

    Following is my branch information 

    Zephyr Commit 

    commit e48bca44dd596dc66d71378e97bf5ceff2c483d0 (HEAD -> manifest-rev, tag: v4.0.99-ncs1-rc1)
    Author: Michał Stasiak <michal.stasiak@nordicsemi.no>
    Date: Tue Apr 1 09:53:30 2025 +0200

    [nrf fromlist] drivers: audio: dmic_nrfx: add support for audio clocks on nRF54

    Added support for audio clock for nRF54L20 and AudioPLL
    for nRF54H20 in DMIC PDM driver.

    Upstream PR #: 87105

    Signed-off-by: Michał Stasiak <michal.stasiak@nordicsemi.no>


    Nrf-sdk Commit 

    commit 3f93b1b897e4fe98a9444cfda56c7fceca35274f (HEAD -> v3.0.0-rc1, tag: v3.0.0-rc1)
    Author: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
    Date: Fri Apr 4 13:36:11 2025 +0200

    MANIFEST: Update revisions for v3.0.0-rc1

    Update west.yml revisions for v3.0.0-rc1

    Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>



    Loading Zephyr default modules (Zephyr base).
    -- Application: /home/abhinav/nrf_latest/zephyr/samples/bluetooth/hci_uart
    -- CMake version: 3.22.1
    -- Found Python3: /home/abhinav/.espressif/python_env/idf5.4_py3.11_env/bin/python (found suitable version "3.11.4", minimum required is "3.10") found components: Interpr
    r
    -- Cache files will be written to: /home/abhinav/.cache/zephyr
    -- Zephyr version: 4.0.99 (/home/abhinav/nrf_latest/zephyr)
    -- Board: nrf54l15dk, qualifiers: nrf54l15/cpuapp
    -- ZEPHYR_TOOLCHAIN_VARIANT not set, trying to locate Zephyr SDK
    -- Found host-tools: zephyr 0.17.0 (/home/abhinav/zephyr-sdk-0.17.0)
    -- Found toolchain: zephyr 0.17.0 (/home/abhinav/zephyr-sdk-0.17.0)
    -- Found Dtc: /home/abhinav/zephyr-sdk-0.17.0/sysroots/x86_64-pokysdk-linux/usr/bin/dtc (found suitable version "1.6.0", minimum required is "1.4.6")
    -- Found BOARD.dts: /home/abhinav/nrf_latest/zephyr/boards/nordic/nrf54l15dk/nrf54l15dk_nrf54l15_cpuapp.dts
    -- Found devicetree overlay: /home/abhinav/nrf_latest/zephyr/samples/bluetooth/hci_uart/boards/nrf54l15dk_nrf54l15_cpuapp.overlay
    -- Generated zephyr.dts: /home/abhinav/nrf_latest/zephyr/samples/bluetooth/hci_uart/build/hci_uart/zephyr/zephyr.dts
    -- Generated pickled edt: /home/abhinav/nrf_latest/zephyr/samples/bluetooth/hci_uart/build/hci_uart/zephyr/edt.pickle
    -- Generated zephyr.dts: /home/abhinav/nrf_latest/zephyr/samples/bluetooth/hci_uart/build/hci_uart/zephyr/zephyr.dts
    -- Generated devicetree_generated.h: /home/abhinav/nrf_latest/zephyr/samples/bluetooth/hci_uart/build/hci_uart/zephyr/include/generated/zephyr/devicetree_generated.h
    -- Including generated dts.cmake file: /home/abhinav/nrf_latest/zephyr/samples/bluetooth/hci_uart/build/hci_uart/zephyr/dts.cmake

    warning: BT_CTLR_DTM_HCI (defined at subsys/bluetooth/controller/Kconfig.dtm:14) was assigned the

  • Can you double-check please if you have any local changes in any of the repositories in the workspace except for `CONFIG_BT_CTLR_CHANNEL_SOUNDING=y` in zephyr/samples/bluetooth/hci_uart/prj.conf?

    Can you also provide output of `west list` command please? it should print revisions of all the repositories in your west workspace





  • I checked that my working tree is clean. I stashed all the changes previously. Here is the output for west list 

    west list
    manifest nrf HEAD N/A
    zephyr zephyr v4.0.99-ncs1-rc1 github.com/.../sdk-zephyr
    wfa-qt-control-app modules/lib/wfa-qt-control-app af011c8a8d338ba529f17aed2cc2ef4c1c591a58 github.com/.../sdk-wi-fiquicktrack-controlappc
    mcuboot bootloader/mcuboot v2.1.0-ncs5-rc1 github.com/.../sdk-mcuboot
    qcbor modules/tee/tf-m/qcbor 751d36583a9ce1a640900c57e13c9b6b8f3a2ba2 github.com/.../QCBOR
    mbedtls modules/crypto/mbedtls v3.6.3-ncs1-rc1 github.com/.../sdk-mbedtls
    oberon-psa-crypto modules/crypto/oberon-psa-crypto v1.3.4-ncs1-rc1 github.com/.../sdk-oberon-psa-crypto
    nrfxlib nrfxlib v3.0.0-rc1 github.com/.../sdk-nrfxlib
    trusted-firmware-m modules/tee/tf-m/trusted-firmware-m v2.1.1-ncs4-rc1 github.com/.../sdk-trusted-firmware-m
    psa-arch-tests modules/tee/tf-m/psa-arch-tests 3da9313e64806d352c519e3205e81cf959067588 github.com/.../sdk-psa-arch-tests
    matter modules/lib/matter v3.0.0-rc1 github.com/.../sdk-connectedhomeip
    cjson modules/lib/cjson c6af068b7f05207b28d68880740e4b9ec1e4b50a github.com/.../sdk-cjson
    azure-sdk-for-c modules/lib/azure-sdk-for-c 308c171cb4b5eed266649012a68406487ec81fb2 github.com/.../azure-sdk-for-c
    cirrus modules/hal/cirrus-logic 3873a08377d93a479105a75ac390d3bbcd31d690 github.com/.../sdk-mcu-drivers
    openthread modules/lib/openthread ncs-thread-reference-20250402 github.com/.../sdk-openthread
    suit-generator modules/lib/suit-generator v3.0.0-rc1 github.com/.../suit-generator
    suit-processor modules/lib/suit-processor v3.0.0-rc1 github.com/.../suit-processor
    cmock test/cmock f65066f15d8248e6dcb778efb8739904a4512087 github.com/.../cmock
    memfault-firmware-sdk modules/lib/memfault-firmware-sdk 1.18.0 github.com/.../memfault-firmware-sdk
    bsim tools/bsim a88d3353451387ca490a6a7f7c478a90c4ee05b7 github.com/.../bsim_west
    coremark modules/benchmark/coremark d5fad6bd094899101a4e5fd53af7298160ced6ab github.com/.../coremark
    canopennode modules/lib/canopennode dec12fa3f0d790cafa8414a4c2930ea71ab72ffd github.com/.../canopennode
    chre modules/lib/chre 3b32c76efee705af146124fb4190f71be5a4e36e github.com/.../chre
    lz4 modules/lib/lz4 11b8a1e22fa651b524494e55d22b69d3d9cebcfd github.com/.../lz4
    nanopb modules/lib/nanopb 7307ce399b81ddcb3c3a5dc862c52d4754328d38 github.com/.../nanopb
    tf-m-tests modules/tee/tf-m/tf-m-tests 502ea90105ee18f20c78f710e2ba2ded0fc0756e github.com/.../tf-m-tests
    zscilib modules/lib/zscilib ee1b287d9dd07208d2cc52284240ac25bb66eae3 github.com/.../zscilib
    cmsis modules/hal/cmsis 4b96cbb174678dcd3ca86e11e1f24bc5f8726da0 github.com/.../cmsis
    cmsis-dsp modules/lib/cmsis-dsp d80a49b2bb186317dc1db4ac88da49c0ab77e6e7 github.com/.../cmsis-dsp
    cmsis-nn modules/lib/cmsis-nn ea987c1ca661be723de83bd159aed815d6cbd430 github.com/.../cmsis-nn
    edtt tools/edtt b9ca3c7030518f07b7937dacf970d37a47865a76 github.com/.../edtt
    fatfs modules/fs/fatfs 427159bf95ea49b7680facffaa29ad506b42709b github.com/.../fatfs
    hal_nordic modules/hal/nordic 8cdcc33c6e5c7618ca4e77ff19a0eab557cc4bd5 github.com/.../hal_nordic
    hal_st modules/hal/st 05fd4533730a9aea845261c5d24ed9832a6f0b6e github.com/.../hal_st
    hal_tdk modules/hal/tdk e0ade95b29841d915c38bc157bb5509270e8aa21 github.com/.../hal_tdk
    hal_wurthelektronik modules/hal/wurthelektronik e3e2797b224fc48fdef1bc3e5a12a7c73108bba2 github.com/.../hal_wurthelektronik
    hostap modules/lib/hostap 219b1f75d6452aafd1aff1912cc07dd132f753fa github.com/.../hostap
    liblc3 modules/lib/liblc3 bb85f7dde4195bfc0fca9e9c7c2eed0f8694203c github.com/.../liblc3
    libmetal modules/hal/libmetal 3e8781aae9d7285203118c05bc01d4eb0ca565a7 github.com/.../libmetal
    littlefs modules/fs/littlefs 009bcff0ed4853a53df8256039fa815bda6854dd github.com/.../littlefs
    loramac-node modules/lib/loramac-node fb00b383072518c918e2258b0916c996f2d4eebe github.com/.../loramac-node
    lvgl modules/lib/gui/lvgl 6decbb7f7783f6e48d4591fcb9f7810c2fb08e61 github.com/.../lvgl
    mipi-sys-t modules/debug/mipi-sys-t 71ace1f5caa03e56c8740a09863e685efb4b2360 github.com/.../mipi-sys-t
    net-tools tools/net-tools 93acc8bac4661e74e695eb1aea94c7c5262db2e2 github.com/.../net-tools
    nrf_hw_models modules/bsim_hw_models/nrf_hw_models b84bd7314a239f818e78f6927f5673247816df53 github.com/.../nrf_hw_models
    nrf_wifi modules/lib/nrf_wifi f8dbe23c2af8eb06b7a4bd9aa928e93d032a8578 github.com/.../nrf_wifi
    open-amp modules/lib/open-amp 52bb1783521c62c019451cee9b05b8eda9d7425f github.com/.../open-amp
    percepio modules/debug/percepio 0d44033c744978ca2505a06640b4f6964c5411e6 github.com/.../percepio
    picolibc modules/lib/picolibc 82d62ed1ac55b4e34a12d0390aced2dc9af13fc9 github.com/.../picolibc
    segger modules/debug/segger cf56b1d9c80f81a26e2ac5727c9cf177116a4692 github.com/.../segger
    tinycrypt modules/crypto/tinycrypt 1012a3ebee18c15ede5efc8332ee2fc37817670f github.com/.../tinycrypt
    uoscore-uedhoc modules/lib/uoscore-uedhoc 84ef879a46d7bfd9a423fbfb502b04289861f9ea github.com/.../uoscore-uedhoc
    zcbor modules/lib/zcbor 9b07780aca6fb21f82a241ba386ad9b379809337 github.com/.../zcbor

Reply Children
  • hmm, that's strange.I don't have the first line like in your output "manifest nrf HEAD N/A".

    Just a couple more questions from my side:

    1. Have you initialized the workspice according to this guide? https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/installation/install_ncs.html#get-the-ncs-code . I think the following command should be used to initialize it properly `west init -m github.com/.../sdk-nrf --mr v3.0.0-rc1 v3.0.0-rc1` (it may take quite long time because it downloads all the repositories).

    2. Can you try to remove build/ directory and do `west build -bnrf54l15dk/nrf54l15/cpuapp` again? Maybe there are some invalid objects from the previous attempts to build, but usually it shoudn't be an issue.

  • Hi, I tried reinstalling the nRF SDK, but I'm still encountering the same errors.

    According to the nRF SDK installation guide, there should be an ncs folder that serves as the main workspace. However, in my case, I've cloned the nRF SDK and the Zephyr toolchain separately, so they're not located in the same directory.

    The reason I chose this setup is because nrfutil is no longer working for me.


    I also tried removing the build directory and tried but the same issue was encountered 

  • Unfortunately toolchain and workspace installation are not my area of expertise Disappointed . The last thing I can suggest here is to use VSCode extension because it helps to install SDK and toolchain in a safe and reliable way, also it is very convenient to use!




  • Hey, i reinstalled the entire setup just like the Nordic install guide and it started compiling.  Cs feature is also enabled. But i am getting one warning : BT_CTLR_DTM_HCI (defined at subsys/bluetooth/controller/Kconfig.dtm:14) was assigned the
    value 'y' but got the value 'n'. Check these unsatisfied dependencies: BT_CTLR_DTM_HCI_SUPPORT (=n).

    Do I need this flag to be enabled for working with an external host?

  • This warning is not critical for CS use-case. You don't need DTM in order to use normal Bluetooth Low Energy with Channel sounding, so you can just ignore it