Flipper Zero: Momentum Firmware Flash & App Loadout
Flashing Momentum firmware on a Flipper Zero and choosing a custom app loadout.
Flipper Zero: Momentum Firmware Flash & App Loadout
Goal
Update a connected Flipper Zero to the latest software, then move it from stock firmware to the Momentum custom firmware, and install a curated set of community apps via the official web installer – all without bricking the device.
What is a Flipper Zero / Momentum
Flipper Zero is a portable multi-tool for interacting with Sub-GHz, RFID, NFC,
Infrared, iButton, GPIO, and Bluetooth signals, with a dolphin-themed UI.
Momentum (Next-Flip/Momentum-Firmware on GitHub) is a popular custom
firmware built on top of the official firmware: it keeps official-firmware
compatibility while adding UI customization, extra protocols, and app-catalog
support.
Process
- Identify the device: confirmed via Device Manager as
USB Serial Device (COM3), VID_0483/PID_5740 – a genuine Flipper Zero STM32 virtual COM port. - Install qFlipper (the official desktop companion app), version 1.3.3,
downloaded from
update.flipperzero.onewith SHA256 checksum verification before running the installer silently. - Update stock firmware to the latest release (1.4.3) using
qFlipper-cli.exerun with no arguments – this is documented upstream behavior (“quick update/repair” against the configured channel) but is non-obvious and can look alarming the first time (see Gotchas below). - Flash Momentum custom firmware: downloaded the
mntm-012release assetflipper-z-f7-update-mntm-012.tgzfrom GitHub (not the-sdk-zip, which is for app development only), verified its SHA256, then flashed it through qFlipper’s GUI “Install from file” link –qFlipper-clihas no subcommand for installing an arbitrary firmware package, only official channels. - Verify the flash: confirmed via qFlipper’s Info tab (Firmware: MNTM-012, correct build date, SD card databases installed) and the on-device “Welcome to MOMENTUM FIRMWARE” first-boot screen.
- Install apps via the official web installer at
lab.flipper.net/apps, connected over WebUSB (see Gotchas for why this step cannot be scripted end-to-end).
Apps Installed
| App | Category | What it does |
|---|---|---|
| Solitaire | Games | Klondike solitaire card game |
| Stack | Games | Timing/skill tower-building game |
| Roulette | Games | Six-chamber TRNG roulette with haptics/sound |
| Dragotchi | Games | Tamagotchi-style pet that “hunts the airwaves” |
| BEEPBACK | Games | Simon-style memory game, daily shared challenge |
| Internet Time | Tools | Swatch Internet Time / DCF77 clock sync |
| Faraday | Tools | Measures signal-blocking pouch effectiveness in dB |
| Telemeter | Tools | Lightning/muzzle-flash distance-delay calculator |
| PC Health Remote | Bluetooth | PC temps/load display with vibro/sound alerts |
| eMRTD Reader | NFC | Reads electronic passports/ID cards over NFC |
| Specter | NFC | Passively detects active 13.56MHz NFC readers/skimmers |
| TPMS Bridge | Sub-GHz | Reads car tire-pressure sensors (39 protocols) |
| Marauder GUI | GPIO | Companion app for an ESP32 Marauder WiFi/BT add-on board |
| DFC | NFC | Reader/emulator for compatible NFC credentials (installed incidentally) |
Not installed: Flipcraft (voxel survival game) – the catalog’s current
build for it is broken server-side (Failed to fetch application build
(1008)), independent of firmware or client; nothing to fix on our end,
worth retrying later once the catalog re-builds it.
Gotchas / Lessons Learned
qFlipper-cliwith no arguments is not a no-op or help display – it performs a full update/repair against the live device immediately. If you just want to inspect CLI options, read--helpoutput from documentation first, not by running the binary live against a connected device.- WebUSB device pairing cannot be automated.
navigator.usb.requestDevice()(the dialog that lets a webpage pick a USB device) only fires on a direct, human-originated click event. A script-triggered click on the page’s “Connect” button silently does nothing – the human must click it themselves at least once per session. - qFlipper (desktop) and a browser’s WebUSB/WebSerial session cannot share
a COM port. Fully close qFlipper (not just minimize) before connecting
the Flipper to
lab.flipper.netin a browser, and vice versa. - The app list on lab.flipper.net reorders as installs complete (an
app’s button flips from INSTALL to OPEN and may change position). Cached
element references from an earlier page read can point to the wrong app
after other installs finish – always re-read the page immediately before
each click when driving installs in a loop, and verify final state via
lab.flipper.net/apps/installedrather than trusting in-progress button states. - Not every catalog app is installable on demand – some builds are
simply missing/broken server-side (distinct from firmware incompatibility),
surfaced as a
Failed to fetch application buildtoast with no retry path available client-side. - qFlipper-cli’s real subcommands are only
backup,restore,erase,wipe(unimplemented),firmware <dfu>,core2radio,core2fus– there is no subcommand for installing arbitrary.fapapps or custom firmware packages; GUI “Install from file” is required for those.
Open Questions / Next Steps
- Garage door opener rolling-code pairing (adding the Flipper as a second remote) is still pending – blocked on identifying the opener’s brand/model.
- Consider revisiting Flipcraft once the catalog’s build pipeline is healthy again.