

This problem does not occur with other operating systems. It turns out that when MTU size is increased, during the pairing process with Windows 10 only a part (the first segment) of the HID Report Map is transferred to the PC.

The result is that now Windows 10 shows exactly the same problem as described above.Īt this point I tried to understand what happened using the nRF Sniffer. (this change also required that I increase the RAM size, which I did). Then, I modified the GATT MTU size in sdk_config.h as folllows: I ran the example on my nRF52840 DK board without changes and it paired without errors with Windows 10. To be sure that the problem is not with my code, I ran a similar test with the original Nordic ble_app_hids_keyboard example from SDK 15.0.0. I found that the problem with Windows 10 seems to be related to the use of the increased GATT MTU size. However, when it comes to testing from a Windows 10 PC, the pairing procedure always fails with an error message: "driver error", and specifically, Device Manager reports "Extra end collection found or end collection not found": Windows7 PC (using a third party Bluetooth driver since not included in Windows7).I have tested the project with success on an nRF52840-DK, connecting it from various peer devices, such as: After subtracting the header, this allows for an effective payload of up to 64 bytes.

For that reason, I had to increase the maximum MTU size ( NRF_SDH_BLE_GATT_MAX_MTU_SIZE ) from the default 23 to 67. The HID device that I have developed however needs to send a larger data payload than a standard keyboard. I have developed a BLE HID (HOGP) device in Nordic SDK 15.0.0 starting from an example project: ble_app_hids_keyboard .
