This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

HID Keyboard with DFU work abnormally after reconnect to phone

Hi,

I added DFU function to the example of ble_app_hids_keyboard according to ble_app_hrs_dfu.uvproj.

Test environment: nrf51822_xxAA, SDK_v6_1_0 and S110_v7_1, before tests, I only programmed S110 throug nRFgo to board.

Test steps:

  1. download ble_app_hids_keyboard to board, and run.

  2. on Android phone, search and bonding the keyboard, wait for CONNECTED_LED lighting.

  3. press a key on board, expecting android phone show a char.

  4. turn off Bluetooth of android phone, then turn on, wait for android phone bonding the keyboard and CONNECTED_LED lighting.

  5. press a key on board again, expecting android phone show a char.

Test scenarios:

  1. BLE_DFU_APP_SUPPORT is disabled.
  2. BLE_DFU_APP_SUPPORT is enabled.

Test result:

  1. in scenario 1, android phone will show a char when key press.
  2. in scenario 2, android phone will not show a char after reconnect with keyboard,the error code is 8, NRF_ERROR_INVALID_STATE.

Any ideas?

Thanks and Regards,

James

Parents
  • Hi,

    NRF_ERROR_INVALID_STATE may occur if the application failed to restore the CCCD. Have you allocated enough space in the service context for this now when you've added the DFU service? You can do that by redefining device_manager_cnfg.h -> DM_GATT_CCCD_COUNT.

    That said, I'd recommend migrating your code to a newer SDK if possible as there have been significant improvements. You can find an example based on SDK 10.0.0 in this thread.

Reply
  • Hi,

    NRF_ERROR_INVALID_STATE may occur if the application failed to restore the CCCD. Have you allocated enough space in the service context for this now when you've added the DFU service? You can do that by redefining device_manager_cnfg.h -> DM_GATT_CCCD_COUNT.

    That said, I'd recommend migrating your code to a newer SDK if possible as there have been significant improvements. You can find an example based on SDK 10.0.0 in this thread.

Children
Related