@ -5,39 +5,41 @@ sidebar_label: Introduction
---
---
ZMK Firmware is an open source (MIT) keyboard
ZMK Firmware is an open source (MIT) keyboard
firmware built on the [Zephyr™ Project ](https://zephyrproject.org/ ) Real Time Operating System (RTOS).
firmware built on the [Zephyr™ Project ](https://zephyrproject.org/ ) Real Time Operating System (RTOS). ZMK's goal is to provide a modern, wireless, and powerful firmware free of licensing issues.
The goal is to provide a powerful, featureful keyboard firmware that is free
of licensing issues that prevent upstream BLE support as a first-class
feature.
## Features
## Features
At this point, ZMK is still missing many features. Currently, the working bits
ZMK is currently missing some features found in other popular firmware. This table compares the features supported by ZMK, BlueMicro and QMK:
include:
- Wireless connectivity via BLE HID Over GATT (HOG)
| **Feature** | ZMK | BlueMicro | QMK |
- USB connectivity
|--------------------------------------------------------------------------------------------------------|:-----------:|:------------:|:-----------:|
- Low active power usage
| Low Latency BLE Support | ✅ | ✅ | |
- Split keyboard support
| Multi-Device BLE Support | ✅ | | |
- [Keymaps and layers ](behavior/layers )
| USB Connectivity | ✅ | | ✅ |
- [Hold-tap ](behavior/hold-tap ) (which includes [mod-tap ](behavior/mod-tap ), [layer-tap ](behavior/layers ))
| User Configuration Repositories | ✅ | | |
- [Basic HID over USB ](behavior/key-press )
| Split Keyboard Support | ✅ | ✅ | ✅ |
- [Basic consumer (media) keycodes ](behavior/key-press#consumer-key-press )
| [Keymaps and Layers ](behavior/layers ) | ✅ | ✅ | ✅ |
- [Encoders ](feature/encoders )
| [Hold-Tap ](behavior/hold-tap ) (which includes [Mod-Tap ](behavior/mod-tap ) and [Layer-Tap ](behavior/layers/#layer-tap )) | ✅ | ✅ | ✅ |
- Basic [OLED display support ](feature/displays )
| [Basic Keycodes ](behavior/key-press ) | ✅ | ✅ | ✅ |
- [RGB Underglow ](feature/underglow )
| [Basic consumer (Media) Keycodes ](behavior/key-press#consumer-key-press ) | ✅ | ✅ | ✅ |
| [Encoders ](feature/encoders )[^1] | ✅ | | ✅ |
## Missing Features
| [OLED Display Support ](feature/displays )[^2] | 🚧 | 🚧 | ✅ |
| [RGB Underglow ](feature/underglow ) | ✅ | ✅ | ✅ |
- One Shot Keys
| One Shot Keys | 🚧 | ✅ | ✅ |
- Combo keys
| Combo Keys | 🚧 | | ✅ |
- Macros
| Macros | 🚧 | ✅ | ✅ |
- Complete split support (encoders and RGB are not supported on the 'peripheral' side)
| Mouse Keys | | ✅ | ✅ |
- Battery reporting
| Low Active Power Usage | ✅ | | |
- Low power sleep states
| [Low Power Sleep States ](https://github.com/zmkfirmware/zmk/pull/211 ) | 🚧 | ✅ | |
- Low power mode (to toggle LEDs and screen off)
| [Low Power Mode (VCC Shutoff) ](https://github.com/zmkfirmware/zmk/pull/242 ) | 🚧 | | |
- Shell over BLE
| [Battery Reporting ](https://github.com/zmkfirmware/zmk/issues/47 ) | 🚧 | ✅ | |
| Shell over BLE | | | |
| Realtime Keymap Updating | 💡 | | ✅ |
| AVR/8 Bit | | | ✅ |
| [Wide Range of ARM Chips Supported ](https://docs.zephyrproject.org/latest/boards/index.html ) | ✅ | | |
[^2]: Encoders are not currently supported on peripheral side splits.
[^1]: OLEDs are currently proof of concept in ZMK.
## Code Of Conduct
## Code Of Conduct