
m-bootloader
Loud86/100MIT clean-room bootloader for the M-VAVE FM-1 and SMK-37 Pro / Elite (JieLi AC791N), and M-Flasher's flash loader
m-bootloader is custom firmware for the M-VAVE FM-1, by @jvitkauskas. Open source under MIT, latest release v1.3 (November 2026), 25 stars on GitHub.
forM-VAVE FM-1·by@jvitkauskas
Unclaimed. Is this yours? Sign in with GitHub as @jvitkauskas to claim it.
fm1-uboot.fwsc· 17 KB· +7 files
MIT· jvitkauskas/m-bootloader·downloads come from the creator’s GitHub releases
v1.3m-bootloader 1.3Latest8 files
Fixes
BAD CONFIGon FM-1s with M-VAVE's 016 boot area, and is the first release built with the open pi32v2 LLVM toolchain.- Fixed:
BAD CONFIGon every start. FM-1 016's boot configuration says 320 MHz, which 1.2 rejected. A unit with that boot area stopped at the menu on every start, and its firmware only started with Boot app. M-UPGRADE writes that boot area when it installs 016. 1.3 accepts it, and still runs at 360 MHz as before. If you have this problem, install 1.3 over 1.2. - New toolchain. Nothing from JieLi is needed to build it any more. The bootloaders and the flash loader are new binaries.
- Flash loader 1.3 (
MFLR1.3): the same code built with the new toolchain, with a new version so that M-Flasher does not reuse an older one.
Not tested on the FM-1's newer flash chip. FM-1s sold from late 2026 have a UCUN UC25HQ80 flash (
0xB36014). One such unit did not start after 1.2 was installed, with a black screen rather thanBAD CONFIG, and the cause is not known yet (M-Flasher #13). Check FLASH CHIP in M-Flasher before installing. With0xB36014, install it at your own risk.File For fm1-uboot.fwscFM-1, with M-UPGRADE smk37-pro-uboot.fwscSMK-37 Pro, with M-UPGRADE smk37-elite-uboot.fwscSMK-37 Elite, with M-UPGRADE fm1-uboot.bootFM-1, with M-Flasher smk37-uboot.bootSMK-37 Pro / Elite, with M-Flasher mflr-loader-a.bin,mflr-loader-b.binM-Flasher's flash loader SHA256SUMSchecksums Back up your unit with M-Flasher first. Install with
m-flasher bootloader --file fm1-uboot.boot(orsmk37-uboot.boot). The menu and M-Flasher show the version as1.3-6c321e9.Status:
- SMK-37 Pro: this release tested from Linux: it boots its firmware and M-VAVE's 016, and the flash loader read, installed and restored firmware, ending byte-identical, with the calibration untouched.
- FM-1 (
0x856014): tested on the build just before this one (1.2-8658d67), which differs only in its version text. It boots with both the 015 and 016 boot configurations, and the keys were checked by hand on the SMK-37 Pro build. - Not yet tried with this toolchain: installing with M-UPGRADE, the SMK-37 Elite, the UC25HQ80, and the calibration guard repairing lost data.
- Fixed:
v1.2m-bootloader 1.28 files
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.fwscFM-1, with M-UPGRADE smk37-pro-uboot.fwscSMK-37 Pro, with M-UPGRADE smk37-elite-uboot.fwscSMK-37 Elite, with M-UPGRADE fm1-uboot.bootFM-1, with M-Flasher smk37-uboot.bootSMK-37 Pro / Elite, with M-Flasher mflr-loader-a.bin,mflr-loader-b.binM-Flasher's flash loader SHA256SUMSchecksums Back up your unit with M-Flasher first. With M-Flasher, install as before:
m-flasher bootloader --file fm1-uboot.boot(orsmk37-uboot.boot). The menu and M-Flasher show the version as1.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.
- New:
v1.1m-bootloader 1.15 files
Fixes the FM-1's power-on keys.
- FM-1: REC and PLAY at power-on now work (download mode and the recovery menu). On the FM-1, the key matrix only works while the backlight pin PA2 is driven low. The power-on check ran before anything drove it, so it saw no keys. The menu's own keys already worked.
- The SMK-37 build changes only in its version text. The flash loader is unchanged (
MFLR1.2).
File For smk37-uboot.bootSMK-37 Pro / Elite fm1-uboot.bootFM-1 mflr-loader-a.bin,mflr-loader-b.binM-Flasher's flash loader SHA256SUMSchecksums Install with M-Flasher after backing up your unit:
m-flasher bootloader --file fm1-uboot.boot(orsmk37-uboot.boot). The menu and M-Flasher show the version as1.1-e9a25e1.Status:
- FM-1: now tested on hardware: start-up, both power-on keys, the menu with its keys and LEDs, and download mode.
- SMK-37 Pro: tested in full with 1.0.
- SMK-37 Elite: not tested yet.