my fork of the ZMK keyboard firmware for a Nice!Nano v2 based https://68keys.io/ build
Find a file
2020-05-16 17:30:30 -04:00
boards Keymap directory support. 2020-05-16 17:30:30 -04:00
cmake Keymap directory support. 2020-05-16 17:30:30 -04:00
dts/bindings Start to get layers + keymaps pulled in from DTS. 2020-05-03 15:49:33 -04:00
include/dt-bindings/zmk Full NKRO support, fixes for keymap key selection. 2020-05-12 13:22:07 -04:00
src BLE Security/Pairing fixes for "Just Works" SC. 2020-05-15 11:39:16 -04:00
.gitignore Initial work. 2020-04-21 16:20:34 -04:00
.gitlab-ci.yml Small tweak. 2020-05-11 13:58:10 -04:00
CMakeLists.txt Keymap directory support. 2020-05-16 17:30:30 -04:00
Dockerfile Remove locale tweaks. 2020-05-11 11:24:03 -04:00
Kconfig Full NKRO support, fixes for keymap key selection. 2020-05-12 13:22:07 -04:00
LICENSE Add LICENSE 2020-05-01 19:04:48 +00:00
prj.conf BLE Security/Pairing fixes for "Just Works" SC. 2020-05-15 11:39:16 -04:00
README.md Keymap directory support. 2020-05-16 17:30:30 -04:00
west.yml Try using west.yml file instead. 2020-05-01 15:46:19 -04:00

Zephyr Mechanical Keyboard (ZMK) Firmware

This project is a complete work in progress, with absolutely nothing functioning yet. The goal is to explore a new MK firmware with a less restritive license and better BLE support, built on top of the Zephyr Project

TODO

  • Debouncing in the kscan driver itself? Only some GPIO drivers in Zephyr support it "natively"
  • Document boards/shields/keymaps usage.
  • Custom keymap code via zephyr_library()>
  • Move most Kconfig setings to the board/keymap defconfigs and out of the toplevel prj.conf file.
  • Merge the Kscan GPIO driver upstream, or integrate it locally, to avoid use of Zephyr branch.
  • BLE SC by typing in the # prompted on the host.
    • Store the connection being authenticated.
    • Hook into endpoint flow to detect keypresses and store/send them to the connection once 6 are typed.
  • Display support, including displaying BLE SC auth numbers for "numeric comparison" mode if we have the screen.
  • Fix BT settings to work w/ Zephyr. Do we really need them?
  • Tests?
  • Update the kscan GPIO driver to use interrupts.
    • Try disabling callbacks for the read pins temporarily when scanning, then re-enabling them.

Long Term

  • Tool to convert keymap info.json files into a DTS keymap file?
  • Firmware build service?