Les

FM-1 firmware · v0.6.1

FiMba-1 beta

FiMba-1, by jadamsowers, makes the FM-1 a kalimba with modelled tines and resonant bodies. You can play individual tines, roll chords or let one of four mbira patterns carry a chord while you play over it. Grain freeze, delay, reverb and colour effects extend the sound. It grew from Charles Vestal’s FoMni and X0X on Leo Kuroshita’s Felucca platform; FiMba’s instrument and saved setup are different.

What it is
A modelled kalimba with different tine arrangements, rolled chords, four accompanying mbira patterns and grain freeze
Best for
Playing resonant plucked notes and chords over repeating accompaniment
Install
GitHub release or hub
Scan
Scanned, nothing harmful found · Oct 30 What we checked

What each control does on FiMba-1 beta

FiMba-1 v0.6.1 on the M-VAVE FM-1 CHORD I CHORD ii CHORD iii CHORD IV CHORD V CHORD vi CHORD vii CHORD I7 CHORD IV7 CHORD V7 CHORD vi7 TINE D6 TINE B5 TINE G5 TINE E5 TINE C5 TINE A4 TINE F4 TINE D4 TINE C4 TINE E4 TINE G4 TINE B4 TINE D5 TINE F5 TINE A5 TINE C6 VOLUME MATERIAL MATERIAL HARDNESS DECAY TONE KEY SCALE OCT - HOLD OCT+ UPDATE HOLD OCT + SPACE/ COLOR KEYS / PLAY BODY GRAIN/ SPREAD NEXT PAGE SETUP TINE PAGES SAVE SETUP PATTERN FREEZE PALM MUTE PATTERN RUN

TapSwipe across the panel, then tap any control to see what it does on FiMba-1 beta.

Start here

The modes

Page selection and key layout are independent: the keys keep their playing jobs on every normal page. Most buttons act when released; PLAY and REC act when pressed. No button changes an encoder’s assignment while held. HOME starts on Tine at boot. EDIT visits all eleven pages in the order below.

Do thisWhat happens
Release HOMEOpens Tine from another page group, or alternates Tine and Character within its own group.
Release ENVOpens Body.
Release FXOpens Space from another page group, or alternates Space and Color within its own group.
Release LFOOpens Grain from another page group, or alternates Grain and Spread within its own group.
Release SELOpens Keys from another page group, or alternates Keys and Play within its own group.
Release SEQOpens Pattern without starting or stopping it.
Release GLOOpens Setup.
Release EDITAdvances through Tine, Character, Body, Space, Color, Grain, Spread, Keys, Play, Pattern and Setup, then returns to Tine.

The Keys page changes its knob assignments in Keyboard layout. Reset confirmation, hardware calibration, safe mode and update screens are separate flows described below.

Play and choose a sound

Do thisWhat happens
Turn SELECTSteps among Steel, Brass, Bronze, Aluminium, Bamboo and Glass, clamped at either end, and marks the setup for autosave.
Turn ALGORITHMSteps through the twelve scales without wrapping and marks the setup for autosave, including the stored scale while Keyboard layout is active.
Turn PRESETS in Tine or MirrorChanges the tonic C–B with wrapping and marks the setup for autosave.
Turn PRESETS in KeyboardChanges Keyboard transpose within −12 to +12 semitones and marks the setup for autosave.
Turn MASTERSets the final output volume, including the audio sent to USB, without changing a saved setup value.

Tine places its lowest note at white key 9, counting from the left; Mirror puts it at white key 8 and reflects the scale. The table gives each printed white key’s pitch at C major, octave 0. Scale, Key, Octave and Tuning change these pitches. The notes still play over an ARP pattern.

Printed white keyTine pitch / Mirror pitch
F3D6 / C6
G3B5 / A5
A3G5 / F5
B3E5 / D5
C4C5 / B4
D4A4 / G4
E4F4 / E4
F4D4 / C4
G4C4 / D4
A4E4 / F4
B4G4 / A4
C5B4 / C5
D5D5 / E5
E5F5 / G5
F5A5 / B5
G5C6 / D6

Keyboard makes every white and black key play its printed note, from F3 to G5, shifted by Transpose and Octave. Single-note key plucks use a fixed velocity, while chord rolls soften their later notes; MIDI notes carry their incoming velocity. With ARP on in Keyboard, keys build the pattern chord instead of plucking directly: the first key after all panel keys are up starts a fresh chord, and only six pitches fit. Releasing them keeps that chord.

Release set to Ring leaves plucked tines sounding; Damp damps the notes that key plucked when released, with a sustain pedal able to defer it. Enabled MIDI output sends note-offs on release. A rolled chord released early in Damp can lose its remaining delayed plucks.

Run a pattern or freeze the grains

Do thisWhat happens
ARPAfter a tap shorter than 0.5 seconds, starts or stops the preset pattern using the last chord, or a default tonic chord if none was chosen.
ARP holdAfter 0.5 seconds, opens Pattern and consumes the release without toggling playback.
PLAYToggles grain recording between frozen and live without stopping the pattern or clearing the recorded audio.
RECDamps every tine and cancels pending chord-roll plucks while effect tails and the pattern can continue.

Thumbs alternates bass and treble; Cascade travels through the tines; 3 over 2 overlays the two pulse groupings; Interlock adds an answering part between pulses. These are preset patterns, with no note-recording or editable step sequence. The cycle has twelve pulses at three per beat; Interlock inserts half-pulse steps. It keeps its chord after the keys lift. One held pitch is expanded with a fifth and octave, two with the lower pitch’s octave; bass uses the lowest and third sorted tones one octave lower. Starting ARP resets the cycle.

Coming from another firmware

Pick the firmware on your FM-1 now to see what installing FiMba-1 beta does to its data.

1 · Before you switch, back up on Stock V15

  • Back up first. Keep the DX7 .syx banks you loaded so you can send them again (a bank arrives over MIDI SysEx and you pick A-D). Another route: installing Baud Girl’s FM-1+VA keeps your saved stock presets, and its Device Manager can then save all 128 presets as a .syx file. FM-1+VA is closed source; install it at your own risk. It is unknown whether stock's 16 patterns come through or can then be backed up. Write down patterns you care about. To come back, you need M-VAVE's own V15 file from its download page; the installers check it byte for byte. Stock V15’s automatic pattern saves and SAVE writes may also replace ChoralRoot’s legacy sounds 1–32, VA patches, FM6 patches 1–32, CZ patches 1–32 and FM TONE patches, kept for returning to ChoralRoot 0.21 or older. Stock V15’s write locations are uncertain. Stock V15 has no backup of its own; it sends notes over MIDI, never voice data.

2 · What happens to your Stock V15 data

Possibly at risk

  • stock settings (and possibly patterns)

(At start-up, FiMba-1 erases the space where firmware updates are prepared if a checked spot there holds data. This can erase stock data in that space. The exact locations of stock saved data are only reported.)

More on switching away from Stock V15

What Les checked

FiMba-1 beta v0.6.1Scanned October 30, 2026

What we checked for

  • The file is exactly the one its author published
  • It's the same file we saw when this release first came out
  • It opens cleanly as an FM-1 firmware, nothing damaged
  • It doesn't show up on your computer as a keyboard, mouse or other input device
  • It doesn't show up as a USB drive or network adapter
  • Its text mentions no computer command tools, like PowerShell, Terminal or a download command

What we found

  • MIDI and audio, as expected

Not checked yet

  • Its update loader, the part that writes the firmware onto your FM-1. A person hasn't reviewed it yet.
  • What it does while it's running. We read the file; we don't run it.
  • Whether the file was built from its published source code.

StatusScanned, nothing harmful found

Les has mapped its controls for v0.6.1.

Les scans every firmware here whose file is public, and shows what it checked and what it found. A scan lowers the risk; it can't rule it out. This firmware is made by its author, not by Les or M-VAVE. Back up first, and install at your own risk. How Les scans firmware

Everything else on FiMba-1 beta

Use the black keys

In Tine and Mirror, Keys KNOB 4 chooses Chords, Sharps or Perform. These assignments are replaced by printed notes in Keyboard. Chord mode follows Scale and Key: the default C-major names below are examples, not fixed chord assignments. Chords roll four notes with Strum ms spacing; with ARP running, they set its chord without a roll.

Printed black keyDefault Chords / Perform job
F#3C / Damps every tine and cancels pending rolled notes without stopping pattern playback or clearing effect tails.
G#3Dm / Covers the sound hole while held on Box or Gourd, adding to the knob and MIDI hole controls.
A#3Em / Toggles the grain buffer between frozen and live; releasing this key leaves that state latched.
C#4F / Temporarily shifts new notes one octave down while held, without changing the saved octave.
D#4G / Temporarily shifts new notes one octave up while held, without changing the saved octave.
F#4Am / Selects Steel and marks the setup for autosave, retaining that choice after release.
G#4Bdim / Selects Brass and marks the setup for autosave, retaining that choice after release.
A#4CM7 / Selects Bronze and marks the setup for autosave, retaining that choice after release.
C#5FM7 / Selects Aluminium and marks the setup for autosave, retaining that choice after release.
D#5G7 / Selects Bamboo and marks the setup for autosave, retaining that choice after release.
F#5Am7 / Selects Glass and marks the setup for autosave, retaining that choice after release.

Sharps raises the current tine of the white neighbour on the left by one semitone. This follows Tine or Mirror, rather than the black key’s printed pitch.

In Perform, releasing G#3 removes only that key’s hole coverage. Releasing C#4 or D#4 restores the saved octave even if the other octave key remains held; the two shifts do not add together. Material and freeze choices remain after release. F#3’s mute has no extra release action.

Shape the instrument and effects

Turn KNOB 1–4 for the current page. Faster turns increase the step size on wider ranges; values clamp at their limits. Every actual parameter change joins the one saved setup. On Body with None or Board selected, Wah and Wah rate stay unchanged and show NO HOLE.

Do thisWhat happens
Tine: KNOB 1Selects the tine material from Steel, Brass, Bronze, Aluminium, Bamboo and Glass (default Steel).
Tine: KNOB 2Sets pluck hardness from 0 to 100 (default 45).
Tine: KNOB 3Sets tine decay from 0 to 100 (default 50).
Tine: KNOB 4Sets overtone sustain from 0 to 100 (default 55).
Character: KNOB 1Sets repeatable tine-to-tine wear and pitch variation from 0 to 100 (default 0).
Character: KNOB 2Sets the pluck’s initial sharp pitch movement from 0 to 100 (default 30).
Character: KNOB 3Chooses Equal or Just tuning, leaving off-grid Mbira pitches unchanged (default Equal).
Character: KNOB 4Chooses Ring or Damp when a played key is released (default Ring).
Body: KNOB 1Chooses None, Board, Box or Gourd (default Box).
Body: KNOB 2Sets body-buzzer strength from 0 to 100 (default 0).
Body: KNOB 3Sets sound-hole coverage, or the flutter depth when Wah rate is active, from 0 to 100 on Box or Gourd (default 0).
Body: KNOB 4Sets sound-hole flutter from Off to 100 on Box or Gourd (default Off).
Space: KNOB 1Sets the amount sent to the plate reverb from 0 to 100 (default 30).
Space: KNOB 2Sets reverb decay from 0 to 100 (default 60).
Space: KNOB 3Sets delay level from 0 to 100 (default 0).
Space: KNOB 4Sets ping-pong delay time from 40 to 740 ms (default 330 ms).
Color: KNOB 1Sets tape pitch movement and saturation from 0 to 100 (default 0).
Color: KNOB 2Sets treble loss, stereo narrowing and hiss from 0 to 100 (default 0).
Color: KNOB 3Sets stereo chorus amount from 0 to 100 (default 0).
Color: KNOB 4Sweeps from low-pass at −100 through Off at 0 to high-pass at +100 (default Off).
Grain: KNOB 1Sets grain-cloud level from 0 to 100 (default 0).
Grain: KNOB 2Sets grain duration from 20 to 500 ms (default 140 ms).
Grain: KNOB 3Sets grain starts from 1 to 60 per second (default 14).
Grain: KNOB 4Chooses grain pitch −12, −7, 0, +7, +12 or +19 semitones, Shimmer or Reverse (default +12).
Spread: KNOB 1Sets the grains’ position, timing, pitch and pan scatter from 0 to 100 (default 30).
Spread: KNOB 2Sets delay feedback from 0 to 95 (default 45).
Spread: KNOB 3Sets the stereo spread of tines, grains and delay from 0 to 100 (default 70).
Spread: KNOB 4Does nothing on this page.
Keys: KNOB 1Chooses Tine, Keyboard or Mirror for the keys (default Tine).
Keys: KNOB 2Chooses Major, Minor, Penta, Penta m, Dorian, Mixolyd., Lydian, Harm. m, Hirajoshi, Blues, Mbira or Chromatic (default Major).
Keys: KNOB 3Selects the tine tonic from C to B without wrapping (default C).
Keys: KNOB 4Assigns black keys to Chords, Sharps or Perform (default Chords).
Play: KNOB 1Sets the spacing between rolled chord notes from 0 to 120 ms (default 30 ms).
Play: KNOB 2Sets the saved octave from −2 to +2 (default 0).
Play: KNOB 3Does nothing on this page.
Play: KNOB 4Does nothing on this page.
Pattern: KNOB 1Selects Thumbs, Cascade, 3 over 2 or Interlock (default Thumbs).
Pattern: KNOB 2Sets internal pattern tempo from 40 to 200 BPM while incoming MIDI clock can take over (default 96 BPM).
Pattern: KNOB 3Does nothing on this page.
Pattern: KNOB 4Does nothing on this page.
Setup: KNOB 1Fine-tunes the instrument from −50 to +50 cents (default 0).
Setup: KNOB 2Chooses Omni or MIDI receive channel 1–16 (default Omni).
Setup: KNOB 3Enables or disables key-note output over USB on the selected channel, using channel 1 for Omni (default Off).
Setup: KNOB 4Chooses Light or Dark screen colours (default Light).

On Keys in Keyboard layout, KNOB 1 is Layout, KNOB 2 is Transpose (−12 to +12), KNOB 3 is Octave (−2 to +2) and KNOB 4 does nothing. Keys KNOB 3 in Tine or Mirror clamps the tonic at C and B; PRESETS wraps around instead. ALGORITHM still changes the stored scale in Keyboard, where the keys do not use it.

Worn adds stable differences between tines. Glide gives a pluck a brief sharp start. Equal uses the ordinary pitch grid; Just adjusts on-grid intervals around the tonic, while off-grid Mbira notes stay as they are. Box and Gourd have a sound hole; None and Board do not. Grain freeze holds audio in memory, and does not save it. The signed Filter knob selects low-pass on the negative side and high-pass on the positive side.

MIDI and USB recording

USB and the TRS MIDI input share the receive channel chosen on Setup, with Omni as the default. Incoming notes pluck at their own pitches or supply the running pattern’s chord; note-offs damp only with Damp active and the pattern off.

Send or connectWhat happens
CC1 or channel pressureAdds sound-hole coverage on a body with a hole.
CC64Holds damps until the pedal is released.
CC72 / CC73 / CC74Changes Decay / Hardness / Tone and marks the setup for autosave.
CC91 / CC93 / CC94Changes Reverb / Grains / Delay and marks the setup for autosave.
Program ChangeChooses one of six materials, wrapping the program number, and marks the setup for autosave.
Pitch bendBends ringing tines up or down by two semitones.
CC120 or CC123Damps all tines and pending plucks while the pattern can continue.
MIDI clock, Start, Continue or StopLeads pattern timing on any channel; Start resets, Continue resumes and Stop holds stepping.
USB to a computerReceives MIDI and updater commands, sends key notes when MIDI out is on, and offers stereo recording at 44.1 kHz, 16-bit, after MASTER.

Clock takes over while ticks arrive; after roughly half a second without them, local Tempo takes over, but MIDI Stop still holds stepping. MIDI out starts Off; when enabled, the selected channel is used, or channel 1 for Omni. Pattern-generated notes do not use the panel key-note output path.

Save, reset and keep your settings

Press and release SAVE before any firmware install or chip-updater entry, including an OCT-button hold or a computer’s USB request; neither updater entry saves pending edits, and held buttons or frozen grains prevent autosave.

One saved setup holds all forty parameters; there are no user pattern slots or saved grain recordings, and neither the current page nor pattern-running and freeze states are saved. SAVE writes immediately, with no overwrite question or undo, and checks the stored result. Autosave requires a pending edit, no held buttons or keys, no frozen grains, low output including effect tails, silent tines and at least four seconds on the activity timer. KNOB 1–4, keys, held buttons and musical MIDI refresh that timer; SELECT, ALGORITHM and PRESETS do not, so their edits may save as soon as the other guards permit. Failed autosaves remain pending. A confirmed sound reset changes RAM first and is written only by later autosave or another SAVE. Starting an update that returns early reinitializes the UI and clears its unsaved flag without saving the still-loaded parameters; press SAVE before installing and again after such a return if those edits matter. The reset question does not block autosave of pending edits, and calibration ignores its save return value without showing a failure.

Do thisWhat happens
Short SAVE, then releaseA short tap writes the entire setup immediately without a question or undo, even during sound or with no edits, and reports success only after verification.
Hold SAVE 1.5 seconds, then releaseAt 1.5 seconds, opens the reset question and starts its five-second timer immediately, consuming this first release without itself resetting or saving settings.
Release SAVE again before RESET? expiresReleasing SAVE again before five seconds have passed since RESET? appeared, whether tapped or held, restores all parameters except Tune, MIDI ch, MIDI out and Theme, stops the pattern, unfreezes grains and marks the result for later autosave or another SAVE, without undo.
Another button during RESET?Cancels and consumes that button’s usual action; PLAY and REC act on press, the other buttons on release, but ARP must be a tap shorter than 0.5 seconds.
Hold ARP 0.5 seconds during RESET?Opens Pattern and consumes the release while RESET? stays armed until confirmation, cancellation or expiry.
A key during RESET?Cancels and still performs its current key action.
Five seconds pass from RESET? appearingKeeps the existing settings if no SAVE confirmation has completed.

The confirmation clock starts while the first SAVE hold is still down, when RESET? appears after 1.5 seconds; releasing that first hold does not restart it. A second SAVE may be tapped or held, but its release must reach the still-armed question before expiry. Turning encoders does not itself cancel the reset question, and pending edits can still autosave while that question is displayed. Calibration ignores its save result and does not display a save failure. There is no setup restore or panel undo. The reset keeps only Tune, MIDI ch, MIDI out and Theme; Octave and all sound and playing settings return to defaults.

Screen and lights

An explicit SAVE failure shows NOT SAVED and FLASH ERROR; that attempt has not confirmed a stored setup. Each page shows the instrument and a band of up to four named values. Tines brighten and move while ringing; the sound hole follows coverage. The header shows key and scale, or Keyboard and transpose. Dots identify the page within a button’s group. FRZ means frozen grains, PAT marks the pattern and brightens on the beat, DAMP means release damping, and a small dot means unsaved settings. Temporary messages replace the header. Setup adds version, CPU percentage and any dropout count.

LightMeaning
ENV, FX, GLO, HOME, LFO, SEL, SEQThe page belongs to that button.
PLAYGrains are frozen.
ARPPattern enabled, dark on each beat.
EDIT, SAVE, REC, OCT−, OCT+No normal light state is assigned.
Key lightsHeld keys light; white tines in Tine/Mirror and all tines in Keyboard also light while ringing.
Perform material and freeze keysThe chosen material stays lit, and freeze stays lit while latched; the screen strip does the same.
Dim key locatorWhite key 9 in Tine, white key 8 in Mirror, or the key currently playing C4 in Keyboard if one is in range; a bright state takes precedence.

Calibration and recovery

Do thisWhat happens
Hold OCT− and OCT+ during power-onStarts the prompted panel-learning flow; only completing it writes the new panel map and there is no final question or undo.
Follow calibration promptsPress FX, SEL, ENV, LFO, EDIT, GLO, HOME, SAVE, ARP, SEQ, PLAY, REC, OCT− and OCT+, then turn SELECT, ALGORITHM, PRESETS and KNOB 1–4 clockwise as requested.
Leave a calibration prompt idle for 30 secondsRestores the prior in-memory map and exits without writing flash.
Hold both OCT buttons for more than five secondsEnters the chip updater without saving pending edits; save before holding them, and release either early to cancel the countdown.
A computer requests the chip updater over USBLeaves FiMba immediately without saving pending edits; save before sending that request.
Retry an interrupted installWith the update loader still active, reconnect USB and press Install again with the same package; the loader skips matching program sectors.
PLAY in safe modeAfter the safe screen has been up for half a second, clears the failed-start counter and reboots to try normal operation again.

Two failed starts bring up safe mode with no audio and USB available for reinstallation. Four failed starts lead to the chip updater. Normal OCT button releases can still apply their octave steps when an update hold is cancelled. Update screens show progress or a failure; a failed software update can still erase its temporary staging area. The chip’s own updater screens and erase policy are outside this source map.

Before you switch firmware

  • Back up first. There is no supported hardware setup export or setup restore; write down every page value before switching, and use the previous firmware’s backup tool before FiMba’s first start; browser SAVE stores only the browser instrument’s own settings and does not read the unit.
  • Before installing or starting FiMba-1 for the first time, back up saved work using the firmware that created it; installation or startup cleanup can erase overlapping data before you touch SAVE, and there is no undo.
  • Back up with the firmware that made the work BEFORE the first start of FiMba-1. See the switching advice in this section.
  • Export Open projects and sample audio before installing. See the switching advice in this section for the affected saved work.
  • At every start, FiMba-1 checks part of its temporary update space and clears the whole area without a question if either checked area contains data. See the switching advice in this section for the affected saved work. Writes to shared storage can also remove other firmwares’ unfinished restores and pending updates; keep the original files.
  • The first SAVE or eligible autosave after an edit writes without a question; one SELECT turn can be enough to trigger autosave, and repeated saves can replace both copies of paired settings. See the switching advice in this section for the affected saved work.
  • FiMba-1 does not open FoMni, AMB-1 or Polly setups; compatible FoMni, AMB-1 and Polly panel calibration is reused. See the switching advice in this section for the affected saved work. One successful FiMba SAVE or autosave over X0X’s saved settings makes X0X v1.1.0 start its whole project from factory when you return, including settings, sound, all 32 patterns, song and motion. That reset turns X0X’s autosave back on, so later eligible autosaves can replace the old project copies without a question. Back up before switching.
  • Finishing hardware calibration writes without a final question or undo; repeated calibrations can replace both saved copies. See the switching advice in this section for the affected saved work. These writes can also replace ChoralRoot’s legacy sounds 1–16, kept for returning to ChoralRoot 0.21 or older.
  • SAVE and autosave can also replace M-VAVE Open sample audio where its uploaded bank reaches the setup storage; the upload need not have filled every overlapping area.
  • The browser instrument does not send its saved setup to the unit; its installer can still erase temporary update space during an attempted firmware update, even when the attempt fails, without a panel question.
  • One setup of sound, key, pattern and Setup values, plus a separately saved panel calibration, survives ordinary power cycles after a successful save; startup reads the setup or uses defaults without immediately saving those defaults.
  • Ringing notes, grain audio, frozen state, pattern-running state and the displayed page are not stored; unsaved edits can vanish at power-off, and there is no panel undo or setup restore command.
  • The repository’s Mac rescue tool can read a raw 1 MiB image of the unit’s flash through the chip updater, using sudo and the approved stock V15 package; omit both --write and --ask to read without rewriting flash, and keep in mind that the tool cannot restore that dump or recover settings that were never saved.
  • This release carries older FiMba settings forward and gives missing or invalid values their defaults in memory; the converted setup reaches flash only on a later SAVE or eligible autosave.
  • SAVE replaces the whole stored setup immediately without asking; autosave can do the same during quiet use after an edit, confirmed reset waits for one of those writes, and finished calibration replaces the panel map without another question.
  • Back up in the firmware you are leaving first, with its own tool (above). Anything below marked at risk can be written over; whether an older saved copy survives depends on how often you saved, so do not count on it.
  • What installing FiMba-1 beta does to the firmware you had before.
    Show the detail

    install (FiMba package update loader): Erases and rewrites changed program sectors; equal sectors are skipped, each write is read back with at most two attempts; never writes the first 16 KiB. Incoming flash length must be at least 93000, not exactly 93000. Retrying the same package through the browser resume path repeats this scan and skips sectors already equal; this is retry/resume, not restoration of user work (after UFW header/list, entry and chip-key/decrypted-app-header checks pass). install (FiMba package update loader record cleanup): After installation, clear only valid update-record sectors. Ordinary saved projects, sounds and samples are not update records (After an install, erase only a 4 KiB sector whose last 256 bytes hold a valid update record (marker 0x5441 at +6 and a matching nonzero CRC16 over bytes 2..79): in practice the family staging-record sector 0xE4000 and, on a first install from stock, stock record sector 0xE8000. Saved music does not hold that record. This loader does not skip 0x97000-0xDFFFF). every normal or safe-mode startup: Before safe-mode selection, reads four bytes at E0000 and eight at E4F00; any non-FF byte erases all 5 sectors, with no record identity or CRC check. Isolated bytes elsewhere do not trigger it (expected flash JEDEC 856014 detected, both probe reads succeed, and at least one probe is not blank). startup project and panel load: No project or calibration flash write: loads compatible records or RAM defaults; ui_init starts dirty=false (every startup that reaches app initialization). ordinary use after parameter change: Eligible quiet autosave replaces the whole project in the alternate sector; reset or incoming MIDI parameter edits use the same path, not a separate immediate write; an unanswered reset question does not suspend ordinary autosave (dirty, no held controls, >=4000 ms on activity timer, not frozen, output <=0.0005, all tine levels 0; top three encoders do not restart activity timer). software updater attempt (leaving or reinstalling): After validation, erases five sectors and stages incoming loader; ANY ota_stage refusal or error also calls unstage and erases five sectors, even if staging had not begun. Record write/verify failure does the same (host initiates update while flash is available; actual stage requires accepted package, failure cleanup runs even for a refused package). software updater commit: Writes and verifies 112-byte update record, then resets through RAM update parameter transfer (staged loader verified and host sent success). hardware updater gesture: Holding both OCT buttons >5 seconds enters chip UBOOT; this gesture itself stages nothing and saves no project. Its external updater policy is outside supplied source. Pending edits are lost on leaving this execution; autosave is blocked by ui.btn during the hold, and enter_uboot calls no project save (both calibrated OCT buttons held beyond 5000 ms). USB chip-updater request: UBOOT_KEY SysEx F0 22 24 35 7D F7 sets usb.uboot_req; normal main loop calls enter_uboot immediately, without project_save or autosave. Pending unsaved edits are lost. This entry itself performs no flash write or staging (computer sends the exact six-byte chip-updater request). optional Mac rescue tool restoring stock V15: After a raw whole-flash dump, rewrites only program sectors different from hash-approved stock V15, high to low, verifies final whole-flash read against stock image plus the old tail, then restarts. Differences in the protected head abort before writes. This installs stock; it does not restore the raw dump or write the saved-data tail (--write supplied; this bypasses the --ask callback even if both flags are supplied). optional Mac rescue tool restoring stock V15: After a raw whole-flash dump, rewrites only program sectors different from hash-approved stock V15, high to low, verifies final whole-flash read against stock image plus the old tail, then restarts. Differences in the protected head abort before writes. This installs stock; it does not restore the raw dump or write the saved-data tail (--ask supplied without --write and owner types yes after backup and checks).

    • Stock V15: Possibly at risk: stock settings (and possibly patterns). At start-up, FiMba-1 erases the space where firmware updates are prepared if a checked spot there holds data. This can erase stock data in that space. The exact locations of stock saved data are only reported.
    • Baud Girl FM-1+VA: Possibly at risk: Baud Girl presets (128); Baud Girl patterns (16, with locks). At start-up, FiMba-1 erases the space where firmware updates are prepared if a checked spot there holds data. This can erase Baud Girl’s saved work if it sits in that space, including the checked spots. Exact saved-data locations are unknown.
    • Felucca: At risk by itself: settings, button calibration, favourites, MIDI LEARN map. At risk when you act: user presets 1-16.
    • SLOOP: At risk by itself: settings, calibration, song order, SYN1-4 kits, MIDI LEARN, theme and favourites. At risk when you act: user sounds U01-U16.
    • X0X: At risk by itself: the whole X0X project (settings, sound, all 32 patterns, song, knob motion). At risk when you act: X0X button calibration. Before leaving X0X, stop playback and back up its project over USB. One save or automatic save in FiMba-1 beta can make X0X load defaults for its whole project when you return, including sounds, patterns, song and knob motion. Restore the X0X backup after reinstalling X0X; the older stored copy cannot be used as a backup.
    • JIANT: At risk by itself: settings, calibration, favourites, MENU options. At risk when you act: user sounds U01-U16.
    • Melodee: At risk by itself: settings, factory favourites, calibration, saved template. At risk when you act: shared user presets U001-U018.
    • FoMni: At risk by itself: FoMni setup (pages, chord buttons, lights). Carried over: FoMni button calibration. After FiMba-1 saves its setup, going back to FoMni uses its default setup. FoMni’s own last save may still be stored, but FoMni will not load it. Later FiMba-1 saves write over it.
    • AMB-1: At risk by itself: AMB-1 pieces and setup. Carried over: AMB-1 panel calibration.
    • ChoralRoot: At risk by itself: options, playing setup and panel calibration.
    • GHOULBOX: At risk by itself: settings and panel calibration. At risk when you act: user sounds 1–16.
    • M-VAVE FM-1 Open: At risk by itself: Open shared sample audio. At risk when you act: Open USER project 1; Open USER project 2; Open USER project 3; Open USER project 4; Open USER project 5; Open USER project 6; Open USER project 7; Open USER project 8; Open USER project 9; Open USER project 10; Open USER project 11; Open USER project 12; Open USER project 13; Open USER project 14; Open USER project 15; Open USER project 16; Open device preferences. Installing replaces Open’s sixteen USER projects, preferences and the information needed to read its sample bank, including the start of its sample storage. Export projects and the device sample bank before leaving Open. The required return through stock firmware has other unchecked data risks. At start-up, FiMba-1 erases the space where firmware updates are prepared if a checked spot there holds data. This can erase Open sample audio if the bank reaches that far. Export the device sample bank before leaving Open.
    • FM-106: At risk by itself: octave, last selected preset and MIDI preferences.
    • Hortator: At risk by itself: settings and panel calibration.
    • OberVave: At risk by itself: saved programs and global settings; pattern 1 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 2 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 3 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 4 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 5 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 6 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 7 (its B-track sound can change if it uses a saved program; its pattern notes remain); pattern 8 (its B-track sound can change if it uses a saved program; its pattern notes remain).
    • Polly: At risk by itself: Polly setup and channel sounds. Carried over: Polly button and encoder calibration.
    • Skiff: At risk by itself: settings, calibration and favourites. At risk when you act: user sound bank 1.
    • sloopDX: At risk by itself: settings, calibration, song order, MIDI, theme and favourites. At risk when you act: user presets 1–16.
    • Rainbow Mode: At risk by itself: Felucca preferences, calibration and favourites; Rainbow WRITE song, greeting name, hat, volume limit and look-alikes. At risk when you act: user sounds U01–U16, names and sixteen-step patterns without automation.
    • DUELL beta: At risk by itself: settings and panel setup. At risk when you act: saved patches.
    • MAKU: At risk by itself: settings and calibration. At risk when you act: inherited user preset bank 1.
    • Fart Machine One: Carried over: learned button and encoder calibration.
    • fm1-chord: At risk by itself: settings, panel calibration, four chord preset setups and the current chord setup. At risk when you act: user sounds 1-16.
    • SLOOP DX7 Banks: At risk by itself: settings, calibration, song order, synthesized drum kits and DX-bank setup. At risk when you act: user sounds 1–16. Saving a FiMba-1 beta project can remove DX7 Banks’ saved count of DX banks already set up. An older copy of the settings can survive the first save. Without that count, DX7 Banks erases DX banks 1–8 at its next start without asking, including your own banks 5–8. Back up your DX banks before switching.
    • FuMi-1: At risk by itself: FuMi-1 sound and playing setup. Carried over: FuMi-1 button and encoder calibration. After FiMba-1 saves its setup, going back to FuMi-1 uses its default setup. FuMi-1’s own last save may still be stored, but FuMi-1 will not load it. Later FiMba-1 saves write over it.
    • Jangada: At risk by itself: preferences, calibration and MIDI LEARN map. At risk when you act: user sounds U01-U16.
    • WaveLoop FM-1: At risk by itself: settings, calibration and favourites. At risk when you act: user sounds 1–16.
    • ORBIT: At risk by itself: settings, calibration, song order, SYN1-SYN4 kits and MIDI preferences; saved section A (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain); saved section B (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain); saved section C (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain); saved section D (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain); working music kept by autosave (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain). At risk when you act: USER sounds U01-U16.
    • SLOOP Floyd FM: At risk by itself: settings, panel calibration and song order. At risk when you act: user sounds U01–U16.
    • winampFM Synth: At risk by itself: settings, panel calibration, song order, SYN kits and MIDI. At risk when you act: user sounds 1-16.
    • Bubba Machine (beta): At risk when you act: screen language pack; system preferences and last pattern.
    • Felucca [Salt]: At risk by itself: screen preferences, calibration and favourites. At risk when you act: user sounds U01-U16.
    • PIGEON: At risk by itself: preferences, MIDI LEARN and panel calibration. At risk when you act: shared song and drum sample bank; older user preset bank 1. If your PIGEON sample bank reaches the storage that installing FiMba-1 beta writes over, PIGEON can no longer read any of the bank, either song or the kit. Export the PIGEON session and audio bank before switching.
    • FM1 Move: At risk by itself: settings, calibration, SYN kits and stored MIDI mappings; project 1 (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain); project 2 (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain); the working project kept by autosave (sounds can change or stop playing when separate samples, FM6 patches or SYN kits are replaced; saved notes and sound settings remain). At risk when you act: user sounds U01–U16.
    • FM1 Quest: At risk by itself: settings, panel mapping, song order and Quest preferences/progress. At risk when you act: user sounds U01–U16.
    • Groove OS: Possibly at risk: Groove project slot 1; Groove project slot 2; Groove project slot 3; Groove resume autosave; Groove sound bank A; Groove sound bank B; Groove sound bank C; Groove sound bank D; Groove custom drum sounds and kits; Groove device preferences; Groove crash reports. Where Groove OS saves data and which firmware can read it are not public. Back up its projects and your own sounds separately before switching. It is not known whether they survive this switch.
  • What the next firmware does to FiMba-1 beta's data.
    • Stock V15: Possibly at risk: FiMba-1 beta panel calibration.
    • Baud Girl FM-1+VA: Possibly at risk: FiMba-1 beta panel calibration.
    • Felucca: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration. If no readable older shared settings copy remains, beta 2ND CORE stays OFF by default. These settings do not turn it on.
    • SLOOP: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • X0X: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration. A saved setup from the other firmware can make X0X use defaults for its whole project when you return, including sounds, patterns, song and knob motion. Automatic saving is then on. If you backed up X0X before leaving it, restore that backup after installing X0X; X0X cannot load the older stored copy on its own. After you confirm a restore on the computer, X0X starts erasing before asking again on the FM-1. Saying no keeps X0X’s current project but does not bring back erased data from your previous firmware, even if the computer says nothing changed.
    • JIANT: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • Melodee: At risk by itself: FiMba-1 beta sound and playing setup. At risk by itself, under a condition: FiMba-1 beta panel calibration.
    • FoMni: At risk by itself: FiMba-1 beta sound and playing setup. Carried over: FiMba-1 beta panel calibration. After FoMni saves its setup, going back to FiMba-1 uses its default setup. FiMba-1’s own last save may still be stored, but FiMba-1 will not load it. Later FoMni saves write over it.
    • AMB-1: At risk by itself: FiMba-1 beta sound and playing setup. Carried over: FiMba-1 beta panel calibration. The saved button and encoder mapping carries over. This does not import saved pieces, songs, clips or sound choices.
    • ChoralRoot: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • GHOULBOX: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • M-VAVE FM-1 Open: At risk when you act: FiMba-1 beta panel calibration; FiMba-1 beta sound and playing setup.
    • FM-106: At risk by itself: FiMba-1 beta sound and playing setup. FM-106 Beta4 does not save edited user sounds, even when it says the save worked. Export them before turning off the FM-1 or changing firmware again.
    • Hortator: At risk by itself: FiMba-1 beta sound and playing setup.
    • OberVave: At risk by itself: FiMba-1 beta sound and playing setup.
    • Polly: At risk by itself: FiMba-1 beta sound and playing setup. Carried over: FiMba-1 beta panel calibration. The saved button and encoder mapping carries over. This does not import saved pieces, songs, clips or sound choices. After you agree to restore on the computer, Polly starts erasing before the FM-1 asks. Saying no on the FM-1 keeps Polly’s current project, but cannot bring back erased data from your previous firmware, even if the computer says nothing changed.
    • Skiff: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • sloopDX: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • Rainbow Mode: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • DUELL beta: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration. The installer starts with its erase option selected for this firmware change. Clear it before installing to avoid this extra erase.
    • MAKU: At risk when you act: FiMba-1 beta sound and playing setup.
    • Fart Machine One: Carried over: FiMba-1 beta panel calibration. Fart Machine One does not import or save a music setup or loop. SAVE does nothing. Its recorded loop, tempo and effect choices last only while it stays on. Calibration is separate.
    • fm1-chord: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • SLOOP DX7 Banks: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • FuMi-1: At risk by itself: FiMba-1 beta sound and playing setup. Carried over: FiMba-1 beta panel calibration. After FuMi-1 saves its setup, going back to FiMba-1 uses its default setup. FiMba-1’s own last save may still be stored, but FiMba-1 will not load it. Later FuMi-1 saves write over it.
    • Jangada: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • WaveLoop FM-1: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • ORBIT: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • SLOOP Floyd FM: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • winampFM Synth: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • Bubba Machine (beta): At risk by itself: FiMba-1 beta panel calibration.
    • Felucca [Salt]: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • PIGEON: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • FM1 Move: At risk when you act: FiMba-1 beta panel calibration; FiMba-1 beta sound and playing setup.
    • FM1 Quest: At risk by itself: FiMba-1 beta sound and playing setup. At risk when you act: FiMba-1 beta panel calibration.
    • Groove OS: Possibly at risk: FiMba-1 beta sound and playing setup; FiMba-1 beta panel calibration. The official route first puts V15 back, then installs Groove OS. Treat this firmware’s saved work as lost and back it up with its own tools before starting. Groove OS’s project saves, autosave, preferences, sample uploads and extra installed pages can also replace leftover work; nobody has published which parts of storage they use. A sound missing from PRESETS may still occupy storage, and do not count on Groove OS’s own backups to keep it.
  • Who reads whose data. Other firmwares reading FiMba-1 beta's data: FoMni reads and uses FiMba-1 beta's FiMba-1 beta panel calibration; FuMi-1 reads and uses FiMba-1 beta's FiMba-1 beta panel calibration; Fart Machine One reads and uses FiMba-1 beta's FiMba-1 beta panel calibration; AMB-1 reads and uses FiMba-1 beta's FiMba-1 beta panel calibration; Polly reads and uses FiMba-1 beta's FiMba-1 beta panel calibration. What FiMba-1 beta reads of other firmwares' data: FiMba-1 beta reads and uses FoMni's FoMni button calibration; FiMba-1 beta reads and uses AMB-1's AMB-1 panel calibration; FiMba-1 beta reads and uses Polly's Polly button and encoder calibration; FiMba-1 beta reads and uses Fart Machine One's learned button and encoder calibration; FiMba-1 beta reads and uses FuMi-1's FuMi-1 button and encoder calibration. Everything else of another firmware's looks empty or foreign to the reader.
  • Every way each write can happen, for all mapped firmwares: the flash atlas's table.

Do not count an older surviving flash copy as a backup: after an incompatible newer setup is selected, the loader does not fall back merely because it belongs to the other instrument. Repeated saves can replace both copies.

Where the docs and the firmware disagree

  • Autosave timing after the three global encoders: The SAVE row puts autosave roughly four seconds after a change. SELECT, ALGORITHM and PRESETS mark values dirty but do not refresh the activity timer, so a quiet setup can save sooner than four seconds after those turns.
  • Perform strip highlighting: The black-key strip is described as highlighting keys while held. The strip also keeps the selected material and active grain-freeze key highlighted after release.
  • Pattern bass with arbitrary held notes: The bass roles are described as the root and fifth. The engine uses the lowest and third sorted chord tones; this is often root and fifth for a triad, but need not be for arbitrary Keyboard or MIDI chords.
  • MIDI note-off while a pattern runs: The MIDI table describes note-off as damping when Release is Damp. Incoming note-off damps only when Release is Damp and the pattern is off; during a pattern it updates the held-note count without damping that pitch.

Limits of this map

  • Retention after installing an older FiMba release: only this release and FoMni v0.4 were supplied, so the older FiMba loaders were not checked.
  • Physical LED colour of PLAY is not asserted: this firmware addresses the calibrated button matrix and gives no separate named green/orange lamp state.
  • The chip-resident updater entered by the OCT pair is outside the supplied application source; its own screens and erase policy are not mapped here.

Mapped from jadamsowers/fm1-fimba at v0.6.1 (0485ed0), 2026-10-17. Source references for the entries are in [fimba.json](fimba.json). All behavior here comes from static source and doc reading. An independent checker found zero errors in round 3 (2026-10-17). FiMba-1 is GPL-3.0-only. This independent guide is written in Les’s own words and is not affiliated with the firmware author or M-VAVE. Download firmware from its own release page or find it through the community hub; Les does not host firmware.

Invite-only for now

Ask Les about your own setup

Say what you want to make and what else you use. Les gives you steps for your own gear, one at a time, and says why each one works.

To get an invite: leave your email, then join the Les Discord.

Gear named here gets added to Les first.

We'll email your invite, plus an occasional note on what's new in Les. Unsubscribe anytime. Privacy

Les is independent and not affiliated with M-VAVE or the firmware authors. M-VAVE and FM-1 are trademarks of their owners.