I've since made a new version using a custom controller that consumes a lot less power.
A little about the project...
This was my first or second Arduino project and I'm not even a coder professionally but I'm posting this project here because what was supposed to be a 3 day $100 project turned into a 1 month $700 rabbit hole (with no end in sight). So I'm hoping this will help anyone with similar ambitions to turn their keyboard wireless. It's not as hard as they say!
Many Thanks to:
Adafruit - This project would never have worked without their well written API's, guides and support in the forums.
Daniel Nugent - His WASD BLE project inspired me to try this with the Kinesis. The Kinesis (unlike the WASD) doesn't fall-back to PS2 however, and the bluetooth module (and API) we'll be using is different .
Dastardly Labs - His youtube video shows you how to put together a USB host on an Arduino Pro Mini. I found the latency too high on the USB host module and Arduino Pro Mini but putting it together teaches you how an Arduino works and you can log out the HID keyboard reports to see what's sent over for each key if you wanted to.
Kinesis Advantage Only?
The parts were chosen and built so that they fit inside a Kinesis but any generic USB (not PS2) keyboard should work.
Do I need to be an Electrical Engineer to do this?
You don't need to know much about hardware but it helps to remember a little high school electronics to know what's going on. Google Ohm's law.
Some stuff I tried that didn't work
- Read bits straight off the keyboard as if it was PS2.
- Flash HC05 with RN42 firmware (found out there are 2 versions of HC05 and only 1 is flash-able). Seriously it's not worth the trouble, just get a newer chip that can act as a HID Keyboard already and BLE.
- Connect a Bluefruit LE UART Friend (Bluetooth module only) to the Arduino Pro Mini with USB host shield attached. I still don't know why this didn't work but I gave up because the Pro Mini was unreliable in registering key presses anyway.
- Use a duinofun mini usb host with an SAMD21 Mini Dev Breakout (Sparkfun). Don't know why I thought this would work. FYI desoldering is not as easy as you think.