All Projects → KMKfw → Kmk_firmware

KMKfw / Kmk_firmware

Licence: gpl-3.0
Clackety Keyboards Powered by Python

Programming Languages

python
139335 projects - #7 most used programming language
micropython
64 projects

Projects that are alternatives of or similar to Kmk firmware

prk firmware
A keyboard firmware platform in PicoRuby
Stars: ✭ 337 (+155.3%)
Mutual labels:  keyboard, firmware
Ergodox Layout
algernon's ErgoDox EZ layout
Stars: ✭ 135 (+2.27%)
Mutual labels:  keyboard, firmware
Anne Key
Firmware for Anne Pro Keyboard written in Rust
Stars: ✭ 506 (+283.33%)
Mutual labels:  keyboard, firmware
Qmkbuilder
Online GUI for QMK Firmware
Stars: ✭ 254 (+92.42%)
Mutual labels:  keyboard, firmware
Keyberon
A rust crate to create a pure rust keyboard firmware.
Stars: ✭ 355 (+168.94%)
Mutual labels:  keyboard, firmware
Easyavr
Easy AVR USB Keyboard Firmware and Keymapper
Stars: ✭ 479 (+262.88%)
Mutual labels:  keyboard, firmware
Whitefox Keyboard Macos Configuration
⌨ A macOS compatible configuration for Matt3o's Whitefox keyboard.
Stars: ✭ 53 (-59.85%)
Mutual labels:  keyboard, firmware
Ng Keyboard Shortcuts
Dead Simple Keyboard Shortcuts Management for Angular
Stars: ✭ 121 (-8.33%)
Mutual labels:  keyboard
React Native Keyboard Accessory View
Keyboard accessory (sticky) view for your React Native app. Supports interactive dismiss on iOS.
Stars: ✭ 128 (-3.03%)
Mutual labels:  keyboard
Ergotravel
A Portable Ergonomic Split Keyboard inspired from the ErgoDox, Let's Split and Minidox
Stars: ✭ 120 (-9.09%)
Mutual labels:  keyboard
Rpi3
Raspberry Pi 3 UEFI Firmware Images
Stars: ✭ 117 (-11.36%)
Mutual labels:  firmware
Iextractor
Automate extraction from iOS firmware files (.ipsw)
Stars: ✭ 124 (-6.06%)
Mutual labels:  firmware
Pheromone keyboard
Stars: ✭ 128 (-3.03%)
Mutual labels:  keyboard
Mgos To Tasmota
A minimal firmware for OTA (over the air) flashing Tasmota, HAA, or ESPurna from Mongoose OS or compatible firmware types.
Stars: ✭ 118 (-10.61%)
Mutual labels:  firmware
Esp32 Ota Https
Secure over-the-air updates for the ESP32 platform
Stars: ✭ 132 (+0%)
Mutual labels:  firmware
React Native Emoticons
react native emoticons(表情), including emoji😁
Stars: ✭ 119 (-9.85%)
Mutual labels:  keyboard
Heimdall
Heimdall is a cross-platform open-source tool suite used to flash firmware (aka ROMs) onto Samsung Galaxy devices.
Stars: ✭ 1,829 (+1285.61%)
Mutual labels:  firmware
Keyboard
Virtual Keyboard using jQuery ~
Stars: ✭ 1,670 (+1165.15%)
Mutual labels:  keyboard
Scout
Scout - Instruction based research debugger (a poor man's debugger)
Stars: ✭ 127 (-3.79%)
Mutual labels:  firmware
Nexmon
The C-based Firmware Patching Framework for Broadcom/Cypress WiFi Chips that enables Monitor Mode, Frame Injection and much more
Stars: ✭ 1,761 (+1234.09%)
Mutual labels:  firmware

KMK: Clackety Keyboards Powered by Python

KMK is a feature-rich and beginner-friendly firmware for computer keyboards written and configured in CircuitPython. KMK is currently in public beta, however should handle almost all workflows without major issues.

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.

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.

Features

Coming (hopefully) soon: Bluetooth support! Stay tuned.

Getting Started

  • Start by grabbing a supported microcontroller. Broadly speaking, KMK supports any device CircuitPython does, but KMK requires a decent bit of RAM, and in general requires a working USB HID stack, which leads us to recommend the following controllers:

    * The ItsyBitsy M4 Express is the only controller we currently support in non-handwired configurations, using our ItsyBitsy to Pro Micro converter PCB designed by @siddacious and @kdb424. It is our most-recommended MCU until the ItsyBitsy is updated with an nRF52840 chip

    Some other controllers, such as the Feather M0 Express, are usable in reduced functionality modes and may require custom hackery. For example, @kdb424 uses a ItsyBitsy M0 Express as a barebones matrix scanner in a split keyboard configuration here. Use such controllers at your own risk.

  • Ensure CircuitPython 4.0.0 or newer is installed on your controller. We recommend the latest stable version from circuitpython.org. Flashing instructions vary by device: all Adafruit boards can be flashed using their instructions, other boards generally have their instructions in the CircuitPython repository under the ports/atmel-samd/boards/<your board here> and ports/nrf/boards/<your board here> directories. If all else fails, consult your device's official documentation.

  • Download the latest KMK release and extract the zip to the USB drive exposed by CircuitPython, typically labeled CIRCUITPY. Again, we'll defer to Adafruit's documentation on adding libraries to a CircuitPython installation. You should end up with a folder called kmk and a file called boot.py, both living at the top of this USB drive.

  • Define your keyboard in a file called main.py on this CIRCUITPY drive and get tinkering! Examples of both handwired and ProMicro->ItsyBitsy converted boards exist under the user_keymaps/ tree, and feel free to submit a pull request of your own definitions! At this point, you'll want to look through docs/ in the source tree to explore the functionality at your disposal.

Linux, BSD, and MacOS users can also make use of the Makefile provided in this source tree to flash KMK and a keymap using rsync. This is advanced functionality outside the scope of this README, but it's documented in the docs/ tree.

The KMK Team

KMK is primarily written and maintained by @klardotsh and @kdb424, but contributions are welcome from all, whether it's in the form of code, documentation, hardware designs, feature ideas, or anything else that comes to mind. KMK's contributors and other helpers are listed alphabetically by username below (we'll try to keep this up to date!):

While Adafruit employees and affiliates are included in the above list and their help has been crucial to KMK's success, KMK is not an official Adafruit project, and the Core team is not compensated by Adafruit for its development.

Code Style

KMK uses Black with a Python 3.6 target and, (controversially?) single quotes. Further code styling is enforced with isort and flake8 with several plugins. make fix-isort fix-formatting before a commit is a good idea, and CI will fail if inbound code does not adhere to these formatting rules. Some exceptions are found in setup.cfg loosening the rules in isolated cases, notably user_keymaps (which is also not subject to Black formatting for reasons documented in pyproject.toml).

License, Copyright, and Legal

All software in this repository is licensed under the GNU Public License, verison 3. All documentation and hardware designs are licensed under the Creative Commons Attribution-ShareAlike 4.0 license. Contributions to this repository must use these licenses unless otherwise agreed to by the Core team.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].