fm1-radio
fm1-radio turns the M-VAVE FM-1 into a pocket internet radio.
- Custom firmware
- Alpha
- Medium brick risk
- Reversible
This project hasn't been claimed by its maintainer yet, so its details come from the community. Is it yours? Claim it
Withdrawn for now: on some FM-1s this release crashes when WiFi starts or while it is loading the places. A fixed release will follow.
The first release of Radio, an internet radio for the M-VAVE FM-1. It runs on fm1-base, the MPL-2.0 base for FM-1 firmware on felucca-bsp, and is MPL-2.0 itself, so the firmware file may be shared.
- It joins a 2.4 GHz WiFi network and keeps it; if one network fails, it tries the next kept one.
- Radio Garden's places, fetched once into the FM-1's own flash; a place's stations fetched when you pick it.
- MP3 and AAC streams, HE-AAC included (HE-AAC v2 plays in mono), over HTTP or HTTPS.
- Punch-in effects on the white keys, and tap tempo on FX.
It is a proof of concept: it works, and the rough edges are in the README's known limits (2.4 GHz only; HLS, MP4 and Ogg streams don't play; server certificates aren't checked).
Install it from the browser (Chrome or Edge, the FM-1 plugged in): https://charlesvestal.github.io/fm1-radio/install/
(the installer can put M-VAVE's own firmware back too), or over USB with python3 base/tools/fm1_install.py radio-1.0.fwsc. Try its interface in the browser: https://charlesvestal.github.io/fm1-radio/emu/ (the streams need
the FM-1's WiFi).
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 fm1-radio v1.0 work on your M-VAVE FM-1?
No reports yet for v1.0.
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 ("Build and install"):
git submodule update --init --recursive # fm1-base in base/ PYTHON=/opt/homebrew/bin/python3 ./build.sh python3 base/tools/fm1install.py app/build/radio.fwsc --yes # the FM-1 plugged in over USB
The build makes app/build/radio.fwsc and checks the image and RAM sizes. ./build.sh --host builds the host simulator instead (app/build/host/radiohost), with a stand-in network.
To go back to M-VAVE's firmware, use the web installer's "Back to the stock firmware" on . An FM-1 that fails to start twice starts in a safe mode with USB on, and holding OCT− and OCT+ for 5 seconds starts update mode.
Risk and recovery
- Brick risk
- Medium
- Reversible
- Yes
- Requires opening the device
- No
From the project's README ("Build and install"):
git submodule update --init --recursive # fm1-base in base/ PYTHON=/opt/homebrew/bin/python3 ./build.sh python3 base/tools/fm1install.py app/build/radio.fwsc --yes # the FM-1 plugged in over USB
The build makes app/build/radio.fwsc and checks the image and RAM sizes. ./build.sh --host builds the host simulator instead (app/build/host/radiohost), with a stand-in network.
To go back to M-VAVE's firmware, use the web installer's "Back to the stock firmware" on . An FM-1 that fails to start twice starts in a safe mode with USB on, and holding OCT− and OCT+ for 5 seconds starts update mode.
Releases
| Version | Name | Released |
|---|---|---|
| v1.0 | Radio 1.0Pre-release | 17 October 2026 |
Credits, license and support
- License
- MPL-2.0