Difference between revisions of "Custom bluetooth keyboard"
(→Prototype) |
(→Schematic) |
||
Line 78: | Line 78: | ||
* 3v3 voltage regulator - $2 | * 3v3 voltage regulator - $2 | ||
* [http://ca.mouser.com/ProductDetail/E-Switch/EG1206A/?qs=sGAEpiMZZMtHXLepoqNyVeddQslW3BFOwgoxRUo4V%252bU%3d Right angle SPDT slide switch] with 3mm spacing between pins - for enabling memory lockout feature of the Kinesis pro on other versions of the keyboard - $0.50 | * [http://ca.mouser.com/ProductDetail/E-Switch/EG1206A/?qs=sGAEpiMZZMtHXLepoqNyVeddQslW3BFOwgoxRUo4V%252bU%3d Right angle SPDT slide switch] with 3mm spacing between pins - for enabling memory lockout feature of the Kinesis pro on other versions of the keyboard - $0.50 | ||
+ | |||
== Schematic == | == Schematic == | ||
<tt> | <tt> | ||
− | VCC1 = 5V VCC2 = 3V3 | + | VCC1 = 5V VCC2 = 3V3 |
− | + | VCC1 VCC1 VCC1 VCC2 VCC2 VCC1 VCC2 | |
− | + | _____________ ^ _____________ ^ ^ _____________ ^ ^ ____________ ^ ^ | |
− | |-' | | + | | |-' | |-' '-| |-' '-| | | | |
− | | | | + | | | | | RTS | | RTS | | | ___________ | |
− | | | | + | | | | |---------| |---------| | | | | | |
− | | CLOCK | | + | | | CLOCK | | CTS | LOGIC | CTS | | |----| Voltage |----| |
− | KINESIS |-------| | + | | KINESIS |-------| ARDUINO |---------| LEVEL |---------| BLUEGIGA | | | Regulator | | |
− | | DATA | | + | | | DATA | | TXD | CONVERTER | RXD | WT12 | === |___________| === |
− | |-------| | + | | |-------| |---------| |---------| | | | | |
− | | | | + | | | | | RXD | | TXD | | '----------+----------' |
− | | | | + | | | | |---------| |---------| | | |
− | + | |_____________|-, |_____________|-, ,-|_____________|-, ,-|____________| | | |
− | + | v v v v v v | |
− | + | GND GND GND GND GND GND | |
</tt> | </tt> | ||
Revision as of 14:45, 28 September 2011
Bluetooth conversion of a Kinesis contour keyboard to a bluetooth keyboard.
Contents
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)
- 3v3 voltage regulator - $2
- Right angle SPDT slide switch with 3mm spacing between pins - for enabling memory lockout feature of the Kinesis pro on other versions of the keyboard - $0.50
Schematic
VCC1 = 5V VCC2 = 3V3
VCC1 VCC1 VCC1 VCC2 VCC2 VCC1 VCC2 _____________ ^ _____________ ^ ^ _____________ ^ ^ ____________ ^ ^ | |-' | |-' '-| |-' '-| | | | | | | | RTS | | RTS | | | ___________ | | | | |---------| |---------| | | | | | | | CLOCK | | CTS | LOGIC | CTS | | |----| Voltage |----| | KINESIS |-------| ARDUINO |---------| LEVEL |---------| BLUEGIGA | | | Regulator | | | | DATA | | TXD | CONVERTER | RXD | WT12 | === |___________| === | |-------| |---------| |---------| | | | | | | | | RXD | | TXD | | '----------+----------' | | | |---------| |---------| | | |_____________|-, |_____________|-, ,-|_____________|-, ,-|____________| | v v v v v v GND GND GND GND GND GND
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