Skip to content

Flashing the Firmware

There are two ways to flash PolyKybd firmware. The recommended way is over HID directly from PolyKybdHost — no buttons, no bootloader drive. The UF2 bootloader drive method is kept as a recovery fallback.

Section titled “Recommended: flash over HID from PolyKybdHost”

PolyKybdHost sends the firmware image to the keyboard over its normal USB connection. No BOOT button is needed, and it works even when the keyboard’s protocol version does not match the host, so a keyboard on incompatible firmware can still be updated.

The image goes over the keyboard’s fast link (a USB serial port next to the HID interface) when the firmware and the host both have it (firmware 1.9.4 and host 1.17.28 or newer), which transfers a full image in about 11 s, and over HID otherwise, about 50 s. The tray tooltip names the link in use. Details: Firmware Update over USB.

HID flashing uses a raw .bin image (not the .uf2).

  1. Open PolyKybdHost (system-tray icon).
  2. Use the firmware update action — either the release-update flow (which fetches a published keyboard-firmware release) or Flash firmware .bin… to pick a local .bin.
  3. Confirm and let it transfer. Progress is shown as it streams the image to the keyboard.
  4. Apply the update when prompted — the keyboard reboots into the new firmware.

Use this if the keyboard can’t be reached over HID (e.g. a bad image left it unresponsive). It flashes the .uf2 build, not the .bin.

  1. Hold down the BOOT button on the PCB.
  2. While holding it, connect the USB-C cable to the half you’re flashing.
  3. Release the button.
  4. The keyboard mounts as a USB drive called RPI-RP2.

Download the latest .uf2 from the firmware repo releases (or build your own — see below) and copy it onto the RPI-RP2 drive. The drive unmounts automatically when flashing completes.

To build your own firmware image, see Firmware Development for the full toolchain setup and build commands. In short:

Terminal window
qmk compile -kb polykybd/split72 -km default # or /split42

The build produces a .uf2 (for the bootloader drive). For HID flashing, convert the ELF to a raw .bin:

Terminal window
arm-none-eabi-objcopy -O binary .build/<target>.elf .build/<target>.bin

After the update applies and the keyboard reboots:

  1. Wait 1–2 seconds for the firmware to boot.
  2. All per-key displays should show characters.
  3. Press keys to confirm they respond, and check that both halves are active.