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 kiibohd.com for details on the KLL (Keyboard Layout Language) Spec.
Wiki <-- If you have questions start here
-->Official Keyboards
- Gemini Dusk and Dawn
- Infinity 60%
- Infinity 60% LED
- Infinity Ergodox
- K-Type
- Kira
- WhiteFox
The Kiibohd firmware supports a lot of other keyboards, but these are more obscure/custom/lesser known.
Compilation
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
- atsam4s
- Teensy 2.0 (Deprecated)
- Teensy 2.0++ (Deprecated)
- Teensy 3.0
- Teensy 3.1/3.2
- mk20dx128vlf5
- mk20dx256vlh7
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.
Modules
+------------------------------------------------+
| Lib Debug |
+------------------------------------------------+
+-------------+ +-------------+ +--------------+
Input +----> Scan +--+ Macro +--+ Output +----> Output
Data | +---------+ | | +--------+ | | | Data
| | Devices +------+ Pixels | | | |
| +----+----+ | | +--------+ | | |
+------|------+ +-------------+ +--------------+
|
v
Hardware
Control
- Debug Modules - Debug support modules (e.g. cli)
- Scan Modules - Defines keyboard behaviour (e.g. K-Type)
- Macro Modules - KLL support modules
- Output Modules - Defines what the keyboard talks over (e.g. USB)
General Code can be found in Lib.
KLL
Bootloader
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
Contributions welcome!
- Bug reports
- Documentation and Wiki editing
- Patches (including new features)
Licensing
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