52 lines
4 KiB
Markdown
52 lines
4 KiB
Markdown
---
|
|
title: "ZMK State Of The Firmware #1"
|
|
author: Pete Johanson
|
|
author_title: Project Creator
|
|
author_url: https://gitlab.com/petejohanson
|
|
author_image_url: https://www.gravatar.com/avatar/2001ceff7e9dc753cf96fcb2e6f41110
|
|
tags: [SOTF, keyboards, firmware, oss, ble]
|
|
---
|
|
|
|
Welcome to the first ZMK "State Of The Firmware"!
|
|
|
|
With interest and Discord activity growing, it seemed important to lay out the progress made recently, current major bugs/showstoppers, and planned next steps.
|
|
|
|
## Recent Activity
|
|
|
|
There's been lots of various activity in ZMK land!
|
|
|
|
- [Nicell](https://github.com/Nicell) (nice!nano creator) contributed initial [RGB Underglow](/docs/features/underglow) ([#64](https://github.com/zmkfirmware/zmk/pull/64)) support to ZMK.
|
|
- Tons of [documentation](/docs) work.
|
|
- Refactoring ([#73](https://github.com/zmkfirmware/zmk/pull/73), [#74](https://github.com/zmkfirmware/zmk/pull/74)) of [keymaps](/docs/features/keymaps) to make them simpler for users.
|
|
- Mod-Tap Behavior (docs coming!) is much improved ([#69](https://github.com/zmkfirmware/zmk/pull/69)) and usable now.
|
|
- An initial [`setup.sh`](http://localhost:3000/docs/user-setup#user-config-setup-script) script was created, allowing users to quickly bootstrap a "user config" setup and push it to GitHub, where GitHub Actions will build the firmware for you.
|
|
- Corne shield ([#80](https://github.com/zmkfirmware/zmk/pull/80)) shield definition was added.
|
|
- Initial [encoder](/docs/features/encoders) support ([#61](https://github.com/zmkfirmware/zmk/pull/61)) was added.
|
|
|
|
## Bugs and Showstoppers
|
|
|
|
Despite the flurry of activity, there are still some serious bugs and show stoppers that potential ZMK users should be aware of:
|
|
|
|
- [Bluetooth Related](https://github.com/zmkfirmware/zmk/issues/58) - There are several key bugs and fixes needed, including one complete show stopper:
|
|
- <del>Fully working split wireless is not working. In particular, both split halves can properly pair, but once they do so, pairing with the _central_ host will not work. Workaround: You can currently have both halves pair, and use USB on the central side (Left side right now for Kyria, Corne, Lily58) and receive HID events over USB.</del> - Fixed in <a href="https://github.com/zmkfirmware/zmk/commit/8b61beb2bbc62f754db670ad77266f84edde041d">8b61beb</a>.
|
|
- BT bond information is not currently stored to the devices, so after powering off or restarting your device, users need to re-pair
|
|
- USB - There is one important USB related bug which is a showstopper:
|
|
- <del>The Zephyr USB stack does not have a built in queue for endpoint data being written. As a result, HID events sent by ZMK are sometimes <a href="https://github.com/zmkfirmware/zmk/issues/84">dropped, or lost</a>.</del> - Fixed by <a href="https://github.com/careyk007">careyk007</a> in <a href="https://github.com/zmkfirmware/zmk/pull/93">#93</a>.
|
|
|
|
## Next Steps
|
|
|
|
There's plenty of places to go next! To help keep folks in the loop for what's next, I've created a [Core Functionality](https://github.com/zmkfirmware/zmk/projects/1) project/kanban board in GitHub, where users should be able to get some visibility into items being focused on.
|
|
|
|
Of course, at the top of that list currently is the above bugs/showstoppers, and then from there, I hope to:
|
|
|
|
- Work on power management.
|
|
- Improve our documentation on various aspects of the system, mostly around:
|
|
- End user documentation for understanding how to use ZMK, better installation docs, etc.
|
|
- Developer focused documentation, so interested contributors can start building out more behaviors and ZMK functionality.
|
|
- Implement true "hold" detection, useful for several behaviors such as Mod-Tap and Layer-Tap.
|
|
- Hopefully acquire a proper and official USB Product ID for use for the project.
|
|
- Fun things that come up along the way!
|
|
|
|
## Thanks!
|
|
|
|
A big thanks for everyone who has shown interest in the project, tested things, asked questions, and contributed PRs ([Nicell](https://github.com/Nicell), [CrossR](https://github.com/CrossR), [careyk007](https://github.com/careyk007)).
|