keybrd library is an open source library for creating custom-keyboard firmware.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

README.md 2.9KB

8 years ago
8 years ago
8 years ago
8 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. keybrd library for creating keyboard firmware
  2. =============================================
  3. keybrd library is an open source library for creating custom-keyboard firmware.
  4. The keybrd library allows keyboard designers to develop and publish their firmware simply as possible.
  5. The resulting keyboard firmware is compatible with standard USB keyboard drivers.
  6. keybrd library can support any keyboard configuration:
  7. * one-piece
  8. * split with shift registers
  9. * split with I/O expander
  10. * single-layer
  11. * multiple-layer
  12. Multiple-layer keyboards can write symbols without using the shift key:
  13. ~ ! @ # $ % ^ & * () _ {} | < > : ?
  14. keybrd library leverages the Arduino environment to create keyboard firmware.
  15. The Arduino development environment is free, and easy for novice programmers to setup and learn.
  16. The keybrd library has been tested on Teensy LC, Teensy 2.0, 74HC165 shift registers, and PCA9655E I/O expander.
  17. > The keybrd library is in Beta testing. The public API should not be considered stable.
  18. Example minimal keybrd sketch
  19. -----------------------------
  20. A [minimal keybrd sketch](/tutorials/keybrd_1_breadboard/keybrd_1_breadboard.ino)
  21. is 40 lines of code for a 4-key keyboard.
  22. The sketch is small because the keybrd library takes care of the low-level details.
  23. It runs the breadboard keyboard in this picture.
  24. <img src="tutorials/keybrd_1_breadboard/breadboard_keyboard_2x2.JPG" title="breadboard keyboard" alt="breadboard keyboard" style="height:290px;width:328px;">
  25. Example complex keybrd sketch
  26. -----------------------------
  27. keybrd_DH and its instantiation files contain about 800 lines of code.
  28. It emulates the DataHand keyboard.
  29. The layout has 52 keys, 4 layers, 6 sub-layers, 2 matrices, 8 LEDs, and blinking LEDs.
  30. [keybrd_DH_library_developer_guide.md](https://github.com/wolfv6/keybrd_DH/blob/master/doc/keybrd_DH_library_developer_guide.md)<br>
  31. [mainSketch.ino](https://github.com/wolfv6/keybrd_DH/blob/master/examples/keybrd_DH/mainSketch.cpp)<br>
  32. [instantiations_pins.h](https://github.com/wolfv6/keybrd_DH/blob/master/src/instantiations_pins.h)<br>
  33. [instantiations_scancodes.h](https://github.com/wolfv6/keybrd_DH/blob/master/src/instantiations_scancodes.h)<br>
  34. [instantiations_layercodes.h](https://github.com/wolfv6/keybrd_DH/blob/master/src/instantiations_layercodes.h)<br>
  35. [instantiations_rows_L.h](https://github.com/wolfv6/keybrd_DH/blob/master/src/instantiations_rows_L.h)<br>
  36. [instantiations_rows_R.h](https://github.com/wolfv6/keybrd_DH/blob/master/src/instantiations_rows_R.h)
  37. ![hweller](images/datahand.jpg "DataHand")
  38. Support
  39. -------
  40. [Guides](doc) and [tutorials](tutorials) are provided.
  41. keybrd tutorial_1 shows how to make a breadboard keyboard.
  42. The remaining [keybrd tutorials](tutorials) show how to create custom keybrd firmware.
  43. Please ask questions in [keybrd library for keyboard firmware](geekhack todo) thread if something is not clear.