carlossless / smk

A keyboard firmware for sinowealth-8051-based devices
GNU General Public License v2.0
46 stars 4 forks source link
8051 air60 byk901 byk916 eyooso firmware keyboard-firmware nuphy sh68f90a sinowealth smk z11
SMK

SMK - Small (device) Mechanical Keyboard Firmware

Build

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.

⚠️ WARNING ⚠️

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.

Supported Devices

Keyboard MCU ISP USB Wireless Details
NuPhy Air60 v1 SH68F90A / BYK916 TBD Details
E-YOOSO Z11 SH68F90A / BYK901 N/A Details

Developing

Prerequisites

Nix

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.

Manual

If setting up prerequisites without nix, you will need the following tools installed and available within your environment:

Building & 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

Acknowledgements