m-bootloader
It replaces the bootloader M-VAVE ships, adding a way back into USB download mode and a recovery menu, so a unit with broken or unwanted firmware can be reflashed without opening it.
- Custom firmware
- Stable
- Medium brick risk
This project hasn't been claimed by its maintainer yet, so its details come from the community. Is it yours? Claim it
Install m-bootloader with M-VAVE's own updater, M-UPGRADE, over USB MIDI: no download mode, no M-Flasher.
- New:
.fwscpackages for M-UPGRADE. Open the one for your unit in M-UPGRADE and start the upgrade. The unit restarts, showsINSTALLINGand a progress bar on its screen, thenINSTALLED, and restarts into its firmware. M-UPGRADE then times out with an error; that is expected, and the bootloader is installed by then. - The packages hold no firmware, only a small installer that writes the bootloader. Your unit keeps its firmware and settings.
- The packages are labelled version 099, because M-UPGRADE refuses the version a unit already has. Afterwards the unit still reports its firmware's own version.
- The bootloaders change only in their version text. The flash loader is unchanged (
MFLR1.2).
| File | For |
|---|---|
fm1-uboot.fwsc | FM-1, with M-UPGRADE |
smk37-pro-uboot.fwsc | SMK-37 Pro, with M-UPGRADE |
smk37-elite-uboot.fwsc | SMK-37 Elite, with M-UPGRADE |
fm1-uboot.boot | FM-1, with M-Flasher |
smk37-uboot.boot | SMK-37 Pro / Elite, with M-Flasher |
mflr-loader-a.bin, mflr-loader-b.bin | M-Flasher's flash loader |
SHA256SUMS | checksums |
Back up your unit with M-Flasher first. With M-Flasher, install as before: m-flasher bootloader --file fm1-uboot.boot (or smk37-uboot.boot). The menu and M-Flasher show the version as 1.2-22e2559.
M-UPGRADE needs the unit to run firmware it can update, such as M-VAVE's. If it refuses a unit running other firmware, its force upgrade skips the model and version checks. M-VAVE's official updates still put their own bootloader back; reinstall with either tool afterwards.
Status:
- Installing with M-UPGRADE: tested from M-VAVE's bootloader on an FM-1 (firmware 015) and on an SMK-37 with the Pro and the Elite firmware (016). Only the bootloader changed; firmware, calibration, presets and sounds were untouched.
- FM-1, SMK-37 Pro: tested in full (see the README).
- SMK-37 Elite: the same hardware and flash layout as the Pro; installation tested with the Elite firmware.
Before you start
- How hard is it?
- MediumInstall an app on your computer and follow its steps.
- What you need
- A USB or MIDI cable
- Comfort with the command line
- A computer
- Can it break my device?
- Small chance of trouble, with a way to recover.
- Can I undo it?
- The project doesn't say. Assume you can't.
Did it work for you?
Did m-bootloader v1.2 work on your M-VAVE FM-1?
No reports yet for v1.2.
One-tap reports from owners. Bricked reports are checked before they count.
Compatibility
Devices: M-VAVE FM-1.
No compatibility information yet.
Getting started
From the project's README ("Install"):
Back up your unit with M-Flasher first. Then install the build for your board, smk37-uboot.boot or fm1-uboot.boot from the releases:
m-flasher bootloader --file smk37-uboot.boot
M-Flasher writes only the bootloader and keeps the rest of the boot area. If the bootloader is ever broken, the USBKEY dongle still forces the chip into download mode (specification §4.3).
A unit running M-VAVE's firmware enters download mode on a MIDI message, whichever bootloader it has, so a stock unit can be backed up first: the SysEx F0 22 24 35 7D F7 on its first MIDI port (specification §4.2). On Linux, find the port with amidi -l, then amidi -p hw:N,0,0 -S 'F0 22 24 35 7D F7'. M-Flasher sends it with its DOWNLOAD MODE button, from 0.5.0.
With M-VAVE's updater
fm1-uboot.fwsc, smk37-pro-uboot.fwsc and smk37-elite-uboot.fwsc install it with M-VAVE's M-UPGRADE, over USB MIDI, without download mode. The unit has to run firmware that M-UPGRADE can update, such as M-VAVE's, and keeps it.
A package holds no firmware, only our installer (src/installer.c): the unit's firmware stores it and the bootloader starts it. It writes only the bootloader and its boot-area record, shows its progress on the screen, and restarts the unit. M-UPGRADE then waits for an updater that never comes, and times out with an error; the installation is done by then. Tested from M-VAVE's bootloader on an FM-1 (firmware 015) and on an SMK-37 with the Pro and the Elite firmware (016). …
Risk and recovery
- Brick risk
- Medium
- Requires opening the device
- No
From the project's README ("Features"):
- Download mode from the keys. Hold REC (FM-1) or SEQ REC (SMK-37) while switching on. The unit appears on USB in the chip's download mode, ready for M-Flasher.
- Recovery menu. Hold PLAY (FM-1) or SEQ PLAY (SMK-37) while switching on. The menu also opens by itself when the firmware cannot start. It shows the firmware's state and size, pending updates and the flash chip, and offers:
- Boot app and Download mode;
- Boot anyway: start firmware that fails its checksum, once;
- Wipe user data: erase the settings areas the firmware declares, and nothing else. The menu lists the exact ranges, and you hold the key for 3 s to confirm.
- Checked start. Every firmware file's checksum is verified before the firmware starts.
- Firmware updates. M-VAVE's own updater and other firmwares' updaters run as they do with the stock bootloader.
- Calibration guard (SMK-37). Keeps a copy of the factory calibration and puts it back if it is erased.
- Flash loader for M-Flasher. Fast reads (about 860 KB/s), an on-chip CRC32 check, checked writes, the flash chip's unique ID, and progress on the unit's own screen.
Releases
| Version | Name | Released |
|---|---|---|
| v1.2 | m-bootloader 1.2Latest | 19 October 2026 |
| v1.1 | m-bootloader 1.1 | 17 October 2026 |
Credits, license and support
- License
- MIT