Bluetooth init fails with error -11 after reset on nRF5340 (NCS v2.9.0)

Hi Nordic,

I encountered a strange issue when compiling and flashing my nRF5340 project with NCS v2.9.0.

  • On the first flash, everything works fine. Bluetooth starts successfully.

  • After I use VS Code "Reset" (without reflashing), the system reboots, but Bluetooth initialization fails with error -11.

Here are the logs for comparison:

First boot (works fine):

*** Booting nRF Connect SDK v2.9.0-7787b2649840 ***
*** Using Zephyr OS v3.7.99-1f8f3dc29142 ***
[00:00:01.415,557] <inf> usb_cdc_acm: Device suspended
[00:00:01.431,976] <inf> ADS1299_log: ADS1299 init success  62
[00:00:01.451,660] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:01.451,690] <inf> bt_hci_core: HW Variant: nRF53x (0x0003)
[00:00:01.451,721] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 45.41337 Build 3074452168
[00:00:01.487,152] <inf> bt_hci_core: No ID address. App must call settings_load()
[00:00:01.488,403] <inf> bt_hci_core: Identity: DA:97:F9:91:41:A4 (random)
[00:00:01.488,433] <inf> bt_hci_core: HCI: version 6.0 (0x0e) revision 0x206b, manufacturer 0x0059
[00:00:01.488,464] <inf> bt_hci_core: LMP: version 6.0 (0x0e) subver 0x206b
[00:00:01.488,525] <err> bt_gatt: Failed to save Database Hash (err -2)
[00:00:01.488,800] <inf> main_thread_log: BT addr: DA:97:F9:91:41:A4

Second boot (after reset, Bluetooth fails):

*** Booting nRF Connect SDK v2.9.0-7787b2649840 ***
*** Using Zephyr OS v3.7.99-1f8f3dc29142 ***
[00:00:01.511,138] <inf> usb_cdc_acm: Device suspended
[00:00:01.527,557] <inf> ADS1299_log: ADS1299 init success  62
[00:00:02.530,303] <err> bt_hci_driver: Endpoint binding failed with -11
[00:00:02.530,334] <err> bt_hci_core: HCI driver open failed (-11)
[00:00:02.530,364] <err> main_thread_log: Bluetooth init failed (err -11)

My questions:

  1. Why does Bluetooth initialization succeed after the first flash but fail with -11 after a reset? Is there any additional configuration required for reset handling on nRF5340?

  2. During the first boot, I also see:

    <err> bt_gatt: Failed to save Database Hash (err -2)

    What exactly does error -2 mean here? I have read in forum posts that this error might not affect usage — is this still the case with NCS v2.9.0, or should I configure settings/NVS properly to avoid it.

Thank you for your support!

Best Regards!

Ben

Parents
  • I also noticed that some Nordic APIs seem not to work as expected in NCS v2.9.0.For example, when I configure pins such as P0.30 as LED control outputs and use functions for nrf5 SDK

    nrf_gpio_pin_set();  
    nrf_gpio_pin_clear();  
    

     in my code, I can see in the VS Code debug interface that the registers are updated (the pin is set/reset). But when I measure the actual pin with a multimeter, the voltage always stays low.

    If I instead configure the same pin via the Zephyr device tree and GPIO driver bindings, the pin works correctly.

    This raises two questions:

    • Does this mean that Nordic intends to deprecate direct nrf_gpio_* usage in favor of Zephyr’s device-tree-based GPIO control?
    • Could this issue also be related to implicit forwarding by the CPUNET core, similar to cases I have seen in other examples?
Reply
  • I also noticed that some Nordic APIs seem not to work as expected in NCS v2.9.0.For example, when I configure pins such as P0.30 as LED control outputs and use functions for nrf5 SDK

    nrf_gpio_pin_set();  
    nrf_gpio_pin_clear();  
    

     in my code, I can see in the VS Code debug interface that the registers are updated (the pin is set/reset). But when I measure the actual pin with a multimeter, the voltage always stays low.

    If I instead configure the same pin via the Zephyr device tree and GPIO driver bindings, the pin works correctly.

    This raises two questions:

    • Does this mean that Nordic intends to deprecate direct nrf_gpio_* usage in favor of Zephyr’s device-tree-based GPIO control?
    • Could this issue also be related to implicit forwarding by the CPUNET core, similar to cases I have seen in other examples?
Children
No Data
Related