Archived
1
0
keybrd library is an open source library for creating custom-keyboard firmware.
This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2016-11-02 15:28:58 -06:00
doc reverse SS HIGH/LOW in Scanner_ShiftRegsPISOMultiRow::scan() 2016-11-02 15:15:16 -06:00
examples add sr0_LED_shiftRegs.ino, LED_shiftRegs, LED_shiftRegs 2016-10-30 02:30:13 -06:00
images move Debug variables to static 2016-07-21 03:31:36 -06:00
IOE_scan_development add sr0_LED_shiftRegs.ino, LED_shiftRegs, LED_shiftRegs 2016-10-30 02:30:13 -06:00
src rename Scanner_ShiftRegsPISOSingleRow to Scanner_ShiftRegsRead, Scanner_ShiftRegsPISOMultiRow to Scanner_ShiftRegsReadStrobed 2016-11-02 15:28:58 -06:00
tutorials rename Scanner_ShiftRegsPISOSingleRow to Scanner_ShiftRegsRead, Scanner_ShiftRegsPISOMultiRow to Scanner_ShiftRegsReadStrobed 2016-11-02 15:28:58 -06:00
unit_tests add sr0_LED_shiftRegs.ino, LED_shiftRegs, LED_shiftRegs 2016-10-30 02:30:13 -06:00
CONTRIBUTING.md add sr0_LED_shiftRegs.ino, LED_shiftRegs, LED_shiftRegs 2016-10-30 02:30:13 -06:00
library.properties document 2016-07-22 12:16:47 -06:00
LICENSE.txt initial commit keybrd version 0.3.0 2016-05-09 08:05:08 -06:00
README.md fix broken link and formatting 2016-09-28 15:44:44 -06:00

keybrd library for creating keyboard firmware

keybrd library is an open source library for creating custom-keyboard firmware. The keybrd library allows keyboard designers to develop and publish their firmware simply as possible.

keybrd library supports any keyboard configuration:

  • one-piece
  • split with shift registers
  • split with I/O expander
  • single-layer
  • multiple-layer
  • LED indicator lights

Multiple-layer keyboards can write symbols without using the shift key:

~ ! @ # $ % ^ & * () _ {} | < > : ?

keybrd library leverages the Arduino environment to create keyboard firmware. The Arduino development environment is free, and easy for novice programmers to setup and learn.

The keybrd library has been tested on Teensy LC, Teensy 2.0, 74HC165 shift registers, and PCA9655E I/O expander. The resulting keyboard firmware is compatible with standard USB keyboard drivers.

The keybrd library is in Beta testing. The public API should not be considered stable.

Example minimal keybrd sketch

A minimal keybrd sketch is 40 lines of code for a 4-key keyboard. It scans a key matrix just like the big keyboards. The sketch is small because the keybrd library takes care of the low-level details. It runs the breadboard keyboard in this picture.

basic breadboard keyboard

Example complex keybrd sketch

The keybrd_DH sketch is a showcase of the keybrd library's capability. It emulates the DataHand keyboard, which has the most complex layout I know of. Its layout has 52 keys, 3 primary layers, 5 sub-layers, 2 matrices, 8 LEDs, and blinking LEDs. Most layouts are much simpler. keybrd_DH and its instantiation files contain about 800 lines of code.

keybrd_DH_library_developer_guide.md
mainSketch.ino
instantiations_scannersLEDs.h
instantiations_scancodes.h
instantiations_layercodes.h
instantiations_rows_L.h
instantiations_rows_R.h

hweller

Support

Guides and tutorials are provided.

keybrd tutorial_1 shows how to build a breadboard keyboard. The remaining keybrd tutorials show how to create custom keybrd firmware.

Please ask questions in keybrd firmware library thread if something is not clear.