m-flasher, image 1 from its README
Firmware

m-flasher

Peaking95/100

m-flasher is custom firmware for the M-VAVE FM-1, by @jvitkauskas. Latest release v0.8.2 (November 2026), 38 stars on GitHub.

forM-VAVE FM-1·by@jvitkauskas

Unclaimed. Is this yours? Sign in with GitHub as @jvitkauskas to claim it.

Download
1
Stars
38
Fork
1
Commits
46
Last commit
Download v0.8.2

M-Flasher-0.8.2-macos.dmg· 7.0 MB· +7 files

Custom license· jvitkauskas/m-flasher·downloads come from the creator’s GitHub releases

32
Commits
10
Releases
32 commits and 10 releases in the last year
Activity · last 12 months
10 releases
  1. v0.8.2M-Flasher 0.8.2Latest8 files
    DownloadThen
    Windows 10 / 11M-Flasher-0.8.2-windows.zipextract it and run M-Flasher.exe. It asks for administrator rights. The app is not signed, so the first time Windows may say it protected your PC: More info → Run anyway.
    macOS 11+ (Apple silicon and Intel)M-Flasher-0.8.2-macos.dmgopen it and drag M-Flasher to Applications. The first time macOS blocks it: System Settings → Privacy & Security → Open Anyway. When it finds the unit, it asks for your password, and once to let it access a removable volume (the unit): Allow.
    Debian 12+, Ubuntu 22.04+, Mint, Raspberry Pi OS (64-bit)m-flasher_0.8.2-1_amd64.deb, ARM64: _arm64.debsudo apt install ./m-flasher_0.8.2-1_amd64.deb, connect the unit, and start M-Flasher from the app menu.
    Fedora, RHEL / Alma / Rocky 10, openSUSE Tumbleweed and Leap 16m-flasher-0.8.2-1.x86_64.rpm, ARM64: .aarch64.rpmsudo dnf install ./m-flasher-0.8.2-1.x86_64.rpm (openSUSE: sudo zypper install …), connect the unit, and start M-Flasher from the app menu.
    Other Linux (glibc 2.35+)m-flasher-0.8.2-linux-x86_64.tar.gz, ARM64: -aarch64.tar.gzextract it and follow README.txt: install the udev rule once, connect the unit, run m-flasher as yourself.

    New in 0.8.2:

    • m-bootloader 1.3 bundled. It fixes BAD CONFIG on FM-1s with M-VAVE's 016 boot area, which M-UPGRADE writes when it installs 016. m-bootloader 1.2 stopped at its menu on every start on those units. If yours does, Boot app in the menu still starts the firmware, and installing m-bootloader again from this version fixes it.
    • A warning before installing an older m-bootloader from a file on a unit where it would show BAD CONFIG.
    • Flash loader 1.3: the same code built with the open pi32v2 LLVM toolchain.

    Tested on an SMK-37 Pro from Linux: the loader read, installed and restored firmware, ending byte-identical, and m-bootloader 1.3 boots its firmware and stock 016. On an FM-1, the build just before this m-bootloader boots with both the 015 and 016 boot configurations. Not yet tried on Windows or macOS.

    m-bootloader has still not been tested on the FM-1's newer flash chip (0xB36014), and M-Flasher warns before installing it there (#13).

    Everything else is unchanged from 0.8.1.

  2. v0.8.1M-Flasher 0.8.18 files
    DownloadThen
    Windows 10 / 11M-Flasher-0.8.1-windows.zipextract it and run M-Flasher.exe. It asks for administrator rights. The app is not signed, so the first time Windows may say it protected your PC: More info → Run anyway.
    macOS 11+ (Apple silicon and Intel)M-Flasher-0.8.1-macos.dmgopen it and drag M-Flasher to Applications. The first time macOS blocks it: System Settings → Privacy & Security → Open Anyway. When it finds the unit, it asks for your password, and once to let it access a removable volume (the unit): Allow.
    Debian 12+, Ubuntu 22.04+, Mint, Raspberry Pi OS (64-bit)m-flasher_0.8.1-1_amd64.deb, ARM64: _arm64.debsudo apt install ./m-flasher_0.8.1-1_amd64.deb, connect the unit, and start M-Flasher from the app menu.
    Fedora, RHEL / Alma / Rocky 10, openSUSE Tumbleweed and Leap 16m-flasher-0.8.1-1.x86_64.rpm, ARM64: .aarch64.rpmsudo dnf install ./m-flasher-0.8.1-1.x86_64.rpm (openSUSE: sudo zypper install …), connect the unit, and start M-Flasher from the app menu.
    Other Linux (glibc 2.35+)m-flasher-0.8.1-linux-x86_64.tar.gz, ARM64: -aarch64.tar.gzextract it and follow README.txt: install the udev rule once, connect the unit, run m-flasher as yourself.

    New in 0.8.1:

    • The FM-1's newer flash chip. FM-1s sold from late 2026 have a UCUN UC25HQ80 flash (0xB36014). M-Flasher now identifies these units with certainty, instead of showing "FM-1 (probably)".
    • A warning before installing m-bootloader on an untested flash chip. m-bootloader has not been tested on the UC25HQ80, and one such unit did not start after it was installed. The cause is not known yet (#13).
    • A clearer failure when the flash cannot be read. If the flash loader found no flash chip when it started, which showed up as "16 of 16384 bytes received", M-Flasher now starts it once more. If that does not help, it says so and gives the ID the chip reads. The flash chip's ID is also logged before the read, so a failed read still reports it.

    Tested on an SMK-37 Pro from Linux. The new loader restart has only been tested against a simulated unit.

    Everything else is unchanged from 0.8.0.

  3. v0.8.0M-Flasher 0.8.08 files
    DownloadThen
    Windows 10 / 11M-Flasher-0.8.0-windows.zipextract it and run M-Flasher.exe. It asks for administrator rights. The app is not signed, so the first time Windows may say it protected your PC: More info → Run anyway.
    macOS 11+ (Apple silicon and Intel)M-Flasher-0.8.0-macos.dmgopen it and drag M-Flasher to Applications. The first time macOS blocks it: System Settings → Privacy & Security → Open Anyway. When it finds the unit, it asks for your password, and once to let it access a removable volume (the unit): Allow.
    Debian 12+, Ubuntu 22.04+, Mint, Raspberry Pi OS (64-bit)m-flasher_0.8.0-1_amd64.deb, ARM64: _arm64.debsudo apt install ./m-flasher_0.8.0-1_amd64.deb, connect the unit, and start M-Flasher from the app menu.
    Fedora, RHEL / Alma / Rocky 10, openSUSE Tumbleweed and Leap 16m-flasher-0.8.0-1.x86_64.rpm, ARM64: .aarch64.rpmsudo dnf install ./m-flasher-0.8.0-1.x86_64.rpm (openSUSE: sudo zypper install …), connect the unit, and start M-Flasher from the app menu.
    Other Linux (glibc 2.35+)m-flasher-0.8.0-linux-x86_64.tar.gz, ARM64: -aarch64.tar.gzextract it and follow README.txt: install the udev rule once, connect the unit, run m-flasher as yourself.

    New in 0.8.0:

    • Fame MiniFM support. The MiniFM is an FM-1 under another name: M-Flasher now finds it on USB MIDI and detects it as an FM-1, so DOWNLOAD MODE appears. Packages of either name install on either unit, so MiniFM_016 and FM-1_016 can be cross-flashed. The app warns first, because the unit then reports itself as the other model and M-UPGRADE only accepts that model's packages. The backup made before the write brings the original firmware back. Checked against both vendor packages on simulated flash, not yet on a real MiniFM: reports welcome in #12.

    Everything else is unchanged from 0.7.0.

  4. v0.7.0M-Flasher 0.7.08 files
    DownloadThen
    Windows 10 / 11M-Flasher-0.7.0-windows.zipextract it and run M-Flasher.exe. It asks for administrator rights. The app is not signed, so the first time Windows may say it protected your PC: More info → Run anyway.
    macOS 11+ (Apple silicon and Intel)M-Flasher-0.7.0-macos.dmgopen it and drag M-Flasher to Applications. The first time macOS blocks it: System Settings → Privacy & Security → Open Anyway. When it finds the unit, it asks for your password, and once to let it access a removable volume (the unit): Allow.
    Debian 12+, Ubuntu 22.04+, Mint, Raspberry Pi OS (64-bit)m-flasher_0.7.0-1_amd64.deb, ARM64: _arm64.debsudo apt install ./m-flasher_0.7.0-1_amd64.deb, connect the unit, and start M-Flasher from the app menu.
    Fedora, RHEL / Alma / Rocky 10, openSUSE Tumbleweed and Leap 16m-flasher-0.7.0-1.x86_64.rpm, ARM64: .aarch64.rpmsudo dnf install ./m-flasher-0.7.0-1.x86_64.rpm (openSUSE: sudo zypper install …), connect the unit, and start M-Flasher from the app menu.
    Other Linux (glibc 2.35+)m-flasher-0.7.0-linux-x86_64.tar.gz, ARM64: -aarch64.tar.gzextract it and follow README.txt: install the udev rule once, connect the unit, run m-flasher as yourself.

    New in 0.7.0:

    • Installing firmware erases settings and Bluetooth pairings by default. Custom firmwares are not always compatible with each other's data, and settings or pairings left by one can cause issues in the next, so Also erase settings and Bluetooth pairings now starts ticked. Untick it to keep them, for example when reinstalling the same firmware. Saved sequences are kept, as before. The command line is unchanged: m-flasher firmware erases them only with --wipe-settings.
    • m-flasher restart leaves download mode without touching the flash: the unit resets and starts its firmware, and M-Flasher waits up to a minute for it to show up on USB MIDI (the SMK-37's stock firmware takes about half a minute). --restart does the same after restore, firmware and bootloader.

    Everything else is unchanged from 0.6.1.

  5. v0.6.1M-Flasher 0.6.18 files
    DownloadThen
    Windows 10 / 11M-Flasher-0.6.1-windows.zipextract it and run M-Flasher.exe. It asks for administrator rights. The app is not signed, so the first time Windows may say it protected your PC: More info → Run anyway.
    macOS 11+ (Apple silicon and Intel)M-Flasher-0.6.1-macos.dmgopen it and drag M-Flasher to Applications. The first time macOS blocks it: System Settings → Privacy & Security → Open Anyway. When it finds the unit, it asks for your password, and once to let it access a removable volume (the unit): Allow.
    Debian 12+, Ubuntu 22.04+, Mint, Raspberry Pi OS (64-bit)m-flasher_0.6.1-1_amd64.deb, ARM64: _arm64.debsudo apt install ./m-flasher_0.6.1-1_amd64.deb, connect the unit, and start M-Flasher from the app menu.
    Fedora, RHEL / Alma / Rocky 10, openSUSE Tumbleweed and Leap 16m-flasher-0.6.1-1.x86_64.rpm, ARM64: .aarch64.rpmsudo dnf install ./m-flasher-0.6.1-1.x86_64.rpm (openSUSE: sudo zypper install …), connect the unit, and start M-Flasher from the app menu.
    Other Linux (glibc 2.35+)m-flasher-0.6.1-linux-x86_64.tar.gz, ARM64: -aarch64.tar.gzextract it and follow README.txt: install the udev rule once, connect the unit, run m-flasher as yourself.

    New in 0.6.1:

    • Units whose USB MIDI name is spelled without a dash are found too, such as FM1_MONITOR, so M-Flasher can switch them to download mode without holding any keys. FM1 and SMK37 are now recognised alongside FM-1, SMK-37 and Felucca, and a unit that lists ports under both spellings is still sent the switch once.

    Everything else is unchanged from 0.6.0.

  6. v0.6.0M-Flasher 0.6.08 files
    DownloadThen
    Windows 10 / 11M-Flasher-0.6.0-windows.zipextract it and run M-Flasher.exe. It asks for administrator rights. The app is not signed, so the first time Windows may say it protected your PC: More info → Run anyway.
    macOS 11+ (Apple silicon and Intel)M-Flasher-0.6.0-macos.dmgopen it and drag M-Flasher to Applications. The first time macOS blocks it: System Settings → Privacy & Security → Open Anyway. When it finds the unit, it asks for your password, and once to let it access a removable volume (the unit): Allow.
    Debian 12+, Ubuntu 22.04+, Mint, Raspberry Pi OS (64-bit)m-flasher_0.6.0-1_amd64.deb, ARM64: _arm64.debsudo apt install ./m-flasher_0.6.0-1_amd64.deb, connect the unit, and start M-Flasher from the app menu.
    Fedora, RHEL / Alma / Rocky 10, openSUSE Tumbleweed and Leap 16m-flasher-0.6.0-1.x86_64.rpm, ARM64: .aarch64.rpmsudo dnf install ./m-flasher-0.6.0-1.x86_64.rpm (openSUSE: sudo zypper install …), connect the unit, and start M-Flasher from the app menu.
    Other Linux (glibc 2.35+)m-flasher-0.6.0-linux-x86_64.tar.gz, ARM64: -aarch64.tar.gzextract it and follow README.txt: install the udev rule once, connect the unit, run m-flasher as yourself.

    New in 0.6.0:

    • FM-1 firmware 016, the vendor's major update, is supported: its DX7 data file, and its new settings and sequencer layout, which the flash map now shows, including saved sequences. Erasing settings clears settings and Bluetooth pairings at the addresses the package declares and keeps saved sequences. When switching between 015 and 016, M-Flasher warns that the data layout changes; restore a backup to go back to the earlier firmware with its data.
    • Bootloader replacement works with 016's larger stock bootloader. 016 moves the boot configuration (isd_config.ini) inside the boot area. M-Flasher now reads where it is from the file table instead of assuming a fixed address, keeps it, and moves it only when a larger bootloader needs the room, never over other data. This also makes it possible to put 016's stock bootloader on a unit with the older layout.
    • m-flasher run-ram, for developers: uploads a program of your own to the chip's RAM through download mode, starts it, sends it commands and reads RAM back, without writing to the flash (see docs/usage.md). It runs arbitrary code on the chip; switching the unit off and on returns it to normal.

    The other operations and safety rules are unchanged. m-bootloader 1.2 is bundled, as in 0.5.x. Installing FM-1 016 with M-Flasher has been tested on a unit. run-ram has so far only been tested against a simulated unit.

  7. v0.5.1M-Flasher 0.5.18 files
    DownloadThen
    Windows 10 / 11M-Flasher-0.5.1-windows.zipextract it and run M-Flasher.exe. It asks for administrator rights. The app is not signed, so the first time Windows may say it protected your PC: More info → Run anyway.
    macOS 11+ (Apple silicon and Intel)M-Flasher-0.5.1-macos.dmgopen it and drag M-Flasher to Applications. The first time macOS blocks it: System Settings → Privacy & Security → Open Anyway. When it finds the unit, it asks for your password, and once to let it access a removable volume (the unit): Allow.
    Debian 12+, Ubuntu 22.04+, Mint, Raspberry Pi OS (64-bit)m-flasher_0.5.1-1_amd64.deb, ARM64: _arm64.debsudo apt install ./m-flasher_0.5.1-1_amd64.deb, connect the unit, and start M-Flasher from the app menu.
    Fedora, RHEL / Alma / Rocky 10, openSUSE Tumbleweed and Leap 16m-flasher-0.5.1-1.x86_64.rpm, ARM64: .aarch64.rpmsudo dnf install ./m-flasher-0.5.1-1.x86_64.rpm (openSUSE: sudo zypper install …), connect the unit, and start M-Flasher from the app menu.
    Other Linux (glibc 2.35+)m-flasher-0.5.1-linux-x86_64.tar.gz, ARM64: -aarch64.tar.gzextract it and follow README.txt: install the udev rule once, connect the unit, run m-flasher as yourself.

    Fixed in 0.5.1:

    • Linux: DOWNLOAD MODE no longer hangs when another program uses the unit's MIDI port, such as PipeWire's MIDI bridge (common on recent Debian), a browser with Web MIDI, or a DAW. 0.5.0 logged that it was switching the unit, then waited for the port, possibly forever. M-Flasher now sends through the ALSA sequencer, which shares the port. If the port can't be reached, it says so at once.
    • macOS: a unit connected after M-Flasher starts is now found. Before, DOWNLOAD MODE only appeared if the unit was connected and switched on before M-Flasher started.
    • The log now says when the download-mode message has actually been sent, and the window, like m-flasher download-mode, reports it if the unit doesn't switch within 20 s.

    Operations and safety rules are unchanged. m-bootloader 1.2 is bundled, as in 0.5.0. Tested on Linux (with the MIDI port held by another program) and on macOS (a unit connected after starting).

  8. v0.5.0M-Flasher 0.5.08 files
    DownloadThen
    Windows 10 / 11M-Flasher-0.5.0-windows.zipextract it and run M-Flasher.exe. It asks for administrator rights. The app is not signed, so the first time Windows may say it protected your PC: More info → Run anyway.
    macOS 11+ (Apple silicon and Intel)M-Flasher-0.5.0-macos.dmgopen it and drag M-Flasher to Applications. The first time macOS blocks it: System Settings → Privacy & Security → Open Anyway. When it finds the unit, it asks for your password, and once to let it access a removable volume (the unit): Allow.
    Debian 12+, Ubuntu 22.04+, Mint, Raspberry Pi OS (64-bit)m-flasher_0.5.0-1_amd64.deb, ARM64: _arm64.debsudo apt install ./m-flasher_0.5.0-1_amd64.deb, connect the unit, and start M-Flasher from the app menu.
    Fedora, RHEL / Alma / Rocky 10, openSUSE Tumbleweed and Leap 16m-flasher-0.5.0-1.x86_64.rpm, ARM64: .aarch64.rpmsudo dnf install ./m-flasher-0.5.0-1.x86_64.rpm (openSUSE: sudo zypper install …), connect the unit, and start M-Flasher from the app menu.
    Other Linux (glibc 2.35+)m-flasher-0.5.0-linux-x86_64.tar.gz, ARM64: -aarch64.tar.gzextract it and follow README.txt: install the udev rule once, connect the unit, run m-flasher as yourself.

    New in 0.5.0:

    • Download mode without keys, even on a stock unit. Connect a unit that is running normally: M-Flasher finds it on USB MIDI and shows a DOWNLOAD MODE button, which restarts it into download mode with a MIDI message (the SysEx F0 22 24 35 7D F7). This works with M-VAVE's own firmware (FM-1 015, SMK-37 Pro and Elite 016) and Felucca, whichever bootloader the unit has. A completely stock unit can now be backed up, and m-bootloader installed, without a USB_KEY dongle. On the command line: m-flasher download-mode; m-flasher find also lists units running on USB MIDI.
    • m-bootloader 1.2 bundled. The bootloader is unchanged apart from its version text; the flash loader is unchanged (MFLR1.2). m-bootloader 1.2 also comes as .fwsc packages for M-VAVE's own updater, M-UPGRADE (release).

    Operations and safety rules are unchanged. Download mode over USB MIDI tested from Linux on an FM-1 and an SMK-37 Pro with the stock bootloader; not yet tried from Windows or macOS.

  9. v0.4.2M-Flasher 0.4.28 files
    DownloadThen
    Windows 10 / 11M-Flasher-0.4.2-windows.zipextract it and run M-Flasher.exe. It asks for administrator rights. The app is not signed, so the first time Windows may say it protected your PC: More info → Run anyway.
    macOS 11+ (Apple silicon and Intel)M-Flasher-0.4.2-macos.dmgopen it and drag M-Flasher to Applications. The first time macOS blocks it: System Settings → Privacy & Security → Open Anyway. When it finds the unit, it asks for your password, and once to let it access a removable volume (the unit): Allow.
    Debian 12+, Ubuntu 22.04+, Mint, Raspberry Pi OS (64-bit)m-flasher_0.4.2-1_amd64.deb, ARM64: _arm64.debsudo apt install ./m-flasher_0.4.2-1_amd64.deb, connect the unit, and start M-Flasher from the app menu.
    Fedora, RHEL / Alma / Rocky 10, openSUSE Tumbleweed and Leap 16m-flasher-0.4.2-1.x86_64.rpm, ARM64: .aarch64.rpmsudo dnf install ./m-flasher-0.4.2-1.x86_64.rpm (openSUSE: sudo zypper install …), connect the unit, and start M-Flasher from the app menu.
    Other Linux (glibc 2.35+)m-flasher-0.4.2-linux-x86_64.tar.gz, ARM64: -aarch64.tar.gzextract it and follow README.txt: install the udev rule once, connect the unit, run m-flasher as yourself.

    New in 0.4.2:

    • Baud Girl on the FM-1 is recognised. Its FM-1 build names itself like a stock version, so 0.4.1 showed "FM-1 (probably)" and "FM-1 101 (stock)". It now shows the model as FM-1 and the firmware as "FM-1 101 (Baud Girl)".

    Operations and safety rules are unchanged. Tested on an FM-1 and an SMK-37 Pro.

  10. v0.4.1M-Flasher 0.4.18 files
    DownloadThen
    Windows 10 / 11M-Flasher-0.4.1-windows.zipextract it and run M-Flasher.exe. It asks for administrator rights. The app is not signed, so the first time Windows may say it protected your PC: More info → Run anyway.
    macOS 11+ (Apple silicon and Intel)M-Flasher-0.4.1-macos.dmgopen it and drag M-Flasher to Applications. The first time macOS blocks it: System Settings → Privacy & Security → Open Anyway. When it finds the unit, it asks for your password, and once to let it access a removable volume (the unit): Allow.
    Debian 12+, Ubuntu 22.04+, Mint, Raspberry Pi OS (64-bit)m-flasher_0.4.1-1_amd64.deb, ARM64: _arm64.debsudo apt install ./m-flasher_0.4.1-1_amd64.deb, connect the unit, and start M-Flasher from the app menu.
    Fedora, RHEL / Alma / Rocky 10, openSUSE Tumbleweed and Leap 16m-flasher-0.4.1-1.x86_64.rpm, ARM64: .aarch64.rpmsudo dnf install ./m-flasher-0.4.1-1.x86_64.rpm (openSUSE: sudo zypper install …), connect the unit, and start M-Flasher from the app menu.
    Other Linux (glibc 2.35+)m-flasher-0.4.1-linux-x86_64.tar.gz, ARM64: -aarch64.tar.gzextract it and follow README.txt: install the udev rule once, connect the unit, run m-flasher as yourself.

    New in 0.4.1:

    • Installs m-bootloader 1.1. On the FM-1, REC and PLAY at power-on now work, for download mode and the recovery menu; with 1.0 they did not. The SMK-37 build changes only in its version.
    • Tested on an FM-1 as well: backups, installing m-bootloader and putting the stock bootloader back, restoring, and the unit's screen during operations. On the FM-1, m-bootloader's start-up, keys, menu and download mode work.

    To update a unit that already has m-bootloader 1.0, install m-bootloader again from the Bootloader tab.