Skip to content
Kiibohd Controller
Branch: master
Clone or download
haata Initial DAC PDC support
- Sample set and queue functions
  * Set clears current and all queue samples and runs the specified
  * Queue adds a sample to the queue as long as it hasn't already been
Latest commit 8c603ce May 20, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
Bootloader Moving debug pin assignment in bootloader to be keyboard specific May 4, 2019
Debug Fixing HID-IO merge compiler errors and warnings Mar 25, 2019
Dockerfiles Updating Arch Linux dockerfile Feb 8, 2019
Documentation Updating to use wiki Mar 10, 2019
Keyboards Adding missing TC entries to ASF for sam4s2a Apr 29, 2019
Lib IS31FL3743B functional on SAM4S Jun 2, 2019
Macro IS31FL3743B functional on SAM4S Jun 2, 2019
Output Cleaning up SAM4S includes Apr 24, 2019
Scan Initial DAC PDC support Jun 2, 2019
.clang-tidy Fixing clang compilation and supporting clang-tidy Mar 4, 2016
.editorconfig Add editorconfig Jan 4, 2018
.gitignore Don't ignore Builds/ dir Sep 8, 2018
.travis.yml Fixing macOS Travis Build Jan 26, 2019
98-kiibohd.rules Fixing SAM4S DFU USB descriptor Sep 10, 2018
CMakeLists.txt sam: Drag in ASF USB Stack Sep 7, 2018 Update Dec 18, 2017
LICENSE Converting GPLv3 to LGPLv3 Feb 17, 2019 Adding wiki to main Dec 3, 2018
appveyor.yml Fixing appveyor typo Sep 17, 2018
main.c Adding Kinetis Watchdog timer support Mar 25, 2019
main.h sam: Drag in ASF USB Stack Sep 7, 2018

The Kiibohd Controller

This is the main Kiibohd Firmware. In general, this should be the only git repo you need to clone. The KLL compiler is automatically retrieved during the build process and will warn you if your KLL compiler is too old.

Please refer to the KLL repo or for details on the KLL (Keyboard Layout Language) Spec.

Travis Status Appveyor Status

Visit our IRC channel

Visit our Discord Channel

--> Wiki <-- If you have questions start here

Official Keyboards

The Kiibohd firmware supports a lot of other keyboards, but these are more obscure/custom/lesser known.


Compilation is possible and tested on Windows/Linux/macOS. However, the recommended method is using a Dockerfile.

Then, once you have a docker environment, you can select a build script here.

To compile natively for your platform, refer to the wiki.

Supported Microcontrollers

Adding support for more microcontrollers is possible. Some considerations for minimum specs:

  • ~16 kB of SRAM
  • ~64 kB of Flash

It's possible to port chips with lower specs, but will be more effort and have fewer features.


           |     Lib                              Debug     |

           +-------------+  +-------------+  +--------------+
Input +---->    Scan     +--+    Macro    +--+    Output    +----> Output
Data       | +---------+ |  | +--------+  |  |              |      Data
           | | Devices +------+ Pixels |  |  |              |
           | +----+----+ |  | +--------+  |  |              |
           +------|------+  +-------------+  +--------------+


General Code can be found in Lib.


A custom bootloader (based off of McHCK) is available. This is only necessary when assembling a keyboard with a blank MCU or if you're attempting to re-flash your bootloader (requires external tools).



Contributions welcome!

  • Bug reports
  • Documentation and Wiki editing
  • Patches (including new features)


Licensing is done on a per-file basis. Some of the source code is from PJRC/Teensy, other source code is from the McHck Project. Code written specifically for the Kiibohd Controller use the following licenses:

  • MIT
  • GPLv3
  • Public Domain
You can’t perform that action at this time.