FM‑1's little companion

Your keys, any firmware, one cheap ESP32

Outrigger

A palm-sized touchscreen on the hub. It sends your playing to the FM-1, shows you what's connected, and handles every firmware switch, backup first.

Outrigger's Play screen: hub, controller and FM-1, all green
Everything's connected
Outrigger's firmware list: Skiff running, Felucca holding your songs
Your firmwares
Outrigger's switch plan for Felucca
What a switch will do
Get an ESP32 ↓

One hub, one charger

Outrigger, the FM-1 and your MIDI controller all plug in here, and one charger powers them all. Pick a hub that can charge a laptop through it, and plug Outrigger in where the laptop would go.

What to look for ↓

The FM-1

M-VAVE's pocket FM synth, with 27 keys, a speaker and a battery. Its players have written more than a hundred alternative firmwares for it, from grooveboxes to samplers.

Get one ↓

MIDI controller

Any MIDI controller with a USB port that works without installing a driver: keys, pads, knobs, faders. Plug it in and it plays the FM-1.

Has a 5-pin or 3.5 mm MIDI out? A plain MIDI cable into the FM-1 does that part, no Outrigger needed.

Plug in your keys

Any MIDI controller with a USB connection plays the FM-1: full-size keys, pads and knobs on a pocket synth. No laptop or MIDI adapters, and one charger runs it all.

Pop in a new instrument

Over a hundred community firmwares, and switching should be easy and safe. Outrigger does it in about a minute and backs up first.

LOOM-8 on the FM-1's screen
LOOM-8 a groovebox inspired by the OP-XY
X0X on the FM-1's screen
X0X 909, 808 and two 303s
zp12 on the FM-1's screen
zp12 a 12-bit sampler
winampFM on the FM-1's screen
winampFM a synth that looks like Winamp
100+ more at the Firmware Hub ↗
Got Outrigger installed? Add custom FM-1 firmwares in the library

What you need

ESP32-S3 board with a screen

This runs Outrigger. We've tested two:

Other ESP32-S3 touchscreen boards should work if their USB-C goes straight to the chip, with no USB-serial converter in between. Adding one is usually a short board profile, not new code. Got one? Request support here.

The nitpicky part: will my board work?
  • An ESP32-S3. A plain ESP32, C3 or C6 can't connect USB devices. The S2 and P4 can, but Outrigger has no build for them yet.
  • Native USB. The USB-C port goes straight to the chip. Listings say "native USB" or "OTG".
  • No "one-click download". Those boards route USB through a converter chip that can't host.
  • 16 MB flash and 8 MB PSRAM. Listings say "N16R8". The installer stops on smaller boards.
  • A screen chip Outrigger knows: ST7789, ST7796 or ILI9341, with CST816 or FT6336 touch. Another chip needs driver code as well as a profile.
  • A TF card slot is worth having for a coming version. The 3.5" has one. The 1.69" doesn't.
  • Touch helps, but isn't required.

Tried another board? Tell us how it went.

Powered USB-C hub

We've tested one hub, so check the listing before you buy: it needs its own power and USB-C data ports. Outrigger plugs in where a laptop would.

  1. Power first: the charger into the hub's charging input. The hub needs its own power.
  2. Outrigger on the hub's host cable (or host port): the one a laptop would plug into.
  3. The FM-1 and your controller in the hub's USB-C data ports. On the hub we tested, its USB-A ports didn't work.
The nitpicky part: what to look for in the listing
  • A charging input, marked "PD in" or "pass-through". A 30 W USB-C charger is plenty.
  • Host charging. The hub powers the laptop port, and Outrigger runs on it.
  • Two data ports, for the FM-1 and your MIDI controller.
  • Four data ports or fewer. Bigger hubs hide a second hub chip that Outrigger can't reach.
  • No card reader or Ethernet. Each takes one of Outrigger's eight USB connections.
  • Plug the charger in first, and leave it alone while a firmware switch runs: unplugging it restarts everything on the hub.

FM-1

M-VAVE's pocket FM synth, usually $60–100 depending on the seller.

MIDI controller with USB connection

We suspect any MIDI controller made in the last fifteen years works.

What's new

    • Six more firmwares can be added: DX SLOOP, Salt, Hortator, MNM-1, Nauclerus and Hawk-Chua, from the SLOOP and Felucca 0.9 family. We cleared them by reading their source. None has run on an FM-1 yet.
    • Newer FM-1s with the UC25HQ80 flash chip can switch firmware. Outrigger warns you first: we haven't tested that chip, and a switch may fail or not keep your songs.
    • M-VAVE's Open firmware is recognised. An FM-1 running it plays from your keys. Backing it up and switching away from it come next.
    • A factory FM-1 on stock V15 shows as running in the firmware list.
    • Remote diagnostics, off unless you turn it on in Setup. Then Outrigger shows its status, log and any crash on a read-only page over Wi-Fi, so we can help without guessing.
    • Send this log to Outrigger. When an install fails, one button sends us its log. You see exactly what goes before you send it, and MAC addresses are removed.
    • Stock V15 comes from M-VAVE's own repo, at a fixed version, so it can't vanish when a newer one comes out.
    • Add firmware from the community catalog. The list comes from mutant.cloud ↗, about 190 FM-1 firmwares, with the Firmware Hub as a fallback when it's slow. Add one.
    • Your FM-1 stays recoverable. Outrigger backs it up before every switch and never writes the part of the FM-1 that lets it start up and recover. If an install of Outrigger stops partway, install again: it picks up where it stopped.

What's coming

Over Wi-Fi

Set up, update and check on Outrigger from your phone or laptop, without plugging it in.

In testing

Wi-Fi

Join your network from Outrigger's screen, so updates, downloads and its web page need no cable.

In testing

outrigger.local

Open Outrigger from any browser on your Wi-Fi: status, backups and settings.

Planned

Firmware over Wi-Fi

Browse the Firmware Hub on Outrigger's screen and download straight to Outrigger.

Planned

Backups on your computer

Copy any backup off Outrigger, and restore the one you choose.

In testing

Update Outrigger over Wi-Fi

Install a new Outrigger without a USB cable. It's running on our bench now.

Playing and recording

More of your rig on one hub, and a way to capture what you play.

In testing

Record the FM-1

Capture its audio over USB at 44.1 kHz stereo and pull the takes off over Wi-Fi. Streaming comes after.

Planned

A general-purpose MIDI hub

Route any MIDI controller with a USB connection to any USB synth, not just the FM-1. The router is built. Pointing it at other synths is a small change we haven't made or tested yet.

Planned

More devices at once

Several controllers together, Bluetooth MIDI, and twice the USB room on ESP32-P4 boards.

Planned

The whole catalog on a TF card

Boards with a card slot keep every firmware locally, about 60 MB in all.Pro tip: buying an ESP32 now? Get one with a TF card slot, like the 3.5".

More firmwares

More of the catalog on your FM-1.

Planned

Riskier firmwares, with a warning

SLOOP 2.4 and later, and Melodee. They write the part of the FM-1's memory that holds its Bluetooth address, so Outrigger will warn you before it installs one.

Troubleshooting

How do I update Outrigger?

Outrigger's USB port is busy running your MIDI gear, so first hand it to your computer: in Settings, open Computer mode and hold the button. Then plug Outrigger into your computer and click Check my ESP32, then Install. It goes back to MIDI by itself afterwards, and your backups stay.

Outrigger's Settings, with Computer mode: for updates over USB
Settings
Computer mode screen: hold to restart in Computer mode
Hold to restart
Why can't the installer find my ESP32?

Try another cable: charge-only cables never show up. Or hold BOOT, tap RST, let go of BOOT, and click Check my ESP32 again.

My FM-1 won't start. Is it broken?

It's almost certainly not dead: its install mode lives in ROM. The Firmware Hub's Rescue or the Unbricker brings it back from a computer.

Why doesn't my second MIDI controller play?

For now, Outrigger has room for one MIDI controller next to the FM-1. Unplug the other one. More than one is coming.

Does this site send anything about me?

One anonymous count when you press Install, unless you untick the box beside that button: which board profile, which edition, the installer's version, whether it finished, and the day. No MAC address, chip serial, IP address, browser details or cookies. A finished install counts once per board in each browser. If an install fails, you can send us its log with "Send this log to Outrigger": you see all of it first, and your board's MAC address is taken out. Page visits are counted by Cloudflare Web Analytics, which uses no cookies and doesn't fingerprint visitors.

Where do my backups live?

On Outrigger itself, never online. Copying them to a computer is coming.

For builders

Under the hood

Many boards, one firmware

Each board is a profile: its pins, screen and touch. Screens, installer checks and tests adapt to it. Two tested today. Board list

Only the parts you need

A shared base with apps on top, built into editions: Hub, or Hub + Loader. A general MIDI hub for any USB synth is planned.

Open source

GPL-3.0, core and apps. Build your own edition with only what you need. Source on GitHub

Installs with

esptool-js 0.7.0 (Apache-2.0), served from this site.

It writes only the program and its startup parts, never your settings or the backup store.

Licenses

Outrigger is GPL-3.0. The firmware includes LVGL and EspUsbHost (MIT), Arduino_GFX (BSD) and the Arduino ESP32 core (LGPL-2.1). Licenses and credits

Built on
  • MvaveFM1Unbricker Quixotic7. Its FM-1 install handshake and package parsing, ported
  • jl-uboot-tool kagaimiq. The FM-1 chip's boot commands and cipher, ported
  • Felucca Hügelton Instruments. The firmware package format, by way of the Unbricker
Thanks to
Related