Clackety Keyboards Powered by Python
Go to file
Josh Klar 0865a828c4
Merge pull request #4 from klardotsh/first-steps
Repo setup and a basic matrix-scan-then-do-nothing keyboard
2018-09-02 23:47:42 -07:00
boards/klardotsh Escape hatches: flash the user keyboard script as part of DFU rather than pushing with ampy. WAY more stable, mostly unbrickable now 2018-09-02 23:39:55 -07:00
entrypoints Escape hatches: flash the user keyboard script as part of DFU rather than pushing with ampy. WAY more stable, mostly unbrickable now 2018-09-02 23:39:55 -07:00
kmk A basic 2x2 matrix that can auto-flash to a Feather with a compatible bootloader 2018-09-02 20:07:07 -07:00
vendor A basic 2x2 matrix that can auto-flash to a Feather with a compatible bootloader 2018-09-02 20:07:07 -07:00
.ampy A basic 2x2 matrix that can auto-flash to a Feather with a compatible bootloader 2018-09-02 20:07:07 -07:00
.gitignore Initial commit 2018-08-30 02:37:54 -07:00
.gitmodules A basic 2x2 matrix that can auto-flash to a Feather with a compatible bootloader 2018-09-02 20:07:07 -07:00
BOARD_SETUP.md Add license and a very basic setup script I used to bootstrap the Feathers 2018-08-30 02:54:26 -07:00
LICENSE.md Add license and a very basic setup script I used to bootstrap the Feathers 2018-08-30 02:54:26 -07:00
Makefile If the entrypoint is already what I want it to be, ignore error states 2018-09-02 23:43:30 -07:00
Pipfile A basic 2x2 matrix that can auto-flash to a Feather with a compatible bootloader 2018-09-02 20:07:07 -07:00
Pipfile.lock A basic 2x2 matrix that can auto-flash to a Feather with a compatible bootloader 2018-09-02 20:07:07 -07:00
README.md Actually write up some start of a README 2018-08-30 13:31:02 -07:00
setup.cfg A basic 2x2 matrix that can auto-flash to a Feather with a compatible bootloader 2018-09-02 20:07:07 -07:00

kmk_firmware

Mechanical keyboard firmware for humans (and ARM microcontrollers)

KMK is a work-in-progress and proof-of-concept firmware for (usually mechanical) keyboards, written in CircuitPython, a fork of MicroPython. This allows for high-level and expressive keyboard programming and creature comforts that C simply doesn't make easy. KMK was heavily inspired by QMK - in fact, KMK was only created because QMK didn't correctly support some hardware I bought, and hacking support in was going to be a heavy uphill battle.

This project is currently written and maintained by @klardotsh and @kdb424.

Supported Devices

Officially Supported

Support Planned/WIP

Unsupported Devices

If you don't see it in "Supported Devices", it won't work out of the box, it's basically that simple. Pull requests are welcome and encouraged to add support for new keyboards. The base requirements for device support are a port of CircuitPython (technically base MicroPython could still work), at least 256KB of flash storage, and USB and/or Bluetooth LE interfaces. DFU bootloaders are very strongly encouraged, but not required.

Devices require at least 256KB of flash to run KMK, and that's already pretty tight. In general this means that no or almost no Arduinos are or will ever be supported. This extends to Arduino-compatibles, including the Pro Micro. If you want to run custom firmware on your Pro Micro-equipped keyboard, or for that matter anything running the ATmega32U4 (Let's Split, Plancks before rev6, hundreds of others), check out QMK, the biggest influence of KMK by far. They're great people.

This project, and all source code within (even if the file is missing headers), is licensed GPLv3 - while the tl;dr is linked, the full license text is included in LICENSE.md at the top of this source tree.

When contributing for the first time, you'll need to sign a Contributor Licensing Agreement which is based on the Free Software Foundation's CLA. The CLA is basically a two-way promise that this code is and remains yours, but will be distributed as part of a larger GPLv3 project. If you'd like to get it out of the way early, you can find said CLA here. If you forget, the bots will remind you when you open the pull request, no worries!