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

Driver error when trying to pair with Windows 10 computer

I'm writing code for PCA10040 basing on UART/NUS example. There are no big changes: different UUIDs and just one characteristic for both reading and writing. I can connect using nRF Master Control Panel without any problem. But I can't on Windows 10. The board is discovered but Windows can't pair with it. After pairing attempt there is status "Driver error". When I look a device manager there is an exclamation mark at my board. The status code is 10: This device cannot start. Additional code is STATUS_DEVICE_POWER_FAILURE. I have different board with ST's BlueNRG-MS BLE chip with exactly the same GATT services and it works perfectly with Windows 10. I tried to add static PIN but it didn't change anything. Windows doesn't even ask for PIN, it just fails during pairing.

My question is: what Windows 10 needs to pair? What should I add to BLE stack initialization?

EDIT: Some screenshots:

Nordic UART example ready to pair, paired and connected.

UART example ready to pair

UART example paired

UART example connected

My code running on board discovered by Windows and ready to pair:

Ready to pair

Driver error after failed pairing:

Driver error

Error in Device manager

device manager

  • @grzegorz : Have you tried to use Master Control panel on the PC ? You would need a nRF5 dongle/DK to use it.

    Note that the ble_app_nus doesn't support pairing, this could be the reason why windows 10 doesn't like it. You can try to test with the ble_app_proximity for example.

    Note that Windows 10 natively doesn't know what to do with the ble_app_uart. You need an application on the PC to interact with the board.

  • @hungbui: I don't have the dongle so I couldn't try MCP on PC. I noticed this app doesn't support pairing and it notifies about that (BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP), but when I compiled and ran the example Windows paired without any problem. Maybe it didn't conduct real pairing but at least the board was reported as paired and there were no errors. I already have the application for PC, it works but needs the device to be paired first. BlueNRG-MS gets paired and the app works with it.

  • I don't think it would actually pair. You mentioned above "Windows can't pair with it" but then now it worked ? If you want to check if it's paired or not you can try to use the sniffer.

    Note that that there are many examples in the SDK that support pairing that you can use as the base project to modify. ble_app_proximity for example.

  • I think Windows naming convention is a bit confusing here. Pairing means in this case adding and installing a BLE device, even if there is no pairing in BLE sense. I've added screenshots showing how it applies to UART example. The board gets paired when running UART example, there is "driver error" when running my code. I'll try to modify Nordic example once again and see what I've missed.

  • @Grzegorz: What do you have with your attribute table and advertising packet ? Which profiles and services ?

    I suspect Windows detected some Bluetooth adopted profile and try to do some procedure defined by the spec when your device can't support it, probably.

Related