Skip to content

Releases: svalboard/qmk

Svalboard QMK — Launch 2

Choose a tag to compare

@github-actions github-actions released this 08 Oct 20:20
9e7bc91

This update fixes boards that randomly reset to the default layout. It resets every setting on the board once, so back up your layout before you flash.

Before you update

  1. Open Keybard, connect, and export your layout (.svil) from Settings → Import / Export. Keybard's automatic backups also have a copy, but an export you saved yourself is the safest.
  2. Flash the image that matches each half, as before.
  3. Connect Keybard again and import your .svil. The import restores:
    • your keymap, macros, tap dances, combos, key overrides, alt-repeat keys and leader sequences;
    • QMK settings, layer colors and pointing settings;
    • layer, macro and tap-dance names, and hardware positions.

The first boot after flashing takes a few seconds longer while the board sets up its new settings storage.

Fixed

  • Random resets to the default layout. The board keeps two copies of its settings and retries a bad read instead of starting over. If the settings really can't be read, the board starts on defaults, and Keybard asks you to reload your layout the next time you connect.
  • Changes that silently didn't save. The board now checks every write to its settings storage. If a change can't be saved, it says so instead of showing the change and losing it on the next restart: Keybard warns you to unplug and reconnect, then make the change again.
  • First boot after a settings reset could hang with the LEDs off until the board was replugged.
  • One-shot key settings now take effect. The One Shot Keys timeout and tap-toggle settings in Keybard did nothing before; the keys never timed out and never locked. Now they follow those settings, which default to releasing after 5 seconds and locking after 5 taps, as in the Vial firmware. To keep the old behavior, set both to 0.
  • Importing a layout restores everything in the file. This is a Keybard fix, already live. Before it, imports skipped alt-repeat keys, leader sequences, layer colors and hardware positions.

New

  • Reorder layers in Keybard by dragging them. Keys that point at a layer (MO, LT, TG and the like) follow it to its new place.
  • Set the default layer from Keybard. The board now saves which layer it starts on, so it's kept across restarts. Keybard shows the current default layer and checks it after writing.

The Keybard parts of these are already live at keybard.svalboard.com. Saving the default layer needs this firmware.

Firmware files

Use the sval images for your hardware (base board, PMW3360 or PMW3389 trackball, TrackPoint or Azoteq), or the blank images for an empty base-board layout.

Svalboard QMK — Launch

Choose a tag to compare

@github-actions github-actions released this 07 Oct 04:37
d60d48b

Svalboard QMK is the new firmware for Svalboard, configured with Keybard in Chrome or Edge. Compared with Svalboard's Vial firmware (svalboard/vial-qmk v2025-11-01):

What's new

  • Keybard replaces Vial as the configurator. It offers visual layer editing, behavior editors, pointing controls, layer colors, Matrix Tester, printable layers and a Trainer.
  • More room: 256 slots each for tap dances, combos, key overrides, macros and alternate-repeat keys (Vial allowed 30–50), plus a larger macro buffer.
  • Leader sequences: trigger any action with a sequence of up to five keys.
  • Better tap-hold: QMK Chordal Hold is on by default, replacing Achordion, and Flow Tap is available. Timing settings take effect as soon as you save them.
  • Your setup stays put: compatible firmware updates keep your layout, the board stores its settings in two verified copies, and Keybard backs up each connected board automatically.
  • More pointing control: Sniper toggles, Boost keys, automouse per pointer with threshold and decay, and natural scrolling.
  • Board identity: each board keeps a stable serial and a name you choose.
  • Idle power saving: lower scan rates, sensor rest modes and processor sleep while you're not typing.
  • A two-way protocol for companion apps: desktop tools can read your layout and follow your active layers. The Keybard Host overlay is available as a Windows preview.

Moving from Vial

  1. Before flashing, export a .vil backup with Vial. Svalboard QMK does not read the settings Vial stored on the board, so the board starts on the default layout.
  2. Flash the image that matches each half's sensor family and side. Double-tap reset to get the RPI-RP2 drive, then copy the .uf2 onto it.
  3. Open Keybard, connect, and import the .vil. Your layout, macros, tap dances, combos, key overrides and QMK settings come across, including Svalboard's custom keys.
  4. Set DPI, scrolling, automouse and layer colors again. These aren't stored in .vil files.
  5. Check your modifier and timing preferences, then export a fresh .svil backup.

Firmware files

Use the sval images for your hardware (base board, PMW3389 trackball, TrackPoint or Azoteq), or the blank images for an empty base-board layout.

More

vRC1 — Release candidate 1

Choose a tag to compare

@github-actions github-actions released this 05 Oct 19:24
d300cad

These release notes are AI-generated, with occasional human edits.

Svalboard QMK vRC1 (release candidate 1)

Svalboard QMK is the firmware behind Keybard, the browser-based configuration tool for Svalboard. Your layout, behaviors and pointing settings are stored on the keyboard, so they keep working after you close the editor.

Full guide: Make Svalboard your own with Keybard · What Svalboard QMK adds beyond Vial · The Sval protocol

New since vRC0

  • Host layer access: companion apps can now read the keyboard's active and default layer state and control which layer is active.
  • Owner-facing release documentation and a description of the protocol for companion-app developers.

Beyond Vial

Everything Svalboard's Vial firmware could do (editing tap dances, combos, key overrides, alternate-repeat keys, macros and QMK settings; DPI, scroll and Sniper keys) carries over. Svalboard QMK adds:

  • More room: 256 entries each for tap dances, combos, key overrides, alternate-repeat keys and macros (Vial: 30–50), and more macro storage.
  • Leader sequences, editable in Keybard.
  • Settings that survive updates: a compatible layout no longer resets with each new firmware build, and supported Vial setups migrate automatically on first boot.
  • Board identity: a saved board name and a serial number that stays the same through updates.
  • More pointing control: Sniper toggles, Boost keys, per-pointer automouse with threshold and decay, natural scrolling.
  • Layer colors in Keybard: choose each layer's lighting color in the editor.
  • Idle power saving: lower scan rates, sensor rest modes and processor sleep while the keyboard is unused.

Which file to flash

Pick the file matching the sensor family and side of the half you're updating:

Hardware Files
Base board svalboard_left_sval_vRC1.uf2, svalboard_right_sval_vRC1.uf2
PMW3389 trackball svalboard_trackball_pmw3389_{left,right}_sval_vRC1.uf2
TrackPoint svalboard_trackpoint_{left,right}_sval_vRC1.uf2
Azoteq svalboard_azoteq_{left,right}_sval_vRC1.uf2
Empty base-board layout svalboard_{left,right}_blank_vRC1.uf2
PMW3360 trackball (deprecated: only for the few units shipped with this sensor) svalboard_trackball_pmw3360_{left,right}_sval_vRC1.uf2
  1. Export a .svil backup in Keybard first.
  2. Double-tap reset within 500 ms. The half appears as a drive named RPI-RP2.
  3. Copy the matching UF2 to that drive. Repeat for the other half.

Coming from Vial: automatic migration supports svalboard/vial-qmk v2025-11-01 with the vial keymap. It brings across your layout, macros, programmable behaviors and supported settings. Older firmware may start with default settings. After upgrading, check your modifier preferences, timing and macros.

Current limitations

  • Timing controls: changes to tapping term, per-dance and per-combo timing are saved but don't yet change key behavior. Quick-tap and several tap/hold options are also inactive. Flow Tap, Chordal Hold, and one-shot timing/locking aren't available through settings yet.
  • Auto Shift: not enabled in the standard firmware.
  • Editor names: Keybard doesn't yet save layer, tap-dance and macro names to the board, although the firmware supports it. Move them between browsers with a .svil export for now.
  • Alternate repeat: modifier conditions and the default-alternate option have known matching problems. Check the output of custom mappings.
  • Editing held actions: release a tap-dance key before editing its action.
  • After a reset: restart the board before making new edits.

Technical findings and test results: firmware review.

vRC2 — Release candidate 2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Oct 21:40

Human release notes from @ claussen
I am thrilled to announce the launch of Svalboard QMK, a plain QMK fork that is dedicated exclusively to Svalboard, integrating the substantial learnings of the past few years, and a new version of Keybard, now a fully-dedicated GUI configurator for Svalboard.

Svalboard QMK is available on Github as an alpha release at: https://github.com/svalboard/qmk

The initial Release Candidate (RC2) is here – the usual flashing procedure applies: https://github.com/svalboard/qmk/releases/tag/vRC2

Keybard, the GUI, lives at https://keybard.svalboard.com/
The original keybard repo has been moved to a preservation repo at: svalboard/keybard-legacy

Please note: Svalboard QMK does NOT support Vial or Via configurators.
svalboard/vial-qmk will be preserved, and you can always use it.
If you want a GUI for svalboard-qmk

Svalboard is a unique device and system – sophisticated dual pointing support with lego-style mix-and-match pointing device firmwares for different hardware options is something nobody else really seems to be doing – and it’s weird enough that there’s simply no point in trying to upstream it into QMK.

As such, I’ve made the decision to push farther away from mainline QMK in favor of new features for Svalboard users to accelerate development and product opportunities.

Opinionated decisions:
A new protocol layer on top of Via – allows multiple bidirectional communication channels within the RawHID stream, for new kinds of host-side app coordination. This protocol design by @ ilc is a real achievement – it enables a bunch of things nobody else has really given serious consideration, and is a genuinely elegant bit of embedded protocol design work.
No more Vial GUI or Via GUI support, ever. If you want to use those tools, you can always use svalboard/vial-qmk – it’s not going away, and is considered the stable version for anyone who needs maximum reliability and support.
No AVR support, ever. ARM only, and currently RP2040 only, with a minimum of that amount of RAM, and a bunch of extra flash memory just because.

We aren’t removing all the other stuff (like a thousand irrelevant board definitions) from the QMK repo, solely because it makes maintenance hellish, but nothing I’m building here will ever target non-ARM processors or other boards again. ARM is both cheaper than AVR and universally better.

Beyond that, as a user, there isn't much that's changing on the firmware side. You'll see tons of crazy new capabilities show up in Keybard, of course, and that’s where progress belongs – facing you, the user.

Buckle up. It’s gonna be a fast ride. 🙏

The rest of the release notes are AI-generated, with occasional human edits:

Svalboard QMK vRC2 (release candidate 2)

Svalboard QMK is the firmware behind Keybard, the browser-based configuration tool for Svalboard. Your layout, behaviors and pointing settings are stored on the keyboard, so they keep working after you close the editor.

Full guide: Make Svalboard your own with Keybard · What Svalboard QMK adds beyond Vial · The Sval protocol

New since vRC1

  • Timing settings now take effect. Tapping term (global and per tap dance), combo term (global and per combo), quick-tap term, permissive hold, hold on other key, retro tapping, and one-shot timeout and tap toggle change key behavior as soon as you save them. Values you saved on an earlier release candidate start working after you update, so check them.
  • Chordal Hold and Flow Tap, settable in Keybard. Chordal Hold replaces Vial's Achordion and, like it, is on by default: a mod-tap rolled with another key on the same hand types both letters instead of a shortcut. Turn it off in Keybard's settings if you prefer.
  • Protocol guide: a diagram of how apps get, use and renew their identity with the keyboard.

Tested on hardware with the on-board key-event harness: every timing setting changes behavior on and off as expected.

Beyond Vial

Everything Svalboard's Vial firmware could do (editing tap dances, combos, key overrides, alternate-repeat keys, macros and QMK settings; DPI, scroll and Sniper keys) carries over. Svalboard QMK adds:

  • More room: 256 entries each for tap dances, combos, key overrides, alternate-repeat keys and macros (Vial: 30–50), and more macro storage.
  • Leader sequences, editable in Keybard.
  • Settings that survive updates: a compatible layout no longer resets with each new firmware build, and supported Vial setups migrate automatically on first boot.
  • Board identity: a saved board name and a serial number that stays the same through updates.
  • More pointing control: Sniper toggles, Boost keys, per-pointer automouse with threshold and decay, natural scrolling.
  • Layer colors in Keybard: choose each layer's lighting color in the editor.
  • Idle power saving: lower scan rates, sensor rest modes and processor sleep while the keyboard is unused.
  • Host layer access: companion apps can read the keyboard's active and default layer state and control which layer is active.

Which file to flash

Pick the file matching the sensor family and side of the half you're updating:

Hardware Files
Base board svalboard_left_sval_vRC2.uf2, svalboard_right_sval_vRC2.uf2
PMW3389 trackball svalboard_trackball_pmw3389_{left,right}_sval_vRC2.uf2
TrackPoint svalboard_trackpoint_{left,right}_sval_vRC2.uf2
Azoteq svalboard_azoteq_{left,right}_sval_vRC2.uf2
Empty base-board layout svalboard_{left,right}_blank_vRC2.uf2
PMW3360 trackball (deprecated: only for the few units shipped with this sensor) svalboard_trackball_pmw3360_{left,right}_sval_vRC2.uf2
  1. Export a .svil backup in Keybard first.
  2. Double-tap reset within 500 ms. The half appears as a drive named RPI-RP2.
  3. Copy the matching UF2 to that drive. Repeat for the other half.

Coming from Vial: Theoretically, at least, automatic migration supports svalboard/vial-qmk v2025-11-01 with the vial keymap. It brings across your layout, macros, programmable behaviors and supported settings. Older firmware may start with default settings. After upgrading, check your modifier preferences, timing and macros.

Current limitations

  • Settings without effect: tapping toggle count, tap-code delay, tap-hold Caps Lock delay and the Grave Escape override are saved but don't change behavior yet.
  • Auto Shift: not enabled in the standard firmware.
  • Alternate repeat: modifier conditions and the default-alternate option have known matching problems. Check the output of custom mappings.

Technical findings and test results: firmware review.