Trireme FM-1
Turns the FM-1 into a programmable USB keyboard and macro pad: any key, media or mouse action on each key, button and knob, five layers, macros and Vial support, with an on-device editor.
by ignis32

Brick risk. Flashing this carries a known, documented risk of damaging the device.
- Distribution
- Prebuilt image you flash yourself
- Requires stock
- V15
- License notes
- Source files carry SPDX GPL-3.0-only headers. The README notes that felucca-bsp's own licensing (MPL-2.0 for most files, GPL-3.0-only for usb.c) is provisional. Spleen fonts are BSD-2-Clause, and the packages contain three JieLi AC79 SDK files under Apache-2.0.
- Source
- github.com https://github.com/ignis32/trireme_fm1
- controller-mode
- midi
- usb-midi
- ui
Description
Has no sound engine. Layers can be held, toggled or tapped, and macros, tap dances and combos are written in the Vial app, which finds the keyboard without a definition file. The screen shows what each control does on the current layer, and each key has a light style per layer. The configuration is stored in two flash copies and is kept when other firmware is installed. The device still shows up as USB MIDI, so firmware installers keep working. The author says it was written with an AI coding assistant and that not every function has been tested by hand. It builds on felucca-bsp, the board support split out of Felucca.
Install notes
The README says to install M-VAVE's stock V15 first (download FM-1.fwsc from M-VAVE yourself), then install the release .fwsc with fm1_install.py from the felucca-bsp submodule. To go back, install stock V15 the same way, or use Baud Girl's installer. Holding OCT+ at power-on, or OCT- and OCT+ for 10 seconds, enters update mode, and two failed starts in a row do the same.
Version history
| Version | Date | Notes |
|---|---|---|
| 0.1 | 2026-10-12 | Marked as a pre-release. |