fm1-wheel

fm1-wheel — hardware manual

Português · English

Tonewheel organ firmware for the M-VAVE FM-1, derived from setBfree, running on fm1-base.

Status: the firmware builds for the FM-1 and passes the build checks, but it has not been tested on hardware yet. The host simulator and the web emulator run the full chain (tone generator, scanner, preamp, reverb and Leslie). This manual describes the intended/implemented behaviour; keyboard and performance details may change after the first device test.


1Install

The firmware is installed over USB-MIDI. Connect the FM-1 with a USB data cable and close any other application using its MIDI ports.

make device          # builds app/build/fm1-wheel.fwsc
make install         # shows the device and asks before writing

You can also use the project's web installer (Chrome/Edge) or run fm1_install.py directly. Installing firmware is at your own risk. Keep the official firmware and the recovery tools (fm1-base/bsp/tools/fm1_rescue.py, FM-1-transporter) at hand.

If the install is interrupted, the FM-1 stays in update mode and the same command finishes the write. To go back to the official firmware, use M-VAVE's updater or the web installer.


2Power on and play

The FM-1 has 27 keys (F3–G5), 7 encoders, 14 buttons, a MASTER pot and a 240×240 screen.

fm1-wheel in the emulator
fm1-wheel in the emulator

The screen shows:


3Buttons and encoders

Encoders

EncoderFunction
SELECTedit page: 0 = bars 0–3, 1 = bars 4–7, 2 = bar 8 + percussion
ALGOmanual being edited: UPPER, LOWER, PEDAL
PRESETeight factory registrations; applies to the selected manual
K1–K4edit the four bars of the current page

On page 2, K1 edits the 1' bar and K2–K4 control percussion (on/off), harmonic (2nd/3rd) and decay (fast/slow).

Buttons

ButtonFunction
FXdrive on/off (preamp/overdrive)
SELnext drawbar page
ENVpercussion on/off
LFOvibrato/chorus cycle: OFF → V1 → C1 → V2 → C2 → V3 → C3
EDITnext manual: UPPER → LOWER → PEDAL
GLOdrawbar-key mode (section 4); its LED is lit while the mode is on
HOMEback to registration 0 (3BAR)
SAVEwrite the settings to flash
ARPpercussion 2nd/3rd harmonic
SEQreverb cycle: OFF → 30% → 60% → 100%
PLAYrotor: STOP → SLOW → FAST
RECreserved (no function in this version)
OCT- / OCT+transpose the built-in keyboard (−2..+2 octaves)
MASTERoutput volume

The labels printed on the FM-1 are the stock ones; the screen shows the real function of each control.

Factory registrations

#NameBars
03BAR888000000
1BLUES888800000
2ROCK888000008
3TOPS800000888
4FLUTE008000000
5FULL888888888
6BASS858000000
7STRNG006876540

The registration is applied to the selected manual (ALGO/EDIT).


4Drawbar-key mode (the keyboard as a controller)

GLO turns on/off the mode in which the 27 keys stop playing and edit the drawbars of the selected manual. It is the equivalent of the programming mode on older clonewheel organs.

Key map

Each pair flat (black key) / natural (white key) controls one drawbar:

PairDrawbarAction
F#3 / G316'F# push, G pull
G#3 / A35⅓'G# push, A pull
A#3 / B38'A# push, B pull
C#4 / D44'C# push, D pull
D#4 / E42⅔'D# push, E pull
F#4 / G42'F# push, G pull
G#4 / A41⅗'G# push, A pull
A#4 / B41⅓'A# push, B pull
C#5 / D51'C# push, D pull

To play from the built-in keyboard again, press GLO again. If a key is held while switching, it is released and only sounds again after being released and pressed again.


5MIDI

The FM-1 has USB-MIDI (in/out) and a TRS-MIDI input; there is no DIN output.

ChannelManual
1upper
2lower
3pedal

Control Changes

CCFunction
1 / 11swell (volume)
70–78upper drawbars: 16', 5⅓', 8', 4', 2⅔', 2', 1⅗', 1⅓', 1' (0 = maximum, 127 = minimum)
80percussion on/off (≥64 on)
81decay fast/slow (≥64 fast)
82percussion 2nd/3rd (≥64 2nd)
64rotor slow/fast (≥64 toggles)
65drive on/off (≥64 on)
92vibrato: 0..127 → OFF/V1/C1/V2/C2/V3/C3
93drive character
95vibrato routing: 0 off, 32 lower, 64 upper, 96 both

Program Change 0–7 selects one of the eight registrations.

The drawbar map is setBfree's (inverted: 0 = maximum). An external drawbar controller works without extra configuration, including in drawbar-key mode.


6What is saved

SAVE writes to flash:

Not saved: drawbar-key mode, the edit page and the selected manual (they return to their defaults at boot).


7Troubleshooting

SymptomWhat to check
No soundMASTER, audio cable, PLAY/rotor, amplifier volume; in drawbar mode the keys do not play (press GLO)
Keys do not playdrawbar-key mode is on (GLO lit)
Stuck noterelease and press the key again; if it persists, power-cycle the FM-1
External MIDI does not playchannel 1/2/3, USB data cable, another app using the port
Installer cannot find the FM-1USB data cable, close DAWs/MIDI apps; check fm1_install.py --info
Install interruptedreconnect and run make install again; the FM-1 stays in update mode
Distorted soundlower MASTER, drive or the registration (FULL); the app's limiter acts on peaks

8Development

make build-host      # host simulator
make test-host       # app tests (keys, drawbars, MIDI, persistence)
make web             # browser emulator (Emscripten)
make serve-web       # http://localhost:8790/
make compare         # A/B against setBfree
make device          # firmware for the FM-1
make install         # writes it to the connected FM-1

The web emulator runs the same C code as the firmware; use Cmd+Shift+R to load a new wasm after make web.


9Licence and trademarks

The firmware is GPL-3.0-or-later. setBfree is GPL-2.0-or-later; fm1-base and felucca-bsp are MPL-2.0; the JieLi SDK files are Apache-2.0. See LICENSING.md and LICENSES/.

“Hammond”, “B3” and “Leslie” are trademarks of their owners. fm1-wheel is not affiliated with or endorsed by them. Use “tonewheel organ” and “rotary speaker” in public material.

Development

The fm1-wheel code, DSP port, tests, tools and documentation were developed with OpenCode using DeepSeek V4.1 Flash, under human direction and review.


10M-VAVE SMK-37 Pro

The same firmware also builds for the SMK-37 Pro:

make smk37
# app/build/smk37/fm1-wheel-smk37.fwsc

The SMK has 37 keys (C3–C6), 16 pads, four faders and eight encoders. The middle 27 keys are the FM-1's F3–G5. Drawbars use the four faders on three pages:

PageFader 1Fader 2Fader 3Fader 4
A16'5⅓'8'4'
B2⅔'2'1⅗'1⅓'
C1'percussion2nd/3rdfast/slow

FADER BANK and pads 9–11 select the page; pads 1–8 recall the factory registrations. Values remain 0–8 and fill from the top down. Faders use soft takeover. GLOBE turns the fader/pad controls on and off; the keys keep playing. There is no TRS MIDI in on the SMK: use USB-MIDI. See SMK37.md for installation, safety and the hardware bring-up checklist.