guide / set up your SP-1

Get your SP-1 running

You’ll need: an SP-1, a Chromium browser (Chrome or Edge), and a USB-C cable and/or a TRS Type A MIDI cable.

Controls at a glance

•• + vol = profile · •• + rocker = layer · •• + T4 = mode

•• is the function button: hold it and tap a control.

Hold •• + Vol+ / Vol-Step through your 8 saved profiles, one per tap. Vol+ goes up, Vol- goes down.
Hold •• + FWD / RWDStep through the 8 layers inside the current profile.
Hold •• + T4Toggle between MIDI and Keyboard mode.
Hold •• + Toggle Bluetooth on and off, after the one-time browser setup. On blooms the front lights outward from the center, off collapses them in.
Hold •• + T1Show the battery level on the lights while you hold it, then let go.
Hold •• + T2Flip the LEDs between dim and bright. It remembers your choice across a power cycle.
Hold •• + T3MIDI panic: silence every channel at once if a note ever hangs.
Hold •• (about a second)Peek which profile you are on, shown on the front lights, then let go.
Hold •• (about 5 seconds)Power the SP-1 off. It wakes on the next •• hold.
Track 1 + Track 4 while powering onEnter the bootloader to re-flash or recover.
Side lightOne side light shows your layer: solid for layers 1 to 4, blinking for layers 5 to 8. The lights flash on a mode switch, and the bottom one blinks while charging.
4 front (track) lightsShow your profile as a count bar when you peek or step it, and light the one Track button you press.

Your SP-1

What each control is, and where it sits. Click a fader or button to highlight it.

illustration: robbleef.work

Faders F1-F4
Four assignable faders, each any MIDI CC on its own channel, so they can drive four tracks at once. Name them in the configurator.
Buttons (9)
, T1-T4, Vol+/-, FWD, RWD. Map any to a note, chord, transport, profile switch, or a CC value. assigns like the rest.
•• FUNCTION
The one button you can't map. Hold and tap a control to step layers, profiles, or mode, or a track button for a utility (T1 battery, T2 brightness, T3 panic). Hold alone to peek the profile, ~5s to power off.

Drive it by hand

Everything you can do with no computer, just the buttons and lights. Two groups, split by where the feedback shows up.

Profiles + presses, on the front lights

hold •• + vol steps profiles, •• + toggles bluetooth, a track press lights its own front light

•• + Vol+: steps profiles, one per tap

front track lights

click a move to hold it

Hold •• + Vol+ / Vol-
Step profile
Hold •• by itself
Peek your profile
Hold •• +
Bluetooth on / off

Layer, mode + power, on the side lights

hold •• + rocker steps layers, •• + T4 flips mode

•• + FWD: layer 3

side lights show layer + a mode flash

click a move to hold it

Hold •• + FWD / RWD
Step layer
Hold •• + T4
MIDI or Keyboard
Hold •• about 5 seconds
Power off

Flash the firmware

feldd doesn’t ship its own flasher. We host the build and walk you through Solderless, the trusted community tool.

before you flash

Re-flashing a feldd build with the same on-device format keeps your profiles (the changelog flags any build that changes the format). They live in a separate NVS partition.

Switching to stock, another mod, or a feldd build that changes the on-device format resets your profiles. Export first.

  1. 01

    export your profiles first

    Open the configurator, connect, and export all 8 slots to a .feldd file. Skip only if you have no profiles worth keeping.

    open the configurator to back up ->
  2. 02

    download feldd.bin

    Download the feldd firmware build using the button above. You will upload this exact file in the flasher.

    download feldd v0.29.0.bin

    Unofficial community firmware, not affiliated with or endorsed by Teenage Engineering.

  3. 03

    enter firmware-loading mode

    Power off the SP-1. Hold track 1 + track 4, then plug in USB-C while holding. Open solderless.engineering in this browser; it should see the device in DFU mode.

    Once it’s in DFU mode, open solderless.engineering.

  4. 04

    upload + flash feldd.bin

    In solderless.engineering, choose the feldd.bin you downloaded, flash it, then unplug and replug the SP-1 normally.

  5. 05

    wake it up

    Tap •• for about a second and watch the front lights come on. After a flash the SP-1 boots into a low-power standby (so a low battery can't brown it out mid-boot) and will not show up as a USB port until you wake it. If the browser's port list is empty, this is almost always why.

  6. 06

    come back + connect

    Open the configurator and connect. It reloads your exported profiles and you’re set to map. The connected firmware version shows at the bottom of the panel.

    Connect your SP-1 ->

Bluetooth

Your SP-1 can go wireless, all from the browser, no CLI. feldd reprograms the SP-1's built-in radio, in place, into a Bluetooth LE controller. Pair it to a phone, laptop, or iPad and it works as a wireless MIDI controller and a Bluetooth keyboard, no cable.

what provisioning does

The SP-1 has a small radio chip on board that stock firmware never uses. Provisioning writes new software onto that radio, once, so it can speak Bluetooth. It is a real reflash of the radio and takes a few minutes, which is why you do it deliberately, from the configurator, with USB kept plugged in.

  1. 01

    flash feldd 0.27 or newer

    Bluetooth ships in feldd 0.27 and newer. Flash it on solderless.engineering exactly like any other feldd build, using the same Track 1 + Track 4 firmware-loading combo from the flash section above, then upload the .bin. Already on 0.27 or newer? Skip to step 2.

    download feldd v0.29.0.bin

    Same build as the download in the flash section above. Flash it on solderless.engineering.

  2. 02

    check the radio

    Connect your SP-1 in the configurator, open the Bluetooth section, and click Check radio. This is a read-only look at the radio, about 10 to 20 seconds, and it writes nothing. It confirms feldd recognizes your SP-1's radio, so it is safe to provision. If feldd does not recognize the radio, provisioning stays locked, by design.

    open the configurator ->
  3. 03

    provision Bluetooth

    Click Provision Bluetooth and confirm. This reprograms the radio in place and takes a few minutes (about 3). Keep the SP-1 plugged into USB the whole time and do not unplug it, a progress bar tracks the write. When it finishes, your SP-1 speaks Bluetooth.

  4. 04

    turn it on and pair

    Turn Bluetooth on with •• + . Then pair from your phone, laptop, or iPad the way you pair any Bluetooth device. Once paired, the SP-1 is a wireless MIDI controller and a Bluetooth keyboard, no cable. Tap •• + again to turn Bluetooth back off.

Safety notes

the reflash is built to be un-scary

Using feldd with your TE gear

feldd drives Teenage Engineering hosts over USB (firmware 0.18 and up), and the ones that speak Bluetooth MIDI pair wirelessly too (feldd 0.27 and up). Below is the wiring and setup for each; load its starter map in the configurator.

OP-XY

default profile 2USB or TRS

Loaded by default as profile 2 on a fresh SP-1 (your first profile, the Default, is untouched). To reach it with no computer, tap the •• button 2 times quickly.

  • 8 track-layers = OP-XY tracks 1 to 8; faders sweep cutoff, resonance, engine volume, send FX I on the selected track
  • T1 mute, T2 send to tape, T3 portamento, T4 send FX II per track; Vol+/Vol- prev/next scene; PLAY starts, RWD stops, FWD opens the tempo page
  1. Connect the SP-1 to the OP-XY over USB-C (most reliable), a TRS Type A cable into the OP-XY MIDI in, or wirelessly over Bluetooth.
  2. Bluetooth: hold •• + play on the SP-1 to advertise, then on the OP-XY go to COM > devices and pair 'feldd'. The OP-XY hosts the connection like any Bluetooth MIDI device, no computer needed (confirmed on stock feldd 0.27+).
  3. On the OP-XY enable CC receive (com menu). Tracks 1 to 8 answer on MIDI channels 1 to 8, the factory default.
  4. Tap •• to pick a track: one tap steps to the next, or tap 2 to 8 times fast to jump straight to that track. The side light shows the track (solid 1 to 4, blinking 5 to 8).
  5. Move a fader and the selected track follows; PLAY starts the OP-XY and RWD stops it (FWD opens the tempo page). Scene and transport work on any track.
  6. To watch feldd's MIDI arrive, open the OP-XY monitor: press COM, then system, then turn knob 1 to monitor.

TX-6

default profile 3USB

Loaded by default as profile 3 on a fresh SP-1 (your first profile, the Default, is untouched). To reach it with no computer, tap the •• button 3 times quickly.

  • Faders 1-4 -> track 1-4 volume (CC7, one fader per track on its own channel)
  • T1-Vol- -> mute all six tracks (CC120 ch1-6); PLAY is master start/stop (CC46 ch7)
  1. Connect the SP-1 to the TX-6 over USB-C. The TX-6 is a USB-MIDI host (firmware 1.1.4+), so it powers and reads the SP-1 directly, no computer needed.
  2. Turn MIDI control ON in the TX-6 menu first: enable MIDI ctrl in (and note in). If it is off the TX-6 ignores everything feldd sends and nothing moves, so check this before anything else.
  3. With MIDI control on, the TX-6 receives per-track control on MIDI channels 1-6, so faders 1-4 ride tracks 1-4 volume with no further mapping.
  4. Buttons T1-T4 mute tracks 1-4 and Vol+/Vol- mute tracks 5-6 (CC120). PLAY sends master start/stop (CC46 on ch7 = master); each press toggles the TX-6's transport.
  5. Tap the •• button to a sibling feldd profile mapped to tracks 5-6, per-track filter (CC74), pan (CC8), or the master section (ch7: main / aux / cue volume).

OP-1 field

default profile 4USB

Loaded by default as profile 4 on a fresh SP-1 (your first profile, the Default, is untouched). To reach it with no computer, tap the •• button 4 times quickly.

  • Faders 1-4 -> the 4 synth engine macros (CC46-49); hold •• -> envelope ADSR (CC50-53)
  • T1-T4 play notes (C4/E4/G4/C5); Vol+ synth/drum mode, Vol- sustain; PLAY is tape play, RWD is tape stop, FWD jumps to the next bar
  1. Update the OP-1 field to firmware 1.7.0 or newer. The full MIDI CC map is a 1.7 feature; older firmware only exposes the CC1-4 MIDI LFO.
  2. Connect the SP-1 to the OP-1 field over USB-C, or wirelessly via a Korg BLE-MIDI dongle. Set the OP-1 field's receive channel to 1, and make sure NOTES are set to receive so the note buttons play.
  3. Faders 1-4 ride the four synth engine macros (the synth page's four encoders); hold •• for the envelope ADSR. Both target the active patch on any channel.
  4. Buttons: T1-T4 play C4/E4/G4/C5, Vol+ flips synth/drum mode, Vol- is sustain; PLAY is tape play, RWD is tape stop, and FWD jumps to the next bar. Load a sibling feldd profile for the mixer (CC7 volume, CC9 mute) or master FX (CC70-73).
  5. To watch MIDI on the OP-1 field, open its monitor: hold shift + COM, then T1 (system), then turn knob 1 to monitor.

TP-7

starter packBluetooth

Not seeded on a fresh SP-1. Load TP-7from the configurator’s starter dropdown (it is in the starter pack too), then Save to device.

  • Faders 1-4 -> track 1-4 volume (CC7, one fader per track on its own channel)
  • T1-Vol- mute tracks 1-6 (CC120 ch1-6); PLAY arms record (CC14); FWD/RWD scrub forward/back (CC18); hold •• for input gain
  1. The TP-7 has no MIDI jack and can't host USB, so this link is Bluetooth MIDI (feldd 0.27+). Flash 0.27.2 to the SP-1, then hold •• + play to start advertising.
  2. On the TP-7 open the Bluetooth screen, turn Bluetooth on, and tap SCAN. Pick 'feldd' when it appears. The TP-7 is the BLE host (central), the SP-1 the peripheral, so no computer is needed.
  3. Set the TP-7's MIDI mode to sync, NOT control. On the TP-7, control means the TP-7 is the one sending MIDI out (as a controller); sync makes it receive, which is what you want so feldd can drive its volume, mute, and gain.
  4. The TP-7 receives per-track control on MIDI channels 1-6, so faders 1-4 ride tracks 1-4 volume out of the box. Buttons T1-T4 mute tracks 1-4, and Vol+/Vol- mute tracks 5-6 (CC120).
  5. PLAY arms recording (CC14). FWD and RWD scrub the transport forward and back (CC18); each sets a scrub speed on press and sends nothing on release, so halt with the TP-7's own rocker. Hold •• for the shift layer: faders 1-3 ride input gain (CC9) on inputs 1-3.

FAQ

Common questions and a few hardware quirks worth knowing before you map.

What can I plug the SP-1 into? Does it work with the OP-XY, OP-1 field, OP-Z, TP-7, or Norns?

The SP-1 is a class-compliant USB-MIDI controller, so it drives anything that can host USB-MIDI. It runs on its own battery, so a host's USB power limit is not a factor, and it has a 3.5mm TRS MIDI OUT for gear with no USB host.

DeviceConnects viaStatus
Computer (Mac, Windows, Linux)USBWorks
Phone / tablet (iOS, Android)USBWorks
monome Norns / Norns ShieldUSB hostWorks
TE OP-XYUSB or BluetoothWorksBLE: pair from OP-XY COM > devices
TE OP-1 fieldUSB or BluetoothWorksfeldd 0.18+; BLE via a Korg dongle
TE OP-ZUSB hostUntestedshould work
TE TX-6USB or BluetoothWorksfeldd 0.18+
TE TP-7Bluetooth MIDIWorksfeldd 0.27+, pair via SCAN
Any TRS / DIN synth3.5mm TRS outWorksvia adapter

I’m having trouble connecting or updating the firmware.

Another tab or app is probably holding the USB connection - the SP-1 talks to one program at a time. Close every other SP-1 tab, quit anything that might grab it, and hit Connect again. Still nothing? Replug the cable, try a different port, then restart your computer.

Can the four Track buttons send notes all at once?

Not all four. T1-T4 share one analog line on the board, so the firmware reads only one at a time, that’s the hardware, not a setting. A Track button plus a Vol button works fine. Note: feldd briefly pauses fader output while any button is held, so a fader move registers the moment you let go.

I mapped a button to a note for my hardware synth and hear nothing over TRS.

Check the channel. On a fresh flash, faders default to channel 1, front buttons to 2, side buttons to 3, so nothing collides. Computers and Norns hear every channel, but a hardware synth on one fixed 3.5mm channel (usually 1) only hears the faders. Fix it: load a starter template (OP-XY, TX-6, Aira), or set the controls you want it to hear to its channel (‘all CH’ does it in one click).

Can I press the faders like buttons?

No. The faders are slide potentiometers - feldd reads their position, not a press, and there’s no press signal to detect. For a reset or momentary action, map one of the 9 buttons instead.

macOS popped up a “Keyboard Setup Assistant.” What is that?

Just macOS meeting a new keyboard. The first time you enter Keyboard mode it runs the Keyboard Setup Assistant and asks you to press a key. Click through it - it’s harmless, doesn’t touch feldd, and you won’t see it again on this Mac.

In Keyboard mode, does holding a button repeat the key?

Yes. A key-mapped button repeats while held, like any keyboard: a short pause, then a steady stream until you let go. Handy for nudging a value or scrubbing.

Can feldd control DaVinci Resolve’s color wheels?

Not the wheels. In Keyboard mode the DaVinci Resolve template drives Resolve’s native shortcuts directly (add node, grab still, bypass, blade, clip nav, mark in/out), no bridge software. But the color page takes no MIDI and the lift/gamma/gain wheels have no shortcut, so a fader can’t grade them. That needs a grading panel (Tangent, Blackmagic Micro) or a bridge app.

Roadmap

Where feldd is headed. No dates, no promises, just the direction.

Idle auto-sleep

medium effortplanned

Let the SP-1 nod off on its own after a stretch with no input, then wake on the first fader or button, so it stretches the charge when you set it down.

Real battery level over Bluetooth

medium effortplanned

On your phone or laptop's Bluetooth list the SP-1 shows a fixed placeholder charge (often 1 to 2 percent) instead of its real level. That reading lives in the radio's own firmware, so fixing it rides along with a future provisioning update rather than a plain firmware flash.

Arpeggiator + CC LFO

high effortexploring

Hold a few notes and feldd arpeggiates them, or set a fader to send a slow, tempo-synced modulating wave (an LFO on a control). It wants a tighter internal clock than the control loop runs at today.

Changelog

What’s changed in the firmware, newest first.

v0.29.0

Bluetooth keyboard that sticks across reconnects2026-07-14
  • The Bluetooth keyboard now keeps typing after a reconnect or a power cycle. Before, the keyboard could go quiet once you turned the SP-1 off and back on, or it reconnected, even though wireless MIDI kept working, because the radio was not remembering the keyboard subscription. Now each paired host keeps its own keyboard subscription, so it types again on reconnect with no re-pair. If you use both a Mac and an iPhone, each keeps its own pairing instead of bumping the other.
  • One-time radio update: this fix lives in the SP-1's radio, not just the app, so after you flash 0.29 run Provision Bluetooth again to update the radio. Then Forget the SP-1 on each paired host and pair it once more. After that it sticks and you will not need to do it again.
  • The SP-1 now shows up as "feldd" over USB too (it used to read "SP-1 Control Surface"), so it matches the Bluetooth name and reads the same in your DAW and on your phone.
  • Includes everything from 0.28 (MIDI thru). No wipe: 0.29 keeps the v9 storage format, so your profiles carry over.

v0.28.0

MIDI thru: the SP-1 as a USB-to-TRS bridge2026-07-14
  • New: MIDI thru. Flip it on and the SP-1 forwards MIDI coming in over USB straight out the 3.5mm TRS jack, so it doubles as a USB-to-TRS interface while your faders and buttons keep working. Sequence from a computer, phone, or iPad and drive a TRS-only synth (an NTS-1, a Volca, an OP-1 field) through the SP-1, with no separate interface box. It is a device toggle in the configurator, off by default.
  • It passes notes, CC, pitch-bend, program change, and aftertouch, but not clock (turn on MIDI clock, per profile, for that). Default off is deliberate: a DAW echoing MIDI back to the SP-1 could otherwise double your own notes on the TRS synth.
  • No wipe: 0.28 keeps the v9 storage format, so your profiles carry over.

v0.27.3

Bluetooth: clearer on/off lights, and a stray-CC fix2026-07-13
  • The Bluetooth on and off animations are now easy to tell apart. Turning Bluetooth on (•• + play) blooms the front lights outward from the center and gives a quick confirm flash; turning it off collapses them inward and goes dark. Before, both were near-identical sweeps and you could not tell which one just happened.
  • Fixed a stray CC 0. A button left unmapped (value 0) no longer fires CC 0 / Bank Select. Peter hit this after loading the TX-6 profile and then reloading older presets on 0.27.2: upper-layer PLAY buttons had turned into a momentary CC 0 and had to be unmapped by hand. An unbound button now stays silent, exactly like an unbound fader does.
  • The built-in device templates (OP-XY, TX-6, OP-1, TP-7 and the rest) now match the web configurator's PLAY-button layout exactly, so what you load on the device and what you see in the browser line up.
  • No wipe: 0.27.3 keeps the v9 storage format, so your profiles carry over.

v0.27.2

Bluetooth: wireless MIDI and keyboard2026-07-13
  • 0.27.2 turns on the Bluetooth keyboard for real. The keyboard-over-Bluetooth mirror was left disabled in earlier 0.27 builds, so in Keyboard mode nothing typed wirelessly even though MIDI worked. It types now (hardware-confirmed on macOS, and it keeps working across reconnects). Hold •• + play to clear a Bluetooth pairing if you ever need to re-pair. Also fixed: an unbound fader no longer sends a stray CC 0. If you were on an earlier 0.27, re-flash to 0.27.2.
  • 0.27.1 makes radio provisioning reliable on a stock SP-1: it enters the radio's programming mode the way the factory tool does, so provisioning completes and reports a clean success instead of a false "didn't finish."
  • Your SP-1 can go wireless. 0.27 reprograms the SP-1's built-in radio, in place, into a Bluetooth LE controller: pair it to a phone, laptop, or iPad and it works as a wireless MIDI controller and a Bluetooth keyboard, no cable. Turn Bluetooth on and off with •• + play.
  • Careful by design. The reprogram only ever writes the radio's app, never its identity or calibration, and it reads those back to confirm they stayed untouched every single time. It also refuses to run on any radio it does not recognize, so it only ever touches a stock SP-1 radio it knows.
  • This is the release that first reprograms the radio, so try it on a spare unit first if you have one. Provisioning takes a few minutes with USB kept plugged in, and if it ever gets interrupted the radio stays safe and you just run it again.
  • No wipe: 0.27 keeps the v9 storage format, so your profiles carry over.

v0.26.0

Button presses no longer nudge your faders, at all2026-07-12
  • The fader dips are gone for real now. Any button press (not just PLAY) slightly sags the shared button rail, which could nudge a fader's CC by a step, worst on high-riding faders. 0.26 measures that sag and adds it back on the fader read, scaled to each button, so pressing anything holds your fader values rock steady while fine 1-CC moves still track. Thanks Peter for the detailed measurements.
  • No wipe: 0.26 keeps the v9 storage format, so your profiles carry over.

v0.25.0

PLAY stops nudging your faders2026-07-12
  • Pressing PLAY no longer bumps your fader CCs. PLAY sits on the shared button rail and draws more current than any other button, so on fine-resolution controls a press could nudge a fader's value by a step (thanks Peter for the report). The SP-1 now recognizes that heavier load and filters it out, so you can press PLAY as a chord or note and your faders hold rock steady.
  • No wipe: 0.25 keeps the v9 storage format, so your profiles carry over.

v0.24.0

The SP-1 can be your clock2026-07-11
  • Turn MIDI clock on per profile in the configurator and the SP-1 streams clock out the 3.5mm jack, so your OP-XY, Mood, or anything else stays in sync. The profile is still a full controller; the clock just runs alongside, borrowing the two controls you pick.
  • Set the tempo on the device: tap a button (Track 4 by default) or slide a fader (fader 4 by default). The tempo survives a power cycle, and you can change it live.
  • Pass-through: plug the SP-1 into a USB host that sends clock and it forwards that clock out the jack; when the host stops, the SP-1 takes over with its own clock so the rig never drops a beat.
  • PLAY is now a normal, mappable MIDI button. The old hold-PLAY layer shift is gone: PLAY sits on the same resistor ladder as the front track buttons, so holding it to reach them was never reliable. Switch layers with •• and the rocker, which is rock solid.
  • No wipe: 0.24 keeps the v9 storage format, so your profiles carry over from 0.20 through 0.23.

v0.23.0

A utility row on ••, and a shift that always moves2026-07-09
  • Hold •• and tap a front track button for a quick utility: •• + T1 shows your battery while you hold it, •• + T2 flips the LEDs between dim and bright and remembers it, and •• + T3 is a MIDI panic that silences every channel if a note ever hangs.
  • PLAY's shift never does nothing now. Hold PLAY while you are already on your shift layer and it flips you to layer 1, so a shift always takes you somewhere.
  • No wipe: 0.23 keeps the v9 storage format, so your profiles carry over from 0.20, 0.21, and 0.22.

v0.22.0

Aim PLAY's shift at any layer, and watch the light follow2026-07-09
  • PLAY's shift is now yours to aim. Before, holding PLAY always jumped to layer 2; now each profile picks which layer PLAY shifts to. Set it with the new PLAY shifts to control in the PLAY BUTTON panel, anywhere from L2 to L8.
  • The layer light follows the shift. Hold PLAY and the side dot moves to your target layer so you can see where you landed, then snaps back the moment you let go.
  • No wipe: 0.22 keeps the v9 storage format from 0.20 and 0.21, so flashing it preserves your saved profiles. A profile you never retarget keeps shifting to layer 2, exactly as before.

v0.21.0

CC value buttons, a clearer PLAY and function scheme, and control labels2026-07-08
  • New CC value buttons: a button can send a value you choose, not just 127 or 0. Pick set-on-press to fire one value on press, momentary to send an on value on press and an off value on release, or toggle to alternate between two values each press. Set a fixed filter amount, an NTS-1 delay depth, or flip an effect between two settings from one button.
  • PLAY and the •• button get a clearer split. PLAY is now a shift by default and •• is the function button. Hold •• with the rocker to step layers, with Vol to step profiles, or with T4 to switch MIDI or Keyboard mode; hold •• to peek the current profile, or hold it about 5 seconds to power off. Prefer PLAY as a normal mappable button? Flip the PLAY role toggle in the configurator and map it like any other.
  • Autofill from any start CC: set a start value and fill your faders or buttons up or down from there. Flip the direction and the start re-defaults, unless you set your own.
  • Name your controls: give any fader or button a label in the editor. It saves with your .feldd file and shows on the device art, so a shared profile explains itself. The TE starter profiles now ship pre-labeled.
  • Coming from 0.20? 0.21 keeps the same v9 storage format, so flashing it preserves every profile you have saved, no backup needed. From an older stable build the first v9 boot still reformats to defaults.

v0.20.0

8 layers per profile + an OP-XY 8-track mixer2026-07-07
  • New: every profile now holds 8 layers instead of 4, and each layer is a full independent page of faders and buttons on its own MIDI track. Tap PLAY to step to the next layer, or tap PLAY up to 8 times fast to jump straight to a layer, the same way the •• count-dial picks profiles.
  • The side lights now show all 8 layers on the same 4-light row: layers 1 to 4 are one solid light, and layers 5 to 8 are that same light blinking. One glance tells you which of the eight you are on.
  • New OP-XY 8-track starter profile: the eight layers map to the OP-XY's eight tracks, so one SP-1 profile drives all eight tracks at once, each fader and its track buttons on their own channel. Plug in over USB and the mixer is live.
  • WARNING: upgrading to 0.20 is a new on-device format (v9) that reformats the SP-1's storage on the first boot after you flash it, so it WIPES every profile you have saved back to defaults. Export a .feldd backup first, then re-import it after you flash.

v0.19.1

Cleaner button layout on the TE starter profiles2026-07-07
  • Refined: on the three Teenage Engineering starter profiles, the transport rocker (the FWD/RWD paddle) now runs play/stop on the OP-XY and OP-1 field, and start/stop on the TX-6, instead of switching feldd profiles. Switching profiles already lives on the count-dial (the •• button), so the rocker is free for transport where you expect it.
  • The freed volume buttons now do more per host: on the OP-XY they step to the previous and next scene, on the OP-1 field they flip synth/drum mode and hold sustain, and on the TX-6 they mute tracks 5 and 6.
  • This only re-seats a brand-new SP-1 or an explicit factory reset. Your Default profile, and any profiles you have already saved, stay untouched.
  • Same on-device format since 0.14, so flashing does NOT reset your profiles.

v0.19.0

Starter profiles for your OP-XY, TX-6, and OP-1 field2026-07-07
  • New: a fresh SP-1 now ships with ready-to-play profiles for three Teenage Engineering hosts, each mapped from that device's official MIDI reference. Cycle to them with the count-dial: OP-XY (filter sweep, scene stepping, transport), TX-6 (6-track mixer: track volumes, mutes, start/stop), and OP-1 field (synth engine macros, envelope ADSR, tape play/stop; needs OP-1 field firmware 1.7.0). Plug in over USB and play, no setup.
  • Your first profile, the Default, is left untouched. This only changes a brand-new SP-1 or an explicit factory reset; updating from an earlier version keeps every profile you already have.
  • Includes the 0.18 fix, so the SP-1 drives these TE hosts over USB instead of crashing them.
  • Same on-device format since 0.14, so flashing does NOT reset your profiles.

v0.18.0

Plug straight into your OP-XY or OP-1 field2026-07-07
  • New: the SP-1 now works as a USB-MIDI controller plugged directly into Teenage Engineering hardware. Before, connecting the SP-1 to an OP-XY or OP-1 field over USB would crash the other unit. Now the SP-1 shows up as a normal MIDI device and your faders and buttons drive it, with no computer in the middle.
  • The fix: the SP-1 is now a two-way MIDI port instead of send-only, which is what those hosts expect from a connected device. Nothing changes about how you use it, and 3.5 mm TRS MIDI plus computer USB-MIDI work exactly as before.
  • Includes everything from 0.17: the softer half-brightness LEDs and the battery charge gauge.
  • Same on-device format as 0.14 through 0.17, so flashing does NOT reset your profiles.

v0.17.0

Softer LEDs + a battery charge gauge2026-07-02
  • The lights are gentler now. All of the SP-1's LEDs run at about half brightness by default so the panel doesn't glare. The startup light sweep still flashes at full brightness, and the new charge gauge below stays full so it's easy to read.
  • New: a battery charge gauge. Plug the SP-1 in while it's off and the side LEDs fill up like a stock battery meter, one bar per quarter, the next bar blinking as it fills, all four solid when it's fully charged. Beta note: the gauge shows for a minute or two after you plug in and then the unit powers on by itself (same as it always has); keeping it up for the whole charge is a fix in progress.
  • Same on-device format as 0.14 through 0.16, so flashing does NOT reset your profiles.

v0.16.0

Host LED control2026-06-23
  • New: a host program can now drive the SP-1's 8 LEDs over USB. This powers feldd-cc, which turns the SP-1 into a physical Claude Code console (the lights show when an agent is working, needs you, or is done). For everyone else nothing changes: the LEDs behave exactly as before unless a connected app takes them over.
  • Same on-device format as 0.14 and 0.15, so flashing does NOT reset your profiles.

v0.15.0

Faders keep tracking while you hold a button2026-06-22
  • Fixed: holding a button (like a chord button) no longer freezes the faders. Before, riding a fader while you held a button did nothing, and the value jumped to the physical position the moment you let go. Now the faders track the whole time, so you can hold a chord and ride the faders together.
  • Same on-device format as 0.14, so flashing does NOT reset your profiles.

v0.14.0

A chord on every button2026-06-20
  • Every button can now hold its own chord, with no per-profile limit. Before, a profile could only hold 8 distinct chords across all its buttons and layers; now each of your 8 mappable buttons, on each of the 4 layers, carries an independent chord. Pick Chord / notes, then build it as a hand-picked set (up to 5 notes), a root and quality, or a range for an M8 cluster.
  • The configurator now writes this firmware's on-device format. Connect an SP-1 running older firmware and you will see an update prompt: reading and Export still work so you can back up first, but editing and saving wait until you flash 0.14.
  • Heads up: 0.14 uses a new on-device format, so flashing resets your profiles to defaults. Export a .feldd backup first, then re-import it after.

v0.13.0

Chord buttons: one press, a whole chord2026-06-20
  • A button can now hold a whole chord or a run of notes. Pick Chord / notes as the button type, then build it three ways: click a 2-octave keyboard, choose a root and quality (maj, min, 7, maj7, min7, dim, aug, sus2, sus4), or set a range like notes 21 to 27 for an M8 cluster. One press fires the whole set on the button's channel, one release stops it cleanly.
  • New Chord depth fader role (one per layer): a root+quality chord grows as you raise the fader, stacking the 7th, 9th, 11th, then 13th. Hand-built sets and ranges stay exactly as you drew them.
  • Set a per-profile chord velocity so stacked chords sit softer than single notes (default 100).
  • Heads up: this is a new on-device format (v7). Older firmware still loads your profile; a chord button just plays its first note there, and the configurator warns you. Flashing v7 resets your profiles to defaults, so export a .feldd backup first.

v0.12.1

Stable, non-conflicting default profile2026-06-20
  • The factory profiles now spread across three MIDI channels so a fader and a button can never fight over the same CC. The 4 faders stay on channel 1, the 4 front track buttons move to channel 2, and the 4 side buttons (Vol+, Vol-, FWD, RWD) move to channel 3. Each channel carries its own clean 0 to 127 CC spread, so faders, front buttons, and side buttons are three full, non-overlapping control surfaces. Before, a default button could land on the same channel and CC as a fader and clobber it.
  • On a computer or Norns this just works: every control is distinct out of the box. A hardware synth on a fixed 3.5mm channel only hears the faders by default, so load a starter template (TP-7, OP-XY, Aira) or set the channels yourself for that gear. PLAY stays reserved for gestures.
  • This only changes a fresh flash or a reset to defaults; your saved profiles are untouched. Same on-device format as 0.12.0, so flashing does NOT reset your profiles.

v0.12.0

Held-key repeat + cleaner layer / profile gestures2026-06-20
  • Keyboard mode now repeats a held key, like a normal keyboard. Hold a button and the key auto-repeats (arrows, backspace, anything). Before, a held button only fired once.
  • Cleaner on-device gestures: PLAY now picks layers the same way •• picks profiles. One tap nudges to the next layer, or tap 2, 3, or 4 times fast to jump straight to that layer. The 4 side lights show which layer you are on.
  • Power off now needs a longer hold on •• (about 5 seconds) so it can never trigger by accident.
  • This build keeps the same on-device format, so flashing it does NOT reset your profiles. No backup needed this time.

v0.11.1

Cleaner default CC spread2026-06-20
  • The factory default profiles now spread across all 128 CCs with no overlap: each of the 128 fader slots (8 profiles x 4 layers x 4 faders) gets a unique CC, 0 to 127. Before, a leftover from the 2-layer days made profiles reuse the same CCs. Default button values are de-duplicated the same way. This only affects a fresh flash; your saved profiles are untouched.

v0.11.0

Independent layers, autofill, save all2026-06-20
  • Every layer is now fully independent. Each of your 4 layers carries its own complete setup, its own CCs, ranges, curves, channels, and button types, so the L1-L4 tabs are all the same full editor, just on a different page. Switch a layer and change anything.
  • Autofill CCs: fill a whole layer, a whole profile, or all 128 fader slots with sequential CC numbers in one click (ascending from 0 or descending from 127). No more numbering by hand.
  • Save all: write every changed profile to the device in one click instead of saving each slot. The button shows how many are unsaved.
  • Clearer save state: an unsaved slot shows a red dot and the save button reads Save changes; saved is green. No guessing what is on the device.
  • Heads up: this is a new on-device format (v6), so flashing resets your profiles to defaults. Export a .feldd backup first and re-import it after.

v0.10.0

Four layers per profile2026-06-20
  • Double-tap PLAY now cycles 4 layers (1 to 2 to 3 to 4 to 1), not 2. Each layer is a full set of CCs and keys, so one profile holds four pages: a mixer, a sends page, a transport page, whatever you set up. The 4 side lights show which layer you are on (1 to 4).
  • Both modes get all 4 layers: in MIDI mode each layer is its own CC and value bank, in Keyboard mode each is its own keymap. Faders still soft-takeover per layer, so switching pages never jumps a value.
  • In the configurator the old base/shift toggle is now L1-L4 tabs. Edit each layer's faders and buttons on its tab; the live monitor shows the active layer. Saving to an older 2-layer device still works, it writes the first two layers.
  • Heads up: this is a new on-device format (v5), so flashing resets your profiles to defaults. Export a .feldd backup first and re-import it after.

v0.9.3

Button actions: mutes, transport, switch profile2026-06-20
  • Buttons mapped to a toggle (mute), transport, or switch-profile now actually fire. Before, only notes and momentary CCs were sent and the rest stayed silent. Transport sends MIDI real-time Start / Stop / Continue, which is what the OP-XY, M8, Aira and TP-7 listen for.
  • This makes the starter templates' mute and transport buttons work. Same profile format as 0.9.2, so flashing keeps your on-device profiles.

v0.9.2

Keyboard mode, count-dial, and the new on-device controls2026-06-20
  • Your SP-1 is now a MIDI and keyboard controller. Switch between MIDI and Keyboard right on the device (hold PLAY and tap FWD or RWD); in Keyboard mode buttons type keys and shortcuts like Cmd+C or Cmd+Z, while the faders keep sending MIDI. MIDI and Keyboard each keep their own 8 profiles.
  • New count-dial on the •• button: one tap nudges to the next profile, or tap 2 to 8 times fast to jump straight to that profile number. The front lights count up as you tap.
  • The lights tell you more now. The side lights show your layer and flash the mode when you switch it; double-tap PLAY to change layer, hold PLAY by itself to peek your profile. The front lights are plain press feedback, and switching profiles no longer pauses MIDI.
  • Keyboard mode has a shift layer: double-tap PLAY in Keyboard mode for a second set of keys, so one profile holds two keymaps.
  • In the configurator: bind a key by pressing it, load ready starter profiles and save them to the device (including a TP-7 remote that turns the SP-1 into a hands-on mixer), and it writes the right format to whatever firmware your device is on.
  • Heads up: this is a big update, so flashing it resets your on-device profiles to defaults. Export a .feldd backup first and re-import it after.

v0.6.1

USB-MIDI 1.0 only2026-06-19
  • feldd now speaks classic USB-MIDI 1.0 only (the 2.0 mode is gone; feldd never used a 2.0 feature). Plain 1.0 is understood everywhere, and the fixed descriptor binds on picky hosts. Confirmed on a Mac, a Monome Norns, and a hardware synth.

v0.5.4

Pickup on shift switch + LED feedback2026-06-18
  • Shift layers no longer jump your faders. Switch layers and each fader holds its previous value until you move the physical fader past it, then it picks up from there, so there are no sudden value leaps. The snappy feel is unchanged; this only gates when a fader starts sending again.
  • Track lights now light up while you hold their Track button, so you can see your presses.
  • Switching profiles is a quick one-at-a-time light chase instead of an all-four strobe; the number of blinks still tells you the slot.
  • The side light blinks faster while a shift layer is engaged, so you can tell which layer you’re on at a glance.

v0.5.3

Full 0-127 faders + the droop, fixed for real2026-06-18
  • Faders now sweep the full 0 to 127. They used to top out around 115 because the pots never quite reach the end of the sensor range; the readings are now scaled so both ends are always reachable.
  • The fader droop is gone. A button press no longer dips the fader values by 1 or 2. The 0.5.2 attempt watched the wrong signal and missed the moment of the press; it now reacts the instant a button loads the shared power rail.

v0.5.2

Fader stability + sequential defaults2026-06-18
  • Buttons no longer nudge the fader values: a held button was letting the shared power rail pull all four fader readings down 1-2; the faders now pause cleanly while a button is held.
  • New sequential default CC layout: each slot is a clean block (slot 1 = CC 1-8 across base + shift, slot 2 = 9-16, … slot 8 = 57-64), so all 8 slots give 64 predictable faders.

v0.5.1

Button fixes2026-06-18
  • Fixed FWD and Vol- reading as each other.
  • Fixed the Play button: it now registers when pressed and no longer pulls the fader values down.

v0.5.0

Per-control MIDI channels2026-06-18
  • Every fader and button can send on its own MIDI channel, set four faders to channels 1-4 and one profile mixes four tracks at once.
  • New 4-track mixer starter template.
  • Profile editor: a per-control channel selector on each fader and button, plus an “all CH” that sets them together.
  • Safer first-boot upgrade: the profile migration now keeps the watchdog fed while it re-seeds.

v0.4.0

First public build2026-06-18
  • Map the SP-1’s 4 faders + 9 buttons to any MIDI CC or note, over USB-MIDI and 3.5 mm TRS MIDI.
  • 8 profiles stored on the device, switch banks live with the •• button, no computer needed.
  • Configure everything from the browser: read, edit, write, and watch your controls move in real time.
  • Charge-standby safety and a Track 1 + 4 recovery hatch so a bad flash stays recoverable.

Examples

Real rigs, simple to advanced, from a single cable to a multi-device chain. The SP-1 is the hero in each; the thin connectors show how it wires up and who is carrying what.

Ride your DAW from the desk

simple
USB-CSP-1Ableton

SP-1 plugged into a laptop running Ableton Live over USB-C; load the Ableton Live starter template. Faders ride tracks 1–4 volume as a 4-track mixer, Track buttons launch clips, PLAY/Vol run the transport.

Shortcut deck for video editing

simple
USB-CSP-1Resolve

SP-1 over USB-C to a Mac running DaVinci Resolve, flipped into Keyboard mode with the Resolve template: buttons blade, grab stills, and mark in/out, and held keys auto-repeat to step through clips.

Hands-on TRS synth

intermediate
3.5MM TRSSP-1Roland S-1

SP-1's 3.5mm TRS out cabled to a Roland S-1 (any DIN synth works via adapter); load the Roland Aira starter profile. Faders sweep cutoff, resonance, and envelope; buttons finger chords with a chord-depth fader stacking extensions.

Wireless OP-XY 8-track mixer

intermediate
BLUETOOTHSP-1OP-XY

SP-1 paired to an OP-XY over Bluetooth — no cable, running on battery — with the seeded OP-XY 8-track profile: 8 layers map to the 8 tracks on channels 1–8, faders ride cutoff/resonance/volume/sends, and •• + rocker steps between tracks with soft-takeover so nothing jumps.

One surface, two destinations

SP-1 leads·intermediate
USB-C3.5MM TRSLaptop + DAWSP-1Roland S-1

SP-1 on USB-C into a laptop running Ableton and TRS out to a Roland S-1 at the same time. Every mapped message leaves both jacks at once, so you split by channel: faders 1 and 2 plus the track buttons run a two-track mix and clip launches in the DAW on channel 1, while faders 3 and 4 sweep the S-1 on channel 2, which ignores the DAW traffic. One controller, two independent rigs, no routing software.

Chord stack across two synths

SP-1 leads·intermediate
3.5MM TRSMIDI THRUSP-1Poly synthBass synth

SP-1 TRS out through a DIN adapter into a poly synth on channel 1, the poly's MIDI thru daisy-chained to a bass synth on channel 2. Layer 1 fingers chords on the poly, layer 2 walks basslines on the bass, per-control channels keep the two instruments apart, the SP-1's clock drives both arps, and soft-takeover means paging layers never jumps a filter.

Pocket visualizer controller

SP-1 leads·intermediate
BLUETOOTHSP-1Phone / iPad

SP-1 paired over Bluetooth to a phone, iPad, or laptop running a MIDI-driven visualizer app (there are plenty on the app stores). No cable, on battery: faders sweep the visual parameters, buttons trigger scenes and hits, all mapped like any MIDI controller. A pocket VJ rig.

SP-1 as clock master for a hardware rig

advanced
TRS CLOCKSP-1Dirtywave M8

SP-1's TRS out into a Dirtywave M8 (SYNC IN set to transport), with the M8 starter profile and MIDI clock enabled: the SP-1 streams clock to the rig while its faders keep riding filter and FX, tap tempo on Track 4 or slide fader 4 for BPM, transport buttons start and stop everything, and •• + Track 3 is the panic bail-out.

DAW-to-hardware bridge (0.28 beta)

advanced
USB-C3.5MM TRSLogic ProSP-1Roland S-1

Laptop running Logic Pro over USB-C into the SP-1, TRS out to a Roland S-1: MIDI thru forwards the DAW's sequenced notes out the jack so the synth plays from the DAW, the SP-1's own faders stay live as a controller, and if Logic sends clock the SP-1 forwards it to the rig and takes back over when the DAW stops.

One clock, two buses

SP-1 leads·advanced
USB-CTRS CLOCKMIDI THRUOP-1 fieldSP-1Drum machineMono synth

SP-1 on USB-C into an OP-1 field set to external sync, TRS out through a DIN adapter into a drum machine, whose MIDI thru passes clock on to a mono synth. One tap tempo drives all three: the same clock streams out USB and TRS at once, transport buttons start and stop the whole rig, and the tempo survives a power cycle.

Hardware band, one cable

SP-1 leads·advanced
TRS CLOCKMIDI THRUMIDI THRUSP-1Drum machinePoly synthBass synth

No computer: SP-1 TRS out through a DIN adapter into a drum machine on channel 10, whose MIDI thru chains to a poly synth on channel 1, whose thru chains on to a bass synth on channel 2. One SP-1, one cable, three sounding boxes locked to its clock. 8 layers page the faders across the three boxes with soft-takeover, chords voice the poly, note buttons walk the bass, and panic silences the whole chain.

Clock a eurorack

SP-1 leads·advanced
TRS CLOCKMIDI THRUSP-1EurorackSynth

SP-1 TRS out into a MIDI-to-CV interface in the rack, a Hermod+ or Disting EX (the SP-1 sends MIDI, not CV, so the interface is required). The interface turns the SP-1's clock into analog clock and run for the modular and maps fader CC onto modulation CV, while its MIDI thru passes the same clock on to a desktop synth. Tap tempo or the BPM fader sets the whole rig's tempo, and transport buttons run and stop it.

Pocket sequencer, hardware synth

SP-1 supports·advanced
USB-CTRS THRUiPhoneSP-1Synth

An iPhone running a sequencer app on USB-C into the SP-1, TRS out to a DIN synth via adapter. MIDI thru forwards the app's notes out the jack, so the SP-1 is the only physical MIDI out that phone has, and it runs on its own battery so the phone's USB power budget never matters. The faders stay live to ride the synth's filter on the same line, and if the app sends clock the SP-1 forwards it and takes back over when the app stops.

Couch control of a DAW rig

SP-1 supports·advanced
BLUETOOTHUSB-CSP-1Laptop + DAWOP-XY

Ableton on a laptop leads the session and sends a MIDI track over USB-C to an OP-XY used as a sound module. The SP-1 pairs to the laptop over Bluetooth on battery, no cable to the couch: 8 layers mirror 8 mixer tracks on their own channels, transport buttons run the DAW, and a profile-switch button rewires the whole surface mid-session.

Features

Everything you get, grouped by what it does. Open a section for the bullets.

ControlEvery way to play, connect, and keep in sync.13
  • Four faders send any MIDI CC, with range and curve
  • Put every control on its own MIDI channel, 1 to 16
  • Buttons play notes, chords, or a whole note range
  • A fader that stacks chord extensions as you raise it
  • CC buttons: toggle, momentary, or a fixed value
  • Buttons send Start, Stop, and Continue
  • PLAY doubles as a shift key for a second layer
  • Keyboard mode over USB or Bluetooth, with shortcut presets
  • Two-way USB-MIDI and 3.5mm TRS out, at the same time
  • MIDI thru: forward USB MIDI straight out the TRS jack
  • Wireless BLE-MIDI and Bluetooth keyboard, paired in the browser
  • MIDI clock master, 40 to 240 BPM, tap or fader
  • Forward a host's clock, and take over when it stops
DeviceOn-device settings and safety, no computer needed.7
  • Power on and off from the •• button
  • Check the battery level on the lights
  • Dim or brighten the LEDs, and it remembers
  • Lights show your layer, profile, and every press
  • MIDI panic silences every channel at once
  • Profile, mode, and tempo survive a power cycle
  • Track 1 + 4 recovery hatch, so a bad flash is safe
CustomizeBuild, name, and save your setups in the browser.9
  • 8 profiles, each with 8 layers, switched live on the device
  • Profile-switch buttons rewire the surface mid-set
  • Soft-takeover, so a layer change never jumps a value
  • Edit, name, and save every profile and control in the browser
  • Starter templates for OP-XY, M8, Ableton, and more
  • Autofill sequential CCs across the faders in one click
  • Export, import, or share a profile as a link
  • A live monitor mirrors every move as you touch it
  • Apps can drive the 8 LEDs (the feldd-cc console)

Thanks

feldd stands on the people who reverse-engineered the SP-1 and shared what they found.

reverse-engineered the SP-1 and published the dev kit and wiki this whole project stands on.

Peter Colombo

@rewrote

the count-dial idea, and beta testing it on real gear.

Robert Paulson

robbleef.work

the hand-drawn SP-1 artwork you see across the site.

dot-Justin

sp-1.dotjust.in

the community archive and the lines thread mirror.

The SP-1 community

lines thread

the lines thread, the Discord, and everyone sharing what they find.

Power user: a Claude Code console

Turn your SP-1 into a physical console for Claude Code: the track lights show when an agent is working, needs you, or is done, and the buttons drive the session. A small local daemon plus Claude Code hooks, talking to feldd over USB. Setup is itself a Claude Code task, point your agent at the repo and have it follow the setup runbook.

feldd-cc on GitHub ->