FOTA via BLE on nRF54L15DK – SMP connection unstable, firmware crash

Hello,

zephyr: Vanila v 4.1.0


I'm trying to run FOTA via BLE on the nRF54L15DK. I’ve configured everything as it should be, based on the sample:

zephyr/samples/subsys/mgmt/mcumgr/smp_svr

When I build the sample for the nRF52, using the following command:

west build -b nrf52840dk/nrf52840 -p always -- -DEXTRA_CONF_FILE="overlay-bt.conf" -DDCONFIG_BT_DEVICE_NAME="zephyr"
…it works without any issues.

However, when I build it for the nRF54L15DK:

west build -b nrf54l15dk/nrf54l15/cpuapp -p always -- -DEXTRA_CONF_FILE="overlay-bt.conf" -DDCONFIG_BT_DEVICE_NAME="zephyr"

…the device boots, but I always get an assertion failure, and the firmware crashes. The logs show:
*** Booting Zephyr OS build v4.1.0 ***
[00:00:00.492,235] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.492,249] <inf> bt_hci_core: HW Variant: nRF54Lx (0x0005)
[00:00:00.492,262] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 4.1 Build 0
[00:00:00.492,485] <inf> bt_hci_core: Identity: DD:4A:DD:37:22:08 (random)
[00:00:00.492,500] <inf> bt_hci_core: HCI: version 5.4 (0x0d) revision 0x0000, manufacturer 0x05f1
[00:00:00.492,513] <inf> bt_hci_core: LMP: version 5.4 (0x0d) subver 0xffff
[00:00:00.492,780] <inf> smp_bt_sample: Advertising successfully started
[00:00:00.492,800] <inf> smp_sample: build time: Mar 25 2025 12:00:17
uart:~$ 
uart:~$ 
uart:~$ 
uart:~$ 
uart:~$ 
[00:00:17.974,666] <inf> smp_bt_sample: Connected
[00:00:18.015,828] <wrn> bt_conn: conn 0x20001558 failed to establish. RF noise?
[00:00:18.015,931] <inf> smp_bt_sample: Disconnected, reason 0x3e 
[00:00:18.016,196] <inf> smp_bt_sample: Advertising successfully started
ASSERTION FAIL [0] @ WEST_TOPDIR/zephyr/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_peripheral.c:342
        prepare_cb: Actual EVENT_OVERHEAD_START_US = 578
[00:00:18.119,616] <err> os: r0/a1:  0x00000003  r1/a2:  0x00000000  r2/a3:  0x00000006
[00:00:18.119,623] <err> os: r3/a4:  0x00000003 r12/ip:  0x00000000 r14/lr:  0x0001a66d
[00:00:18.119,628] <err> os:  xpsr:  0x0100002e
[00:00:18.119,632] <err> os: Faulting instruction address (r15/pc): 0x0001a67c
[00:00:18.119,658] <err> os: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0
[00:00:18.119,663] <err> os: Fault during interrupt handling

[00:00:18.119,680] <err> os: Current thread: 0x200019e0 (idle)
[00:00:18.248,208] <err> os: Halting system

I'm testing the connection using:

sudo mcumgr --conntype ble --connstring ctlr_name=hci0,peer_name='zephyr' echo hello
On some configurations, instead of the instant assertion failure, I get repeated connection errors and this log output:
uart:~$ W: conn 0x20000d50 failed to establish. RF noise?
W: conn 0x20000d50 failed to establish. RF noise?
W: conn 0x20000d50 failed to establish. RF noise?
W: conn 0x20000d50 failed to establish. RF noise?
W: conn 0x20000d50 failed to establish. RF noise?
W: conn 0x20000d50 failed to establish. RF noise?
W: conn 0x20000d50 failed to establish. RF noise?
W: conn 0x20000d50 failed to establish. RF noise?
W: conn 0x20000d50 failed to establish. RF noise?
ASSERTION FAIL [0] @ WEST_TOPDIR/zephyr/subsys/bluetooth/controller/ll_sw/nordic/lll/lll_peripheral.c:342
        prepare_cb: Actual EVENT_OVERHEAD_START_US = 801
E: r0/a1:  0x00000003  r1/a2:  0x000258bd  r2/a3:  0x00000000
E: r3/a4:  0x00000003 r12/ip:  0x00000000 r14/lr:  0x00016f95
E:  xpsr:  0x2100002e
E: Faulting instruction address (r15/pc): 0x00016fa4
E: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0
E: Fault during interrupt handling

E: Current thread: 0x200011c8 (idle)
E: Halting system

Is this a known issue on the nRF54L15DK? Are there any extra configuration options needed for SMP over BLE to work reliably on this SoC?

Thanks in advance for any help!

Related