Skip to content

A curated list of awesome ZMK firmware resources, links, zmk-config's, zmk-drivers, tools, hardware, and community projects.

License

Notifications You must be signed in to change notification settings

mctechnology17/awesome-zmk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo2

Awesome ZMK

A curated list of awesome ZMK firmware resources, links, zmk-config's, zmk-drivers, tools, hardware, and community projects.

Contents


What is ZMK

Pete Johanson 1 is the creator and lead maintainer of the ZMK Firmware project

Zephyr™ Mechanical Keyboard (ZMK) Firmware

Discord Build Contributor Covenant GitHub last commit GitHub Repo stars

ZMK Firmware 23 is an open source (MIT) keyboard firmware built on the Zephyr™ Project Real Time Operating System (RTOS) 45. ZMK's goal is to provide a modern, wireless, and powerful firmware free of licensing issues.

What is a board

In ZMK, a board defines the PCB that includes the microcontroller unit (MCU). For keyboards, this is one of two options:

Complete keyboard PCBs that include the MCU (e.g. the Planck or Preonic). Small MCU boards (e.g. the nice!nano or Seeed Studio Xiao RP2040) that expose pins and are designed to be combined with larger keyboard PCBs, or hand-wired to switches to create the final keyboard 6.

What is a shield

In ZMK, a shield is a PCB or hardwired set of components that when combined with an MCU-only board, like the SparkFun Pro Micro RP2040 or nice!nano, results in a complete usable keyboard. Examples would be keyboard PCBs like the Kyria or Lily58. The shield is usually the big PCB containing all the keys 6.

What are Modules

ZMK makes use of Zephyr modules to include additional source code or configuration files into its build. You can think of them as similar to plugins or themes. The most common uses of this feature are:

  • Building firmware for a keyboard external to ZMK's tree 7
  • Adding functionality to ZMK, such as a driver or a behavior 7

Official Resources

Additional Resources

Zephyr Project:

Nordic Semiconductor:

ZSWatch - Zephyr Smartwatch:

  • jakkra/ZSWatch - ZSWatch the Open Source Zephyr™ based Smartwatch, including both HW and FW.
    • ZSWatch - Smartwatch built from scratch, both hardware and software. Built on the Zephyr™ Project RTOS, hence the name ZSWatch - Zephyr Smartwatch.

Quick Start

Community zmk-config user configurations

Split Wired

Community Documentation

Useful Awesome List

Vendor Documentation

Community firmware Modules and Behaviors

Custom Behaviors

Drivers

Drivers Trackpad

Drivers Trackball

Drivers Trackpoint

Drivers Analog Joystick

Drivers Haptic

Drivers Display

Drivers LEDS Backlight Underglow

Note

elpekenin/zmk-userspace These drivers can be easily located here and not only in behaviors

Drivers Others

Display Modules

Dongles Modules

NOTE ZMK Supports Dongle scheme for 3 controllers (host + 2 halves). It's a little bit more battery friendly (up to a month on a 100 mAh) than a battery-powered BT host (up to 7 days) 8.

Dongles Design
Dongle Prospector Vendor

Display Modules Hardware

  • OLED Display 128x32 - 0.91 OLED LCD Display 128x32 SSD1306 I2C
  • OLED Display 128x64 - 0.96 OLED LCD Display 128x64 SSD1306 I2C
  • nice!view - A sharp, low-power E-Ink display designed to be easily added to a nice!nano. SHARP MiP DISPLAYS, cutting edge Memory-in-Pixel technology - 30Hz at minmal power draw.
  • VISTA508 Low Power Display - The Vista508 is a MIPS display with excellent power consumption characteristics that is pin compatible with the very popular nice!view display.
  • Vista272 Low Power Display - The Vista272 is a drop in replacement for the nice!view display, it uses the exact same MIPS display module.
  • Halcyon TFT LCD Display - The Halcyon TFT LCD Display Module provides your Halcyon keyboard with a responsive and vibrant colour display

Tools and Software

Keymap Editors GUI

Power Estimation

Display Utilities

  • LVGL Image Converter - Convert BMP, JPG, PNG or SVG files to C arrays (or various binary formats) for use with LVGL.
  • javl/image2cpp - image2cpp is a simple tool to change images into byte arrays (or arrays back into images) for use with (monochrome) displays such as OLEDs on your Arduino or Raspberry Pi.
  • joric/qle (QMK Logo Editor) - QMK Logo Editor is a lightweight web editor for creating and exporting small monochrome logos / glyphs for keyboard OLEDs.
  • notisrac/FileToCArray - Coverts any file to a C style array. (It can also do image color format and size coversion)

RAW HID Host

  • zzeneg/qmk-hid-host - ZMK and QMK HID Host. Host component for communicating with ZMK and QMK keyboards using Raw HID feature.
  • badjeff/zmk-companion-macos - ZMK Companion. A main menu macOS application communicate to ZMK powered HID device.

CLI and Utilities

Hardware Addons must-have

  • george-norton/vik-hat - A ProMicro hat with a VIK connector
  • hazels-garage/battpack - A 'backpack' for the nice!nano to make wiring up a battery cleaner on boards without native support
  • boardsource/Battery Helper - Upgrade your Bluetooth Low Energy (BLE) controller with the nope, a cutting-edge PCB that empowers you to seamlessly integrate a power switch into any keyboard PCB, regardless of the make or model.
  • davidphilipbarr/nicehatharry - A small 'hat' that sits ontop of the nice!nano to support a nice!view

Community Pointing Projects as Computer Mouse

Guides and Tutorials

Bootloader and Reset

  • adafruit/RPI-RP2 - for rp2040 and kb2040. If your board ever gets into a really weird state and CIRCUITPY doesn't show up as a disk drive after installing CircuitPython, try loading this 'nuke' UF2 to RPI-RP2. which will do a 'deep clean' on your Flash Memory. You will lose all the files on the board, but at least you'll be able to revive it!
  • circuitpython/Update UF2 Bootloader - After you update, check INFO_UF2.TXT to verify that the bootloader version has been updated.
  • circuitpython/nice_nano/Update UF2 Bootloader - After you update, check INFO_UF2.TXT to verify that the bootloader version has been updated.
  • circuitpython/supermini_nrf52840/Update UF2 Bootloader - After you update, check INFO_UF2.TXT to verify that the bootloader version has been updated.
  • nicekeyboards/nice-nano/troubleshooting - Troubleshooting your nice!nano often falls on to the firmware of choice, but a few directly hardware related items can be addressed.
  • aroum/nRF52_Bootloader_custom_LED - Contains various low-level modifications and hacks, such as converting the reset pin into a standard GPIO and implementing extended indication during Device Firmware Update (DFU) mode.

Solder and Desolder Tools

NOTE These tools have been tested first -hand (Except for Parllel Clamping, I have a model very similar to that) and could say that they are essential (personal perspective) helped me and still help me repeatedly and they have validated every penny!

  • PINECIL – Smart Mini Portable Soldering Iron (Version 2) - The Pinecil is a smart mini portable soldering iron with a 32-bit RISC-V SoC featuring a sleek design, auto standby and it heats up to an operating temperature in just 6 seconds!
  • Stannol Kristall 611 Fairtin Solder - Stannol Kristall 611 Fairtin Solder, lead-free Lead-free Sn99,3Cu0,7 REM1 100g 0.5 mm
  • flux paste - 1 piece of 10g of flux paste, soldering fat flux, soldering paste, soldering fluid, soldier paste, solder paste, for mechanics, metal, tin, telephone, PC cards, components
  • Liquiq flux no-clean - 50 ml bottle with brush soldering water soldering soft soldering river SMD BGA zinc
  • Desolder / solder SEQURE HT140 2-IN-1 Hot Tweezers - SEQURE HT140 2-IN-1 Hot Tweezers And Soldering Iron Compatible with C210 Soldering Tips And C120 Hot Tweezers Cartridge Tips Desoldering Tips Support PD QC DC Power Supply Desoldering Repair Tool for SMD
  • Desolder pump - Tin-suction vacuum with 3-suction nozzle, EU/US plug, soldering, removal of the pump, electrical soldering device ADT03, new removal machine
  • Desolder / solder air pump - Yihua micro hot air pistol C/F temp set 8858IV 700 W solder rework welding station LCD digital hot air pistol BGA IC soldering tools
  • Parallel Clamping - Firm grip that keeps components in place, large jaw opening (9/16", 14mm), no bitemarks or scratching, narrow and flat jaws, easy to find somewhere to hold
  • Precision Tweezers Set - Grab everything from screws to eyebrows with iFixit's Precision Tweezers Set.
  • Soldering Tip Cleaning Ball Hakko 599B - The HAKKO 599B cleans your soldering iron tips without water! The 599B is made from coils of brass, which is softer than the tip plating yet harder than the oxidation that forms on the tip.
  • Diagonal Cutters - Diagonal cutters, large super-comfortable grip to use and have strong nippers for perfect trimming of wires and leads

How to Solder

How to Desolder

  • How To Solder and Desolder Connections - While many repairs can be accomplished without soldering, there are times when it's necessary to replace soldered-down components, e.g., joysticks, headphone batteries, and rumble motors.
  • The Ultimate Guide to Desoldering - From using desoldering irons to sketchily knocking breadboard components off on the side of a table, there are tons of ways to remove components from a circuit board.

Solder and Desolder Videos

  • mrsolderfix3996/youtube.com - My video's will be covering many aspects of soldering , ranging from the very basic stuff to the very extreme difficult projects, with the odd fun project to make popped in along the way
  • paceworldwide/youtube.com - For over forty years, PACE, Inc. has provided state-of-the-art, hands-on solder training to the electronics industry around the world. Courses and support materials are available for Surface Mount Technology, Through-Hole Technology and Multilayer PCB Repairs.
  • How to solder and desolder SMD using hot air - A quick and complete tutorial about surface mount components (SMD/SMT) soldering and desoldering using hot air station.

Supported Hardware

NOTE These are the most popular boards, but there are more

Wireless - Pro Micro Interconnect (nRF52840 and others)

Wired - Pro Micro Interconnect (RP2040 and others)

Wireless - Seeed XIAO Interconnect (nRF52840 and others)

Wired - Seeed XIAO Interconnect (RP2040 and others)

Hardware Tutorials

Software Tutorials

Learn Touch Typing

  • Typeracer - The award-winning online typing competition, TypeRacer, allows people to race each-other by typing quotes from books, movies, and songs. It is the first multiplayer typing game on the web.
  • Monkeytype - Monkeytype is a minimalistic and customizable typing test.
  • keybr - This web application will help you to learn touch typing which means typing through muscle memory without using your eyesight to find the keys. With multiplayer typing game on the web

Keyboard News

Keyboard News Videos

Keyboard Shops

  • mechanical keyboard vendors list - Where to buy mechanical keyboards, switches or keycaps? This keyboard shop database lists 600+ stores offering keyboards, kits, various parts and accessories.

Projects using ZMK closed-source or not upstreamed

Related projects

License

This list is licensed under the Creative Commons Zero v1.0 Universal.

⬆️ back to Table of Contents

Footnotes

  1. Pete Johanson: https://petejohanson.dev/

  2. ZMK Firmware official website: https://zmk.dev

  3. ZMK Firmware official code repository: https://github.com/zmkfirmware/zmk

  4. Zephyr Project official website: https://www.zephyrproject.org

  5. Zephyr Project Code Repository: https://github.com/zephyrproject-rtos/zephyr

  6. Hardware Integration: https://zmk.dev/docs/development/hardware-integration#what-is-a-shield 2

  7. Modules: https://zmk.dev/docs/features/modules 2

  8. joric dongles wiki: https://github.com/joric/nrfmicro/wiki/Alternatives#dongles

  9. ZMK Firmware official physical layouts integration: We recommend the use of this tool for writing a physical layout or converting one from a QMK JSON definition. If your keyboard already has a physical layout defined for the use with KLE, we recommend using this other tool first to convert your existing layout into QMK JSON. The second tool can also import the position data from KiCAD, if said program was used to design the keyboard - https://zmk.dev/docs/development/hardware-integration/physical-layouts 2

  10. Online Power Profiler for Bluetooth LE: https://devzone.nordicsemi.com/power/w/opp

About

A curated list of awesome ZMK firmware resources, links, zmk-config's, zmk-drivers, tools, hardware, and community projects.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published