Custom bluetooth keyboard
Bluetooth conversion of a Kinesis contour keyboard to a bluetooth keyboard.
Brainstorming
Available approaches
Options | Pros | Cons |
---|---|---|
USB HID to bluetooth adapter |
|
|
PS/2 to bluetooth adapter |
|
|
Custom replacement keyboard controller with integrated bluetooth |
|
|
Features
- Bluetooth module might have audio capabilities in addition to the required HID function
- Use keyboard as audio extender - include a headphone port in keyboard
- Kinesis has a key recognition click speaker built in which can be hard to hear when listening to music, but might still annoy others
- Overlay key click sound over bluetooth audio signal
- USB interface for charging
- disable bluetooth while charging and instead use the USB connection
- Saving, editing, and uploading custom keyboard layouts to the keyboard from the computer
- Cross platform application
- Keyboard layers could be saved, exported, and uploaded individually
- Example:
- Standard keyboards have "qwerty" on the base layer and the shift key brings them to the next layer containing "QWERTY" (assuming qwerty keyboard)
- The Kinesis firmware has a keypad layer, so when you press the keypad button, the keys under the right hand become a numpad and the shift key moves between the layers of the numpad (numbers or arrows)
- Separate keys and their shifted values for more finely tuned layouts (can be done in xmodmap in Linux, but this isn't portable/cross platform)
- May not act as expected in some programs as normally it is the computer that determines the shift's effect on the key, not the keyboard
- Probably need to take special consideration into key sequences (eg pressing shift then x as opposed to x then shift)
- Example:
- Integrated pointing device
- Bluetooth pedal
- Needs to connect to the controller directly for most functions, so really only feasible with the custom controller
- Need to verify keyboard's bluetooth controller can connect to two devices at once (PC and pedal(s))
Prototype
The Kinesis Advantages was found to natively support PS/2 output. This was tested using the PS/2 cable from a Kinesis Essential 132 (the 132 was also found to be capable of outputting USB using the Kinesis Advantages USB cable/board). The USB Kinesis Advantage is the first board that is going under the knife. Because of the relative simplicity of reading PS/2 data, this is the method that will be used.
PS/2 communication (according to the Arduino PS/2 library) only requires an interrupt pin and a generic IO pin. The WT12 requires a serial channel. These requirements are pretty basic, so any microcontroller should work fine. Additional IO might be desirable for a BT pairing button, but this feature could also be embedded into a special key combination on the keyboard itself.
Parts
- Bluegiga WT12 Bluetooth module (serial only breakout board - $40, full breakout board - $50)
- Microcontroller development board
- Arduino (easy to use, PS/2 libraries) - $10-$50
- ATmega32u4 based dev board (native USB HID output which can be used while plugged in and charging for improved reliability and charging speed) - $15-$40
- MSP430 (specialize in low power, great for battery operation) - $5+
- Logic level converter (PS/2 device requires 5v and WT12 requires 3.3v; microcontroller could use either) - $2
- Power supply (for testing could use bench supply but USB charged Lithium Ion would be good to prototype too)
Reference
- Development example using Bluegiga WT12
- WT12 breakout boards - supposedly open hardware, but I haven't seen the layout files yet
- WT12 module
- Custom bluetooth IBM Model M using a salvaged bluetooth module from a mini keyboard - salvaged PCB
- Custom bluetooth IBM Model M using a salvaged bluetooth module from a mini keyboard - custom PCB
- Custom bluetooth HHKB using the WT12
- Major Kinesis mod project - includes a collection of other Kinesis mods
- Split Kinesis mod - includes PCB scans from one version of the Kinesis