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

HID keyboard sample is not discovered by Windows10

I run blue_app_hids_keyboard_pca10056_s140 sample on nRF52840-DK. I try to connect with Windows 10 PC, but PC does not discover Nordic_Keyboard.

I found advertising is sent every 25ms. PC send SCAN_REQ, but SCAN_RSP is not always sent back by nRF. SCAN_RSP reply rate is 3/10 (3 times per 10).

With SANWA BT4.0 mouse, it reply SCAN_RSP 10/10 rate. PC always found BT4.0 mouse.

I also tested with SEGGER Embedded Studio debug mode, SCAN_RSP reply rate is 0/10.

Do you know how to fix HID discover issue?

Do you know how to improve SCAN_RSP reply rate on HID sample?

SDK is 15.3

  • Hi,

    I run blue_app_hids_keyboard_pca10056_s140 sample on nRF52840-DK. I try to connect with Windows 10 PC, but PC does not discover Nordic_Keyboard.

    The ble_app_hids_keyboard example works with Windows 10, so it is probably something with your setup. Can you confirm that the computer you are testing with support BLE (Bluetooth version >= 4.0.0)? (I don't know if the other mouse you have tested with use BLE or Bluetooth classic). Which Bluetooth chipset is in your PC?

    I found advertising is sent every 25ms. PC send SCAN_REQ, but SCAN_RSP is not always sent back by nRF. SCAN_RSP reply rate is 3/10 (3 times per 10).

     How have you seen this? A sniffer trace? If so, can you upload it to this case?

    Do you know how to improve SCAN_RSP reply rate on HID sample?

    The nRF should always reply to SCAN_REQ as long as it is received in time. It could be that some packets are lost if there is alot of noise or long distance between the mouse and PC, but that does not seem likely(?). 

  • I still failed with PC10056 HID keyboard sample. I use Windows10 ver1903, BLE chip is DW1560 bluetooth4.0 LE.

    I attach cfa capture file.

    I compared with ESP32 HID sample, which is discovered by Windows 10. It returns full info with SCAN_RSP,

    even nRF only return empty SCAN_RSP.

    Do you have option for SCAN_RSP includes appearance, UUID and local_name?

    Thanks,

    nrf_hid_mydell_f2.cfa

  • Hi,

    The HID keyboard example in the SDK does not use any scan response data, as there is no need (the appearance, full name, and HID UUID are in the advertising packet). Therefore, the scan response packet is empty. However, you can modify the advertisign_init() function in <SDK>\examples\ble_peripheral\ble_app_hids_keyboard\main.c to include it by populating init.srdata if you need it for some reason.

  • I try to add device name on init.srdata, but Windows 10 settings does not discover.

    If I run BLE central scan sample on Windows 10, it discovered Nordic_Keyboard.

    Windows 10 Settings does not discover nRF52 HID sample.

    I tested 3 different Windows 10 PC and BLE chip combination, all failed.

    Windows 10, Intel AC-7260 : Not discover

    Windows 10, Intel AC-9560 : Not discover

    Windows 10, DW1560 : Not discover.

  • Hi,

    That's odd. But as mentioned the name is already there in the advertising packet, so there is no good reason for putting it in the scan response packet instead (unless you need to put some other data in the advertising packet, and have to move something to the scan response for that reason).

    • Have you checked that the nRF is actually advertising and that there is no error check being hit?
    • Do you have a sniffer trace?
    • And does an unmodified example work, if you just go for a precompiled .hex file from <SDK>\examples\ble_peripheral\ble_app_hids_keyboard\hex\ ?
Related