/arduino_tmk_keyboard

Arduino implementations & wrappers for tmk_keyboard

Primary LanguageC++

arduino_tmk_keyboard

Simple (and incomplete) Arduino/C++ wrapper for the fantastic TMK Keyboard Firmware

This implementation is "incomplete" because at the moment the only provided protocol is PS/2, and the only host implementation is for the excellent Bluefruit EZ-Key HID from Adafruit Industries.

If you have the ability to compile & load AVR C code onto your microcontroller, there is nothing that this library provides that you could not do directly with tmk_keyboard. However you may be interested in this project if you want to:

  • compile and load keyboard or converter firmware in the Arduino IDE
  • utilize object oriented techniques to create new implementations of the tmk_keyboard components (host, matrix, etc)
  • utilize other Arduino libraries in custom tmk_keyboard action functions
  • allow your Arduino project to utilize existing keyboard or mouse hardware for input
  • make your Arduino project appear as a keyboard or mouse to a PC without special drivers, including the BIOS at boot time
  • utilize functionality not found in the standard Keyboard/Mouse libraries on Leonardo such as consumer and system keys

So far this wrapper has been developed for a specific project, but I will expand it and make it more configurable in the future. In short order I plan to integrate TMK's functionality for:

  • mouse keys
  • V-USB host implementation
  • PJRC host implementation (if possible)

"Internal" components (such as protocols, command, bootmagic, etc) are integrated using their native C implementations.

"API" components (such as hosts, matrices, and keymaps) are refactored into a C++ object heirarchy to allow for easier customization & implementation within the Arduino IDE.

To get started, download this project as a zip file and put it in your Arduino libraries folder. You can use the [terminal_bluefruit_converter] (https://github.com/bgould/arduino-tmk-keyboard/blob/master/examples/terminal_bluefruit_converter/terminal_bluefruit_converter.ino) example to see an example of how to utilize this library to build a bluetooth converter for a terminal Model M keyboard.

Resources: