kmk_firmware/docs/Getting_Started.md

3.2 KiB

Getting Started

Microcontrollers

KMK will run on most microcontrollers supported by Circuitpython. Our recommended microcontrollers are found here

Firmware

KMKPython

KMKPython is a fork of Circuitpython, but with libraries for most extensions built in. This saves you from having to get them all and keep them updated yourself. There may be other features added in the future that are exclusive to KMKPython. For the nice!nano, this is highly recommended, and used in place of Circuitpython.
Notable differences include

  • Built in libraries for bluetooth, RGB, and more
  • Saves space as builds are optimized for keyboards
  • Microcontrollers like the nice!nano will be able to access all features out of the box.

Circuitpython

Circuitpython can be installed by following this guide using the guide here. It's recommended to run the latest stable version that is at least 5.0 or higher. Beta versions may work, but expect limited support.

Notable differences include

  • Supports more devices
  • Less built in libraries. If using RGB, bluetooth, and more, you will have to add these libraries yourself
  • Some devices such as the nice!nano don't have much free space, so not all features can be installed at the same time

Getting KMK

You can always find the latest releases on our CDN, in compiled and optimized and raw, hackable text file forms. These follow the master branch here on GitHub. Just get the KMK folder and drop this directly in the CIRCUITPYTHON directory (not in a sub folder). Make sure to extract the zip, and put the kmk folder on the root of the CIRCUITPY drive on the microcontroller

Turning a controller into a keyboard

Supported keyboards

If your keyboard and microcontroller are officially supported, simply visit the page for your files, and dropping them on the root of the "flash drive". Those pages can be found here. You will need the kb.py and main.py. More advanced instructions can be found here. If using Curcuitpython and NOT KMKPython, you will also need boot.py

Porting a keyboard

If you are porting a board to KMK, check the page here.

Handwired Keyboard

If you are doing a hand wire, check here

Additional features

Want to have fun features such as RGB, split keyboards and more? Check out what extensions can do here

Debugging

Debugging help can be found here

Additional help and support

If you need support with KMK or just want to say hi, find us in #kmkfw:klar.sh on Matrix. This channel is bridged to Discord here for convenience. If you ask for help on chat or open a bug report, if possible please give us your commit SHA, found by running from kmk.consts import KMK_RELEASE; print(KMK_RELEASE) in the REPL on your controller.