Heavily update the README to a more "releaseable" state
This commit is contained in:
parent
5b49e6d098
commit
c1b1be91dd
67
README.md
67
README.md
@ -1,31 +1,36 @@
|
|||||||
# KMK: Mechanical keyboard firmware for humans (and ARM microcontrollers)
|
# KMK: Python-based keyboard firmware for humans (and ARM microcontrollers)
|
||||||
|
|
||||||
[](https://circleci.com/gh/KMKfw/kmk_firmware/tree/master)[](https://cla-assistant.io/KMKfw/kmk_firmware)
|
[](https://circleci.com/gh/KMKfw/kmk_firmware/tree/master)[](https://cla-assistant.io/KMKfw/kmk_firmware)
|
||||||
|
|
||||||
KMK is a firmware for (usually mechanical) keyboards, written in
|
KMK is a firmware for (usually mechanical) keyboards, running on
|
||||||
[MicroPython](https://micropython.org/) and
|
[CircuitPython](https://github.com/adafruit/circuitpython). It aims to provide a
|
||||||
[CircuitPython](https://github.com/adafruit/circuitpython), heavily inspired by
|
means to write complex keyboard configurations quickly, without having to learn
|
||||||
QMK (and with some additions of our own). Python may not be the fastest thing on
|
much "real" programming, while preserving at least some of the hackability and
|
||||||
the planet, but it's a joy to write, and bringing that ease of maintainership to
|
DIY spirit of CircuitPython. Learn more about the rationale of KMK in `Why KMK?`
|
||||||
keyboard firmware (often a world of C and all the crazy error states C can
|
below.
|
||||||
provide) opens up custom keyboards to whole new demographics. KMK currently only
|
|
||||||
supports handwired keyboards (see "Supported Devices" below), but work has begun
|
|
||||||
on both ports to existing keyboards, as well as converter devices to allow
|
|
||||||
existing keyboards with Pro Micro pinouts to use KMK-supported microcontrollers.
|
|
||||||
As always in open-source, KMK is a work in progress, and help is welcome!
|
|
||||||
|
|
||||||
This project is currently written and maintained by:
|
This project is currently written and maintained by:
|
||||||
|
|
||||||
- [Josh Klar (@klardotsh)](https://github.com/klardotsh)
|
- [Josh Klar (@klardotsh)](https://github.com/klardotsh)
|
||||||
- [Kyle Brown (@kdb424)](https://github.com/kdb424)
|
- [Kyle Brown (@kdb424)](https://github.com/kdb424)
|
||||||
|
|
||||||
This project also owes a `$BEVERAGE_OF_CHOICE` to some wonderful people in the
|
With community help from:
|
||||||
ecosystem:
|
|
||||||
|
- [Scott Shawcroft (@tannewt)](https://github.com/tannewt)
|
||||||
|
|
||||||
|
> Scott is the lead developer of the CircuitPython project itself at Adafruit.
|
||||||
|
> KMK, however, is not officially sponsored by Adafruit, and is an independent
|
||||||
|
> project.
|
||||||
|
|
||||||
|
Lastly, we'd like to make a couple of shoutouts to people not directly
|
||||||
|
affiliated with the project in any way, but who have helped or inspired us along
|
||||||
|
the way:
|
||||||
|
|
||||||
- [Jack Humbert (@jackhumbert)](https://jackhumbert.com/), for writing QMK.
|
- [Jack Humbert (@jackhumbert)](https://jackhumbert.com/), for writing QMK.
|
||||||
Without QMK, I'd have never been exposed to the wonderful world of
|
Without QMK, I'd have never been exposed to the wonderful world of
|
||||||
programmable keyboards. He's also just an awesometastic human in general, if
|
programmable keyboards. He's also just an awesometastic human in general, if
|
||||||
you ever catch him on Discord/Reddit/etc.
|
you ever catch him on Discord/Reddit/etc. Jack also makes fantastic hardware -
|
||||||
|
check out [his store](https://olkb.com)!
|
||||||
|
|
||||||
- [Dan Halbert (@dhalbert)](https://danhalbert.org/), for his amazing and
|
- [Dan Halbert (@dhalbert)](https://danhalbert.org/), for his amazing and
|
||||||
unjudgemental support of two random dudes on Github asking all sorts of
|
unjudgemental support of two random dudes on Github asking all sorts of
|
||||||
@ -36,6 +41,38 @@ ecosystem:
|
|||||||
project would have never gotten off the ground. Thank you, and an extended
|
project would have never gotten off the ground. Thank you, and an extended
|
||||||
thanks to Adafruit.
|
thanks to Adafruit.
|
||||||
|
|
||||||
|
## Why KMK?
|
||||||
|
|
||||||
|
A question we get from time to time is, "why bother with KMK when QMK already
|
||||||
|
exists?", so here's a short bulleted list of our thoughts on the matter (in no
|
||||||
|
particular order):
|
||||||
|
|
||||||
|
- Python is awesome
|
||||||
|
- Python is super easy to write
|
||||||
|
- Python provides fewer footguns than C
|
||||||
|
- KMK cut all the "tech debt" of supporting AVR controllers, and frankly even
|
||||||
|
most ARM controllers with under 256KB of flash. This let us make some very
|
||||||
|
user-friendly (in our biased opinions) design decisions that should make it
|
||||||
|
simple for users to create even fairly complex keyboards - want a key on your
|
||||||
|
board that sends a shruggie (`¯\_(ツ)_/¯`)? No problem - it's supported out of
|
||||||
|
the box. Want a single key that can act as all 26 alphabet characters
|
||||||
|
depending on the number of times it's tapped? You're insane, but our simple
|
||||||
|
Tap Dance implementation has you covered (without a single line of matrix
|
||||||
|
mangling or timer madness)
|
||||||
|
- KMK supports a few small features QMK doesn't - most are probably not
|
||||||
|
deal-closers, but they exist no less. Probably the most notable addition here
|
||||||
|
is `Leader Mode - Enter`. Check out `docs/leader.md` for details on that.
|
||||||
|
- KMK plans to support some fairly powerful hardware that would enable things
|
||||||
|
like connecting halves (or thirds, or whatever) of a split keyboard to each
|
||||||
|
other via Bluetooth. This stuff is still in very early R&D.
|
||||||
|
|
||||||
|
## So how do I use it?
|
||||||
|
|
||||||
|
Since KMK is still in some state between "alpha" and "beta", flashing KMK to a
|
||||||
|
board is still a process that requires a few lines of shell scripting. Check out
|
||||||
|
`docs/flashing.md` for instructions/details, though note that for now, the
|
||||||
|
instructions mostly assume Unix (Linux/MacOS/BSD) usage. You may want to check
|
||||||
|
out the Windows Subsystem for Linux if you're on Windows.
|
||||||
|
|
||||||
## License, Copyright, and Legal
|
## License, Copyright, and Legal
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user