bt_hci_core: No ID address. App must call settings_load()

Hi, i'm trying to modify the thread coap_server sample by adding bluetooth configurationg following this webinar https://www.youtube.com/watch?v=hY_tDext6zA&t=2199s

I'm facing with this log error message: bt_hci_core: No ID address. App must call settings_load() that it doesn't permit the enabling of the bluetooh.

how can i fix it?

this is th log file:

uart:~$ *** Booting Zephyr OS build v3.1.99-ncs1 ***
[00:00:00.265,716] <inf> ieee802154_nrf5: nRF5 802154 radio initialized
[00:00:00.341,217] <inf> fs_nvs: 2 Sectors of 4096 bytes
[00:00:00.341,247] <inf> fs_nvs: alloc wra: 0, fe8
[00:00:00.341,247] <inf> fs_nvs: data wra: 0, 0
[00:00:00.346,405] <inf> coap_server: Start CoAP-server sample
[00:00:00.346,405] <inf> LOGM_MODULE_NAME: inizializing bluetooth
[00:00:00.347,045] <err> LOGM_MODULE_NAME: couldn't start advertising (err = -11
[00:00:00.347,076] <err> coap_server: Could not initialize Bluetooth
[00:00:00.368,804] <inf> bt_hci_core: No ID address. App must call settings_load()
[00:00:00.265,716] <inf> ieee802154_nrf5: nRF5 802154 radio initialized
[00:00:00.341,217] <inf> fs_nvs: 2 Sectors of 4096 bytes
[00:00:00.341,247] <inf> fs_nvs: alloc wra: 0, fe8
[00:00:00.341,247] <inf> fs_nvs: data wra: 0, 0
[00:00:00.346,405] <inf> coap_server: Start CoAP-server sample
[00:00:00.346,405] <inf> LOGM_MODULE_NAME: inizializing bluetooth
[00:00:00.347,045] <err> LOGM_MODULE_NAME: couldn't start advertising (err = -11
[00:00:00.347,076] <err> coap_server: Could not initialize Bluetooth
[00:00:00.368,804] <inf> bt_hci_core: No ID address. App must call settings_load()
uart:~$

this is my project code

1273.coap_server.zip

Parents Reply Children
  • yes i've done this yet... I tried to add this part of code:

    if (IS_ENABLED(CONFIG_SETTINGS)) {
            settings_load();
        }
    after the bt_enable function in ble.c file, but it seems it doesn't work
    this is what it returns in logs:
    uart:~$ *** Booting Zephyr OS build v3.1.99-ncs1 ***
    ASSERTION FAIL @ WEST_TOPDIR/zephyr/kernel/work.c:667
    [00:00:00.455,352] <inf> ieee802154_nrf5: nRF5 802154 radio initialized
    [00:00:00.455,352] <inf> ieee802154_nrf5: nRF5 802154 radio initialized
    uart:~$ [00:00:00.530,914] <inf> fs_nvs: 2 Sectors of 4096 bytes
    [00:00:00.530,914] <inf> fs_nvs: 2 Sectors of 4096 bytes
    uart:~$ [00:00:00.530,914] <inf> fs_nvs: alloc wra: 0, fe8
    [00:00:00.530,914] <inf> fs_nvs: alloc wra: 0, fe8
    uart:~$ [00:00:00.530,944] <inf> fs_nvs: data wra: 0, 0
    [00:00:00.530,944] <inf> fs_nvs: data wra: 0, 0
    uart:~$ [00:00:00.536,193] <inf> coap_server: Start CoAP-server sample
    [00:00:00.536,193] <inf> coap_server: Start CoAP-server sample
    uart:~$ [00:00:00.536,224] <inf> LOGM_MODULE_NAME: inizializing bluetooth
    [00:00:00.536,224] <inf> LOGM_MODULE_NAME: inizializing bluetooth
    uart:~$ [00:00:00.538,604] <wrn> bt_id: Read Static Addresses command not available
    [00:00:00.538,604] <wrn> bt_id: Read Static Addresses command not available
    uart:~$ [00:00:00.538,635] <err> bt_settings: Unable to setup an identity address
    [00:00:00.538,635] <err> bt_settings: Unable to setup an identity address
    uart:~$ [00:00:00.538,696] <err> LOGM_MODULE_NAME: couldn't start advertising (err = -11
    [00:00:00.538,696] <err> LOGM_MODULE_NAME: couldn't start advertising (err = -11
    uart:~$ [00:00:00.538,696] <err> coap_server: Could not initialize Bluetooth
    [00:00:00.538,696] <err> coap_server: Could not initialize Bluetooth
    uart:~$ [00:00:00.547,302] <err> os: r0/a1: 0x00000004 r1/a2: 0x0000029b r2/a3: 0x00000000
    [00:00:00.547,302] <err> os: r0/a1: 0x00000004 r1/a2: 0x0000029b r2/a3: 0x00000000
    uart:~$ [00:00:00.547,332] <err> os: r3/a4: 0x2001473d r12/ip: 0x00000000 r14/lr: 0x0002b359
    [00:00:00.547,332] <err> os: r3/a4: 0x2001473d r12/ip: 0x00000000 r14/lr: 0x0002b359
    uart:~$ [00:00:00.547,332] <err> os: xpsr: 0x61100000
    [00:00:00.547,332] <err> os: xpsr: 0x61100000
    uart:~$ [00:00:00.547,363] <err> os: s[ 0]: 0x00000000 s[ 1]: 0x00000000 s[ 2]: 0x00000000 s[ 3]: 0x00000000
    [00:00:00.547,363] <err> os: s[ 0]: 0x00000000 s[ 1]: 0x00000000 s[ 2]: 0x00000000 s[ 3]: 0x00000000
    uart:~$ [00:00:00.547,393] <err> os: s[ 4]: 0x00000000 s[ 5]: 0x00000000 s[ 6]: 0x00000000 s[ 7]: 0x00000000
    [00:00:00.547,393] <err> os: s[ 4]: 0x00000000 s[ 5]: 0x00000000 s[ 6]: 0x00000000 s[ 7]: 0x00000000
    uart:~$ [00:00:00.547,393] <err> os: s[ 8]: 0x00000000 s[ 9]: 0x00000000 s[10]: 0x00000000 s[11]: 0x00000000
    [00:00:00.547,393] <err> os: s[ 8]: 0x00000000 s[ 9]: 0x00000000 s[10]: 0x00000000 s[11]: 0x00000000
    uart:~$ [00:00:00.547,424] <err> os: s[12]: 0x00000000 s[13]: 0x00000000 s[14]: 0x00000000 s[15]: 0x00000000
    [00:00:00.547,424] <err> os: s[12]: 0x00000000 s[13]: 0x00000000 s[14]: 0x00000000 s[15]: 0x00000000
    uart:~$ [00:00:00.547,424] <err> os: fpscr: 0x00000000
    [00:00:00.547,424] <err> os: fpscr: 0x00000000
    uart:~$ [00:00:00.547,424] <err> os: Faulting instruction address (r15/pc): 0x00052a64
    [00:00:00.547,424] <err> os: Faulting instruction address (r15/pc): 0x00052a64
    uart:~$ [00:00:00.547,454] <err> os: >>> ZEPHYR FATAL ERROR 4: Kernel panic on CPU 0
    [00:00:00.547,454] <err> os: >>> ZEPHYR FATAL ERROR 4: Kernel panic on CPU 0
    uart:~$ [00:00:00.547,485] <err> os: Current thread: 0x20002538 (BT_LW_WQ)
    [00:00:00.547,485] <err> os: Current thread: 0x20002538 (BT_LW_WQ)
    uart:~$ [00:00:00.923,675] <err> fatal_error: Resetting system
    [00:00:00.923,675] <err> fatal_error: Resetting system
  • Hi,

    I copied all Bluetooth Low Energy related configurations and files from our Coap Client sample to our Coap Server sample.

    The result seems to work fine, I am able to connect to it with both Thread and Bluetooth.

    Try this zip file and see if it works for you:

    coap_server_multiprotocol.zip

    Regards,
    Sigurd Hellesvik

  • Was there ever a solution to this "No ID address" problem ?

    Platform:  //nrf52840 custom pcb//segger base//ble protocol//zephyr//

    This error is occurring after adding the following to prj.conj :

    ================================================

    CONFIG_SETTINGS=y
    CONFIG_BT_SETTINGS=y
    CONFIG_FLASH=y
    CONFIG_FLASH_PAGE_LAYOUT=y
    CONFIG_FLASH_MAP=y
    CONFIG_NVS=y
    ===============================================
    Rather than  settings_load() , is there a settings_store() functionality
    to initialize whatever data fields are defined ?
    My guess is this functionality is just reading uninitialized memory.
  • Aeneas said:
    Was there ever a solution to this "No ID address" problem ?

    You need to call the function "settings_load()" at the start of your application, as explained in Bluetooth Stack Architecture: Persistent Storage:
    "Once enabled, it is the responsibility of the application to call settings_load() after having initialized Bluetooth (using the bt_enable() API)."

    Aeneas said:
    Rather than  settings_load() , is there a settings_store() functionality
    to initialize whatever data fields are defined ?

    For more information on settings, see Settings.

    Regards,
    Sigurd Hellesvik

  • When positioned immediately after the bt_enable() call,

    the "No ID address" message does still display in the the boot term display,

    but then is followed  by an Identity line with a legit number,

    so maybe it does work.

    ===============================================

    [00:00:00.010,040] <inf> bt_hci_core: bt_init: No ID address. App must call settings_load()
    Bluetooth initialized
    [00:00:00.010,650] <inf> bt_hci_core: bt_dev_show_info: Identity: AA:BB:CC:DD:EE:FF (random)

    ===============================================

Related