hci uart sample asserts

Hi, I use the hci-uart sample (4.3.99) on an nRF54L15 board. The host is an esp. The setup seems to work fine, but every now and then the Nordic board gives an assert:

ASSERTION FAIL [next] @ WEST_TOPDIR/zephyr/subsys/bluetooth/controller/ll_sw/nordic/lll/lll.c:952

Tried all kind of config changes to get rid of the assert, tried to minimize traffic to the connected ble devices, but it did not help. It seems to occur at specific moments, e.g. when exchanging mtu. What am I doing wrong here?

  • Hi,

    What do you mean? I use both extra.conf and prj.conf to configure the hci uart sample. The extra configs are required for the ble features we use.

    Br,

    Renger

  • Hi

    What SDK version are you using when you see this issue?

    I think the next assertion in the prepare path when the LLL tries to insert the next radio event into its prepare pipeline and finds the state inconsistent, so the controller isn't able to keep up with radio event scheduling.

    This could be a number of things, listed from most to least likely:

    • Interrupt/CPU latency starving the LLL due to a critical section blocking it (long flash writes, drivers with incorrect priority holding IRQs disabled, heavy logging in interrupt context).
    • Scheduling overload. There are too many concurrent roles for the timing. Nordic's scheduling documentation explains that radio timing events are time-multiplexed and collisions get rescheduled. This could be it if you have many simultaneous connections or adv/scan/connection events packed tightly collide and the pipeline can't be maintained.
    • Clock/HFXO problems. If you have a custom board with an incorrectly loaded HFXO clock this could assert.
    • Insufficient stack for the LLL/controller thread or memory pressure, corrupting the prepare state.

    You can narrow it down by decoding the fault with the addr2line against your .elf output file, or look at what runs just before the application asserts.

    Can you also share what NCS version you're using and what Bluetooth controller you're using (Zephyr or the Nordic SoftDevice controller).

    Best regards,

    Simon

Related