@Gordon what does BLE Connected, queueing BLE restart for later actually entail?
The bluetooth stack on Puck.js's chip was never designed for devices that modified their services on the fly, and as a result it can only ever add services to the end of the list of services.
So when you enable bluetooth HID, which requires a bunch of changes, Puck.js has to actually restart the bluetooth stack to wipe out all existing services so it can then start again and re-add them in the right order. If it did that when you were connected then the connection would drop - hence the message.
All you need to do is disconnect BLE from the IDE and the BLE stack will restart, then when you reconnect everything will be sorted.
So usually you'd do:
Connect with the IDE
Upload HID code (possibly save it if you want to so it'll work again at power-on)
Disconnect
Now Pair/connect using your operating system's Bluetooth menu
And you're sorted. I think that you can then also connect with the IDE while it's a bluetooth HID device, but I'm not sure if that works on all platforms yet.
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.
The bluetooth stack on Puck.js's chip was never designed for devices that modified their services on the fly, and as a result it can only ever add services to the end of the list of services.
So when you enable bluetooth HID, which requires a bunch of changes, Puck.js has to actually restart the bluetooth stack to wipe out all existing services so it can then start again and re-add them in the right order. If it did that when you were connected then the connection would drop - hence the message.
All you need to do is disconnect BLE from the IDE and the BLE stack will restart, then when you reconnect everything will be sorted.
So usually you'd do:
And you're sorted. I think that you can then also connect with the IDE while it's a bluetooth HID device, but I'm not sure if that works on all platforms yet.