Skip to content
altstrument

fm1-bootloader

Firmware for FM-1 (M-VAVE)

Open C bootloader for the FM-1 and SMK-37 Pro/Elite, reconstructed from JieLi's generic one, with a recovery key that drops into USB download mode and a recovery menu.

by Julius Vitkauskas (jvitkauskas)

ActiveSource: openApache-2.0

Brick risk. Flashing this carries a known, documented risk of damaging the device.

Distribution
Build from source yourself
License notes
Inherits Apache-2.0 from JieLi's AC79 SDK, from which it is reconstructed. The LZ4 decoder stays under BSD-2-Clause (see NOTICE).
Source
github.com https://github.com/jvitkauskas/fm1-bootloader

Description

Starts from a byte-identical C reconstruction of the generic AC79 bootloader that the stock firmware ships, then splits it into ordinary modules and removes support for external RAM and large flash chips that these devices lack. It adds a recovery key held at power-on that resets the chip into its ROM USB download mode, so a damaged flash can be rewritten over a normal cable, and a menu that reports whether the installed app is intact, boots a damaged app anyway, wipes user data or enters download mode. Boot checks the CRC of each app file. Builds are per board and carry an identity block so an installer can refuse the wrong device. An official M-VAVE update puts the stock bootloader back. The author's M-Flasher can install it.

Install notes

Build on x86-64 Linux with JieLi's clang toolchain in /opt/jieli (make for the FM-1, make BOARD=smk37 for the SMK-37 Pro and Elite). Install a build only on the device it was built for. The README says this build is not tested on hardware and that a broken bootloader can brick the unit, so first make sure you can reach JieLi's download mode. A bootloader write is the one thing its own recovery cannot repair.

Version history

fm1-bootloader version history
VersionDateNotes
main @ 14b26f42026-10-13No tagged releases; this is the latest commit.

Back to FM-1