Difference between revisions of "Custom bluetooth keyboard"

From SkullSpace Wiki
Jump to navigation Jump to search
(Available approaches)
Line 46: Line 46:
 
* Saving, editing, and uploading custom keyboard layouts to the keyboard from the computer
 
* Saving, editing, and uploading custom keyboard layouts to the keyboard from the computer
 
** Cross platform application
 
** 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)
  
 
== Reference ==
 
== Reference ==

Revision as of 19:48, 14 September 2011

Bluetooth conversion of a Kinesis contour keyboard to a bluetooth keyboard.

Brainstorming

Available approaches

Options Pros Cons
USB HID to bluetooth adapter
  • No modification of the keyboard necessary
  • USB HID host chips are uncommon and expensive
  • Programming USB HID host may be complicated
  • PS/2 version of keyboard may or may not have USB output (though there are USB related markings on the PCB)
    • If capable, would likely require modifications to the original controller board
PS/2 to bluetooth adapter
  • Simpler to decode than USB HID
  • Any microcontroller can be used
  • USB version of keyboard may or may not have PS/2 output
    • If capable, would likely require modifications to the original controller board
Custom replacement keyboard controller with integrated bluetooth
  • Getting data directly from button matrix is likely simpler than decoding some other protocol
  • Opportunity to add extra features
  • Likely better battery life
  • Any microcontroller (with enough IO) can be used
  • Kinesis keyboards have some advanced programmability - reimplementing that on a custom controller could take some time
  • Requires interfacing with the key matrix directly which either requires special connectors or soldering to the key matrix

Features

  • Bluetooth module might have HID and audio capabilities
    • 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)

Reference