MCPcopy Index your code
hub / github.com/kiibohd/controller

github.com/kiibohd/controller @v0.5.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.8 ↗ · + Follow
2,880 symbols 5,749 edges 439 files 1,748 documented · 61% 2 cross-repo links updated 3y agov0.5.8 · 2021-09-29★ 811140 open issues

Browse by type

Functions 2,387 Types & classes 493
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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.

GitHub Action Status GitHub Action Status Release Environment Total alerts Language grade: Python Release Version

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

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.

Modules

           +------------------------------------------------+
           |     Lib                              Debug     |
           +------------------------------------------------+

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

               Hardware
               Control

General Code can be found in Lib.

KLL

KLL Overview

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).

Bootloader

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

Core symbols most depended-on inside this repo

Shape

Function 2,213
Class 315
Enum 178
Method 174

Languages

C71%
C++21%
Python9%

Modules by API surface

Lib/ASF/sam/drivers/pmc/pmc.c88 symbols
Output/SeggerRTT/SEGGER_SYSVIEW.c74 symbols
Scan/TestIn/Tests/common.py73 symbols
Lib/ASF/sam/drivers/adc/adc.c59 symbols
Macro/PixelMap/pixel.c57 symbols
Lib/CMSIS/Include/arm_math.h57 symbols
Output/HID-IO/hidio_com.c51 symbols
Lib/ASF/sam/drivers/pio/pio.c50 symbols
Scan/TestIn/host.py49 symbols
Lib/host.py47 symbols
Lib/ASF/sam/drivers/pwm/pwm.c46 symbols
Bootloader/usb.c43 symbols

Used by 2 indexed graphs manifest dependencies, hub-wide

For agents

$ claude mcp add controller \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page