Channel Sounding Reflector Sample Not Initializing on XIAO nRF54L15

Hello,

My first attempt with channel sounding.

Hardware Setup:

- Initiator: nRF54L15 DK running `channel_sounding_ras_initiator` sample (no issues found so far)
- Reflector: XIAO nRF54L15 running `channel_sounding_ras_reflector` sample (issue: not showing initialization logs)

Environment:

- NCS version: v3.1.1
- Build system: West workspace. Building with sysbuild
- Board target: `xiao_nrf54l15/nrf54l15/cpuapp`

Issue: The reflector sample builds and flashes successfully without errors or warnings, but does not display initialization logs when connected via serial terminal. The XIAO board works correctly with other samples (hello_world, blink, broadcaster).

What I've Done:

- Downloaded and integrated manufacturer's DTS and overlay files
- Verified hardware functionality with multiple sample applications
- Added board target and prj.conf to base configuration

Observations: When opening the built prj.conf file, I notice several missing dependencies (see attachment).

**Questions:**

Main question:  How to get rid of those missing dependencies ?

Additional questions:

1. Are there specific configuration requirements for channel sounding on custom boards?
2. What could cause the initialization logs to not appear despite successful build/flash? I do not suspect issue with serial port configuration but will double check anyways.
3. Regarding `sample.yaml` (see attachment) in the application root: What is its purpose? Should it be modified to include custom boards?

Thank you for any insight / suggestion.

Andrei

i6431.build-flash.zip

Parents
  • Hi,

    - Reflector: XIAO nRF54L15 running `channel_sounding_ras_reflector` sample (issue: not showing initialization logs)

    he XIAO board works correctly with other samples (hello_world, blink, broadcaster).

    But does it also give output and show init logs with the other samples?

    On the warnings there I see it needs softdevice. I assume this board comes with an additional config file which makes you enable maybe the zephyr BLE controller instead of the nordic softdevice (SDC). Looking at the build logs I see it uses a xiao_nrf54l15_nrf54l15_cpuapp_defconfig, could you check what that contains? 

    1. Are there specific configuration requirements for channel sounding on custom boards?

    A lot is required, but that should come with the default samples. Though additional configs set from eg. a board can meddle with that.

    2. What could cause the initialization logs to not appear despite successful build/flash? I do not suspect issue with serial port configuration but will double check anyways.

    Wrong output set for logs, logs simply disabled, RTT enabled instead, etc.

    3. Regarding `sample.yaml` (see attachment) in the application root: What is its purpose? Should it be modified to include custom boards?

    Basic info about the sample, supported boards, etc.

    Regards,

    Elfving

  • Hi Elfving, thanks a lot for such quick response. I also suspected the issue could be related to some misconfiguration on the soft device controller. I could not find where the SDC is configured but looking at the final ".config" file (attached in the zip file) I see this line has been added: "CONFIG_BT_LL_SOFTDEVICE=y", so I think the SDC is enabled indeed.

    I attach the xiao_nrf54l15_nrf54l15_cpuapp_defconfig but apparently there is no interesting information on this file related to the problem (but I could be wrong). I built and ran the blinky sample again (now as a west workspace) and confirm the hardware is good. The LED blinks and the terminal logs the status change from the LED.

    I added other kconfig related files from the manufacturer in the zip file. I will try to rebuild the reflector sample with some changes to see if I can discover what is wrong or missing. 

    Andrei

     xiao_nrf54l15.zip

  • Hi Elfving, that is exactly the board files I am using. In such case I will dig deeper into those files and check with the manufacturer of the board. Also, I will order a second Nordic DK board to be able to move forward with the channel sounding testing. Huge thanks for your support.

  • This is the configuration required to build and flash the Channel sounding initiator to the xiao nrf54l15.

    boards\xiao_nrf54l15_nrf54l15_cpuapp.overlay:
    ```

    &radio {
        status = "okay";

        bt_hci_sdc: bt_hci_sdc {
            compatible = "nordic,bt-hci-sdc";
            status = "okay";
        };
    };

    / {
        chosen {
            zephyr,bt-c2h-uart = &uart20;
        };
    };
    // can't have two devices on the 20 id at the same time as per documentation.
    &pdm20 {
        status = "disabled";
    };
    ```
    Boot output from the xiao NRF54l15 module running the init:
    ```
    Starting Channel Sounding Demo
    [00:06:03.633,361] <inf> bt_sdc_hci_driver: SoftDevice Controller build revision:
    fc de 41 eb a2 d1 42 24 00 b5 f8 57 9f ac 9d 9e |..A...B$ ...W....
    aa c9 b4 34 |...4
    [00:06:03.634,883] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
    [00:06:03.634,897] <inf> bt_hci_core: HW Variant: nRF54Lx (0x0005)
    [00:06:03.634,909] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 252.16862 Build 1121034987
    [00:06:03.635,347] <inf> bt_hci_core: HCI transport: SDC
    [00:06:03.635,409] <inf> bt_hci_core: Identity: E7:A4:5B:84:63:5A (random)
    [00:06:03.635,424] <inf> bt_hci_core: HCI: version 6.1 (0x0f) revision 0x3069, manufacturer 0x0059
    [00:06:03.635,443] <inf> bt_hci_core: LMP: version 6.1 (0x0f) subver 0x3069


    ADDED FILE: boards\xiao_nrf54l15_nrf54l15_cpuapp.overlay:

    ```
    CONFIG_BT=y
    CONFIG_BT_SMP=y
    CONFIG_BT_CENTRAL=y
    CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS=n
    CONFIG_BT_AUTO_PHY_UPDATE=n
    CONFIG_BT_GATT_CLIENT=y
    CONFIG_BT_GATT_DYNAMIC_DB=y
    CONFIG_BT_ATT_PREPARE_COUNT=3
    CONFIG_BT_CHANNEL_SOUNDING=y

    CONFIG_BT_BUF_ACL_RX_SIZE=251
    CONFIG_BT_BUF_ACL_TX_SIZE=251
    CONFIG_BT_L2CAP_TX_MTU=247

    CONFIG_MAIN_STACK_SIZE=4096

    CONFIG_CBPRINTF_FP_SUPPORT=y
    CONFIG_LOG=y
    ```

    I had it working yesterday, but now it's giving this:

    Starting Channel Sounding Demo
    [00:00:48.314,384] <inf> bt_sdc_hci_driver: SoftDevice Controller build revision:
    fc de 41 eb a2 d1 42 24 00 b5 f8 57 9f ac 9d 9e |..A...B$ ...W....
    aa c9 b4 34 |...4
    [00:00:48.314,658] <err> os: ***** MPU FAULT *****
    [00:00:48.314,663] <err> os: Data Access Violation
    [00:00:48.314,667] <err> os: MMFAR Address: 0x9
    [00:00:48.314,677] <err> os: r0/a1: 0x20009300 r1/a2: 0x00000001 r2/a3: 0xba2e8ba3
    [00:00:48.314,683] <err> os: r3/a4: 0x00000008 r12/ip: 0x00000000 r14/lr: 0x00024779
    [00:00:48.314,687] <err> os: xpsr: 0x01000000
    [00:00:48.314,702] <err> os: Faulting instruction address (r15/pc): 0x0002480c
    [00:00:48.314,721] <err> os: >>> ZEPHYR FATAL ERROR 19: Unknown error on CPU 0
    [00:00:48.314,735] <err> os: Current thread: 0x20004430 (unknown)
    [00:00:48.414,679] <err> os: Halting system
  • Hi there,

    So strongly suggests the hardware is one of Nordic’s nRF54L-series SoCs, and the “0x0005” variant implies nRF54L05. The nRF54L05 is the lowest-end member of that family. 

    One click too fast, Sweat smile the good one was wrong target probably nrf54l15_dk/nrf54l05 (selected)

    [00:06:03.634,897] <inf> bt_hci_core: HW Variant: nRF54Lx (0x0005)

      

    Don't go racking your brain I did the exact same thing, took a few re-enactments t figure out my LEFT Turn..but it was working I thought all day , until then the x00005 hit me.

    GL :-) Pj  :v:

  • Well that would explain why it suddenly stopped working for me!
    Thanks PJ!

    --Toastee0

  • Have you fixed the issue? I am also getting MPU FAULT.

    When I use arm-none-eabi-addr2line to look for the link register (r14/lr) address I get:

    net_buf_alloc_len
    C:/ncs/v3.1.1/zephyr/lib/net_buf/buf.c:234

    If you enable CONFIG_DEBUG_THREAD_INFO in prj.conf you can see the current thread, for me it is MPSL Work.

    I managed to get the example to run (the measured distance was way off), but now I can't get over the MPU fault.

    Also I don't think the HW Variant: nRF54Lx (0x0005) doesn't reference to the nrf54l15_dk/nrf54l05 board, even the official github has the example output with that line.
Reply
  • Have you fixed the issue? I am also getting MPU FAULT.

    When I use arm-none-eabi-addr2line to look for the link register (r14/lr) address I get:

    net_buf_alloc_len
    C:/ncs/v3.1.1/zephyr/lib/net_buf/buf.c:234

    If you enable CONFIG_DEBUG_THREAD_INFO in prj.conf you can see the current thread, for me it is MPSL Work.

    I managed to get the example to run (the measured distance was way off), but now I can't get over the MPU fault.

    Also I don't think the HW Variant: nRF54Lx (0x0005) doesn't reference to the nrf54l15_dk/nrf54l05 board, even the official github has the example output with that line.
Children
Related