This is a keyboard firmware similar to QMK, but targeting 8051-based devices like the Sinowealth SH68F90A (labeled as BYK916 or BYK901). It's aimed to be at least partially compatible with QMK configurations.
The S (Small) in SMK comes from this firmware using SDCC to build itself.
This firmware is still highly experimental, so be cautious when trying to use it or extend it.
You can very easily end up with a bricked device if the written firmware can't jump back into ISP mode, so before testing or modifying it, it's best to have a full dump of your stock firmware and a tool (like the Sinolink) that can write it back.
Keyboard | MCU | ISP | USB | Wireless | Details |
---|---|---|---|---|---|
NuPhy Air60 v1 | SH68F90A / BYK916 | ✅ | ✅ | TBD | Details |
E-YOOSO Z11 | SH68F90A / BYK901 | ✅ | ✅ | N/A | Details |
Currently, this project is primarily developed with the help of Nix and Nix flakes. Please consider using Nix and the provided flake to automatically set up a reproducible development environment.
With Nix installed and flakes enabled, use nix develop
or direnv to enter a shell with all prerequisites installed.
If setting up prerequisites without nix, you will need the following tools installed and available within your environment:
- sdcc >= 4.3.0
- meson >= 0.53
- ninja >= 1.11.1
- sinowealth-kb-tool latest version - required only for flashing
Once all prerequisites are set up, you can build and flash firmware for a specific combination of keyboard and layout using the following commands:
meson setup build # configure meson build dir
meson compile -C build nuphy-air60_default_smk.hex # build firmware for nuphy-air60 with the default layout
meson compile -C build nuphy-air60_default_flash # write firmware to the device via sinowealth-kb-tool