Skip to content

DriftKingTW/Schnell-Keypad-Configuration-Tool

Repository files navigation

Schnell Keyboard Key Configuration Tool

Deploy

This is a web based keyconfig generator and firmware install tool for Schnell Keyboard by DriftKingTW.

Features

  • i18n multi-language support
  • Dark/Light theme support
  • Editable key label
  • Upload existing config file
  • Reset single key
  • Flash firmware through web ui
  • Selectable stable firmware version history
  • Vertical key cap layout ui
  • Customize keyboard layout

Project setup

npm install

Compiles and hot-reloads for development

npm run dev

Compiles and minifies for production

npm run build

Preview for production build

npm run preview

Deployment

The web app deploys to GitHub Pages automatically on every push to master (.github/workflows/deploy.yml). No manual step is required.

Releasing firmware

Firmware is built and published from the firmware repo Schnell-BLE-Keypad. Once a release is published there, it shows up in this tool's firmware installer automatically — you never edit public/firmware/ by hand.

To cut a new firmware version, push a tag in the firmware repo:

# in the Schnell-BLE-Keypad repo
git tag v1.1.0          # stable release   -> "stable" channel
git tag v1.1.0-beta.1   # contains beta/rc -> "beta" channel
git push origin <tag>

What happens automatically:

  1. The firmware repo's release.yml builds the firmware, merges it into a single flashable image, and creates a GitHub Release with firmware-merged.bin and spiffs.bin.
  2. It dispatches a firmware-released event to this repo. This requires a WEB_TOOL_DISPATCH_TOKEN secret in the firmware repo — a PAT with Contents: read and write on this repo (the default GITHUB_TOKEN cannot trigger across repositories).
  3. This repo's update-firmware.yml downloads the release assets into public/firmware/<channel>/, regenerates the esp-web-tools manifest.json and index.json, commits to master, then deploys to GitHub Pages.

Channel behaviour:

  • stable — also archived under public/firmware/<tag>/, so every stable release stays installable later via the "show old versions" toggle in the installer dropdown.
  • beta — only the latest build is kept (not archived).

public/firmware/index.json is the source of truth for the version dropdown; the UI fetches it on load and falls back to plain stable/beta options if it is unavailable.

Manual re-sync / rollback

To point a channel at a specific tag without cutting a new release (e.g. to roll a beta back), trigger the workflow manually:

gh workflow run update-firmware.yml \
  --repo DriftKingTW/Schnell-Keypad-Configuration-Tool \
  -f tag=v1.1.0 -f prerelease=false   # prerelease=true targets the beta channel

About

Web based key configuration tool for Schnell BLE keypad

Resources

License

Stars

3 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors