In Windows you'd expect that the device goes back to 'Paired' from 'Connected' if Windows doesn't find a reason to maintain a connection - which would be the case if it didn't think your device was a HID device.
Just as a quick sanity check, what happens if you just do:
var kb = require("ble_hid_keyboard");
NRF.setServices(undefined, { hid : kb.report });
without any of the other services?
I might be that if windows sees the 180A device information service but it isn't in the format it expects, it just drops the connection...
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
In Windows you'd expect that the device goes back to 'Paired' from 'Connected' if Windows doesn't find a reason to maintain a connection - which would be the case if it didn't think your device was a HID device.
Just as a quick sanity check, what happens if you just do:
without any of the other services?
I might be that if windows sees the 180A device information service but it isn't in the format it expects, it just drops the connection...