Windows 10 Driver Error
mholin1 opened this issue · 24 comments
Hello. trying to make a Bluetooth mouse/keyboard for a Windows 10 PC and starting with the "HID_test" Example from the Arduino BLEPeripheral Library on a Sparkfun nRF52832 Breakout Board using only the mouse portion of HID_test for now. The PC sees "HID" local name and starts to pair but then after few seconds displays "Driver Error" and drops the connection. A commercial Bluetooth mouse pairs and works with the same PC however.
Also found the function:
bleHID.clearBondStoreData();
from HID_test conflicts with the nRF52832 Breakout Board bootloader so just using a J-Link to program the application for now.
Hoping someone might have some insight into that Driver Error ?
@mholin1 I haven't tried this setup myself, but I recall the Windows pairing process being a bit weird compared to Android and iOS.
Thanks for taking a look. Someone on the Nordic Developer Zone was getting a similar "Driver Error" and the resolution seemed to be something about bonding? Admittedly I am not familiar enough with the BLE spec. or the Library to know how to implement bonding.
Also, can you say if that bleHID.clearBondStoreData(); statement is necessary for pairing? And any idea why it is conflicting with the bootloader? It looks like you are putting the bond store up at the last page of flash memory which should be fine as far as I can tell.
I moved the bond store to just under the bootloader (from default 0x7F000 to 0x79000) but still getting "Driver Error" messages from Windows 10 while attempting to pair. Has anybody ever used this Library successfully with a Windows 10 HID application (mouse or keyboard)?
Same problem with me as well..... Would some one help us with this issue?
Regards
Varun
Hello Varun, I eventually had to give up. No real support from any entity involved. Tried the Cypress PSoC 4 parts and it works fine. PSoC Creator light years simpler development environment. Cypress tech support is as abysmal as this Nordic platform but at least the parts work as advertised.
Note: At least Nordic Tech Support tried to help but it was not their code.
I had a problem with the GATT HID driver in windows 10 as well. Uncommenting the line
"bleHIDPeripheral.setReportIdOffset(1);" solved it for me.
I have my BLE nano 2 on a swd probe, so I haven't ran into any bootloader issued.
The line was in the HID_Keyboard example. I haven't had any successful inputs send from the device yet, but the driver error went away and the device is loaded correctly according to windows. I'm currently on the windows 10 1709 thing. My sketch is just the HID_Keyboard example with the ifdef surrounding bleHIDPeripheral.setReportIdOffset(1) removed.
Can you post a link to the libraries you're using? Maybe it's just a problem with the descriptor used in this library.
Cheers
Rico
It seems we're missing 2 BLE reports. The standart says there should be 2 more for keyboards at least.
BootKeyboardOutputReport and BootKeyboardInputReport
For Mouse it should be BootMouseInputReport.
Can you check with a BLE explorer tool if your working devices have those services?
Cheers
Rico
Yes
I also finally gave up on this. The nordic sdk keyboard sample works with some changes. I got my usb to ble keyboard adapter working using a max3421E and a blenano2.
Hi @sandeepmistry is it correct the BLEPeripheral Library does not support Windows 10? I tried for many hours to get the HID example working, bonding with Windows 10, but without result. The sample works fine with Macbook & iPhone, but not with Windows 10. I'm really desperate, because I like to control my powerpoint presentation via a Neoplc UC + NRF52 board. Can you confirm Windows 10 HID is not supported so I can look after alternatives? Greetz from The Netherlands, Klaas Heek
Same here on BLE400 + Core51822 on windows 10. It connects then disconnects and shows "driver error". Both s110 and s130. I get no "driver error" from Nordic SDK 11 HID sample but I'd rather use Arduino IDE.
Upd. I confirm uncommenting bleHIDPeripheral.setReportIdOffset(1); in the HID_keyboard.ino solves the "driver error" but I still get no real response from the bluetooth keyboard over the air in windows 10. The very same sample works fine for the Android phone though.
Upd. Still get occasional "Driver error" with uncommented setReportIdOffset(1). "This device cannot start. (Code 10) A bad report ID value was found.Report IDs must be within the range of 1-255."
Sorry to open this, but wondering if anyone has any thoughts on this and have tried getting it working with a BLE HID Gamepad. I've got something working perfectly in OSX, but windows 10 will pair and connect, but display no input. Playing with the offset seems to allow some kind of data to be input appear, but definitely not valid.
Moving bond store actually DOES solve the problem, at least for me...but not with a shift of 6(as mentioned in ##164).
I tried a shift of 10(i.e. BLEBondStore(10) ), and it works. Evil magic numbers.
And i'm not sure if anyone still cares about this in 2020...hope this might help someone.
Moving bond store actually DOES solve the problem, at least for me...but not with a shift of 6(as mentioned in ##164). I tried a shift of 10(i.e. BLEBondStore(10) ), and it works. Evil magic numbers. And i'm not sure if anyone still cares about this in 2020...hope this might help someone.
Even in 2023!
Where to change what to do this? And does then also needs to change smth in e.g. clearBondStoreData();?