Dinghy
The smallest firmware for the M-VAVE FM-1 to build your own on.
- Custom firmware
- Beta
- Medium brick risk
- Reversible
Source codeWebsite: fm1.designburgapps.com
This project hasn't been claimed by its maintainer yet, so its details come from the community. Is it yours? Claim it
Dinghy 0.4 brings OberVave's platform over to the base:
- MIDI: the FM-1's TRS MIDI IN next to USB in one queue (
midi_getreturns 1 for USB, 2 for TRS); clock, start, stop and continue reach the app. The demo shows an incoming clock's tempo, blinks PLAY on the beat, and PRESETS sets a MIDI channel (OMNI or 1-16) for in and out. - Storage: settings up to 4 KB, 8 blobs of 4 KB, 8 slots of 16 KB, each with a CRC (
store.h). - LCD_IDLE: the app reads MIDI while the screen's DMA runs, so notes don't wait for a redraw.
- The update loader's screen (FM-1): your name in your colour, a progress bar, what to do.
- SMK-37 (Pro, Elite, MKE-P37):
./build.sh --board smk37 [--model elite|mke], the same app with velocity, outer keys, 16 coloured pads, faders and the pitch wheel (genkigenki's board layer). - Tests and CI:
tests/run_tests.sh(host app, flash maps, update path, loader, installer); a tag builds, tests and releases with a build attestation.
Tested on the host and in CI. The platform code runs on the device in OberVave; Dinghy 0.4 itself has not been tried on an FM-1 or SMK-37 yet.
Packages: dinghy-0.4.fwsc (FM-1, FM-1_994), dinghy-0.4-smk37.fwsc (SMK-37 Pro), -smk37-elite, -smk37-mke.
Before you start
- How hard is it?
- EasyWith Slipway.
- 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?
- Yes. You can go back to the official software.
Did it work for you?
Did Dinghy v0.4 work on your M-VAVE FM-1?
No reports yet for v0.4.
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 ("5. Onto the FM-1"):
./build.sh # -> build/dinghy.fwsc (fails on what would brick the FM-1) python3 tools/fm1install.py build/dinghy.fwsc # over USB; asks before it writes, restarts into your build python3 tools/fm1install.py --info # what runs on the connected FM-1
That is the whole loop: change, hear it on the host, build, install. Back to another firmware, or to the official one, with the FM-1 Firmware Hub in Chrome or Edge: Dinghy (and every copy of it) answers the hub's updater like every firmware there. Installing firmware is at your own risk.
Risk and recovery
- Brick risk
- Medium
- Reversible
- Yes
- Requires opening the device
- No
From the project's README ("6. When it goes wrong"):
- It crashes: the screen shows where (the PC), then the FM-1 restarts. Twice at boot and it goes to the USB rescue by itself.
- It won't start at all: hold OCT- while switching on: the USB rescue, no sound, only the updater. Install a working build (or another firmware from the hub) from there.
- The build refuses: it checks for a 64-bit division, a call into the chip ROM, too much RAM, a register touched outside hal/. docs/RULES.md says why each one matters; read it before your first crash.
Releases
| Version | Name | Released |
|---|---|---|
| v0.4 | Dinghy 0.4Latest | 23 October 2026 |
| v0.3 | Dinghy 0.3 | 9 October 2026 |
| v0.2 | Dinghy 0.2 | 9 October 2026 |
| v0.1 | Dinghy 0.1 | 9 October 2026 |
Credits, license and support
- License
- GPL-3.0