Skip to content

Firmware

VariantBLE dataBLE OTADirect-radio OTA (via base)
fw-base✅ (bootloader default, always there)
fw-ble(upgradeable)
fw-ble-ota

Which do I have? Your shipping email’s date + carrier tells you — see What’s new — March 2026. (v3_1 reports version_id 101.)

Flashing over SWD (wired — always works)

Section titled “Flashing over SWD (wired — always works)”
  • Needs an SWD programmer (STLink V2 + pogo-pin adapter, available with uMyo).
  • Flashes the .hex releases from the uMyo firmware repo.
  • The bootloader is un-brickable — a failed flash just means “the device won’t run,” repeat the procedure.

The bootloader supports two OTA transports, toggled by a button press once you’re in bootloader mode:

Direct-radio (over the base) — the default, and it works on every firmware, including fw-base. It’s the bootloader’s core mode (channel 21) and has been there all along. The gesture-lab host (or the base relay) flashes over the RF link — no STLink, no sudo, fast. This is the OTA path even a plain fw-base device already has.

BLE (phone app) — needs the newer, BLE-capable bootloader (fw-ble-ota). Toggle to it with a button press in the bootloader (it advertises as uMyo2 bootloader); the Android app flashes over BLE in ~4–5 min. fw-ble can be upgraded to this once over SWD, then it’s wireless forever.

Entering the bootloader: device off, hold the button ~2 s → bootloader (defaults to direct-radio). A button press toggles direct-radio ↔ BLE where the bootloader supports both.

BLE OTA steps (Android app):

  1. Device off. Press and hold the button → LED goes solid blue (not the normal startup sequence).
  2. Keep holding 5+ s until the LED switches to a slow blue blink — that’s bootloader mode.
  3. Short-press once — switches the bootloader from base to BLE (no LED change; expected).
  4. Tap Start OTA — it scans, connects, and uploads in ~4–5 min. Don’t close the app or power off mid-upload.

The bootloader auto-exits after 15 min if a flash is abandoned, and can’t be damaged by a failed upload.

Open source: uMyo firmware repo (v3_1; urf_lib submodule) — build instructions in the README.