ZMK firmware for Tiny18, an 18-key wireless split keyboard using two Seeed Studio XIAO nRF52840 controllers.
日本語の説明は README.ja.md を参照してください。
Most users should download the UF2 files from the latest GitHub Release. Release assets do not expire, unlike temporary GitHub Actions artifacts.
| File | Target |
|---|---|
tiny18-right.uf2 |
Right half; Bluetooth central and ZMK Studio host |
tiny18-left.uf2 |
Left half; Bluetooth peripheral |
settings-reset.uf2 |
Clears stored Bluetooth and split settings |
SHA256SUMS |
SHA-256 checksums for the three UF2 files |
The right and left files are not interchangeable. If the wrong image is flashed, enter the bootloader again and flash the correct image.
- Turn the keyboard's battery power switch off and connect one half with a USB data cable.
- Double-press the XIAO reset button. A drive named
XIAO-SENSEshould appear. - Copy
tiny18-right.uf2to the right half andtiny18-left.uf2to the left half. - Disconnect USB, turn both halves on, and pair the Bluetooth device named
tiny18.
For a first installation, or if the halves or host no longer pair correctly:
- Flash
settings-reset.uf2to both halves. - Double-press reset again on each half.
- Flash the matching right and left firmware.
- Remove any old
tiny18entry from the host's Bluetooth settings, then pair again.
The canonical keymap is config/tiny18.keymap. The repository's release automation builds that file without modifying it.
The keymap includes six layers, Japanese/English input switching combos, modifiers, Bluetooth profile selection, and ZMK Studio support. See the source file for the exact bindings and combo definitions.
GitHub Actions builds the three images automatically when firmware-related files change. The build is pinned to ZMK v0.3.0 and zmk-rgbled-widget v0.3.0 so a given commit remains reproducible.
To build a fork:
- Fork this repository.
- Enable GitHub Actions in the fork.
- Edit
config/tiny18.keymapif you want a custom layout. - Push the change and download the
firmwareartifact from the completed workflow run.
Actions artifacts are intended for testing and expire. Maintainers publish permanent downloads by pushing a version tag such as v1.0.0; release.yml builds that exact tag, creates checksums, and attaches the UF2 files to a GitHub Release.
build.yaml produces:
- right half with RGB LED layer/battery widget and ZMK Studio over USB
- left half with RGB LED layer/battery widget
- settings-reset image for recovery
| Path | Purpose |
|---|---|
config/tiny18.keymap |
Canonical default keymap |
config/tiny18_*.conf |
Per-half ZMK configuration |
boards/shields/tiny18/ |
Tiny18 shield and direct-pin hardware definition |
build.yaml |
Firmware build matrix and stable artifact names |
keymap-drawer/ |
Generated keymap diagram |
.github/workflows/build.yml |
Continuous build and diagram generation |
.github/workflows/release.yml |
Permanent, tagged firmware releases |
PCB production files, BOM, and fabrication notes are in the Tiny18 hardware repository.
Tiny18-specific firmware configuration and shield files are licensed under the MIT License. ZMK and external modules are separate projects and retain their respective licenses.