ble_app_hids_keyboard will not run if SEC_PARAM_BOND = 0

Hi Nordic Team,

We have no problem with using ble_app_hids_keyboard app,

However, in some use cases, we would like the application to run as "Just Works" to access other characteristics, say battery voltage characteristics for example. And well in some cases depending on the connected client HID can work without bonding too.

 Testing this just with nrf52 DVK,   When SEC_PARAM_BOND  = 0, the firmware faults.

In debug, runs to the last call in Main.c peer_manager_init();

Appears to be in the peer manager  pm_init(void)?

Any thoughs on how we can get this to run?

Regards,

Eric

Parents
  • Hi Simonr,

    Just to be sure - I set up a "fresh copy of nRF5_SDK_17.1.0_ddde560", opened an unmodified ble_app_hids_keyboard.

    WIth no changes at all, load on to an nrf52-DK.  Pairs with Windows 10 and output HID chars to notepad. OK no problem

    Then With SEC_PARAM_BOND to 0,  erase target, and download. Fails to run.

    Turn on NRF_LOG_BACKEND_RTT_ENABLED 1, 

    J-Link RTT is

    00> <info> app_timer: RTC: initialized.
    00>
    00> <error> app: Fatal error  (repeats ad infinitum)

    - Note - Our main applcation service & char are all Just Works, but for a few situations HID (paired) can only be used. 

    Idea is to add our service&chars to our working HID vresion, and have dual start conditions.

    It now seems that we cannot  start with SEC_PARAM_BOND to 0 - means the standard use case (where HID not needed)  now will fail to work.

    as mentioned with BOND = 0, somewhere in the peer managment it breaks.

    Interesting that these setting below on on Windows machine only, works with sec_param.bond = true; but once connection dropped cannot reconnect.

    Disallow IRKs:

    sec_param.bond = true;
    /* Arbitrary parameters removed. */
    sec_param.kdist_own.enc = 1;
    sec_param.kdist_own.id = 0;
    sec_param.kdist_peer.enc = 1;
    sec_param.kdist_peer.id = 0;
    Regards,
    Eric
Reply
  • Hi Simonr,

    Just to be sure - I set up a "fresh copy of nRF5_SDK_17.1.0_ddde560", opened an unmodified ble_app_hids_keyboard.

    WIth no changes at all, load on to an nrf52-DK.  Pairs with Windows 10 and output HID chars to notepad. OK no problem

    Then With SEC_PARAM_BOND to 0,  erase target, and download. Fails to run.

    Turn on NRF_LOG_BACKEND_RTT_ENABLED 1, 

    J-Link RTT is

    00> <info> app_timer: RTC: initialized.
    00>
    00> <error> app: Fatal error  (repeats ad infinitum)

    - Note - Our main applcation service & char are all Just Works, but for a few situations HID (paired) can only be used. 

    Idea is to add our service&chars to our working HID vresion, and have dual start conditions.

    It now seems that we cannot  start with SEC_PARAM_BOND to 0 - means the standard use case (where HID not needed)  now will fail to work.

    as mentioned with BOND = 0, somewhere in the peer managment it breaks.

    Interesting that these setting below on on Windows machine only, works with sec_param.bond = true; but once connection dropped cannot reconnect.

    Disallow IRKs:

    sec_param.bond = true;
    /* Arbitrary parameters removed. */
    sec_param.kdist_own.enc = 1;
    sec_param.kdist_own.id = 0;
    sec_param.kdist_peer.enc = 1;
    sec_param.kdist_peer.id = 0;
    Regards,
    Eric
Children
No Data
Related