diff --git a/CHANGELOG.md b/CHANGELOG.md
index bed9bfd..187bb42 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,9 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this pr
uses [Semantic Versioning](https://semver.org/) (`vMAJOR.MINOR.PATCH`).
## [Unreleased]
+- **Removed the "hold both footswitches → DFU" gesture.** Enter DFU for flashing over MIDI
+ (CC 119 ≥ 64, e.g. from Propagator) or with the Daisy Seed's BOOT+RESET buttons. Frees the
+ footswitch combinations for upcoming features (e.g. presets).
- **Lower audio-CPU on the voice path** (no audible change): the per-voice filter only
recomputes its coefficients when cutoff / resonance / filter-type actually change, so
static-filter patches skip a `sinf`+`powf` (Svf) or coefficient polynomial (Moog) every
diff --git a/README.md b/README.md
index bdfe836..81d4438 100644
--- a/README.md
+++ b/README.md
@@ -43,7 +43,9 @@ Spore currently targets one platform:
| **Footsw 1** | **Tap** = engage/bypass · **Hold** = edit FX (knobs become FX controls) |
| **Footsw 2** | Mode action - Granular **freeze**, Generative **re-seed** |
| **LED 1 / 2**| Engaged state (mid = editing FX) / active FX |
-| Hold **both** footswitches 2s | Reboot to **DFU** for flashing |
+
+Enter DFU for flashing over MIDI (**CC 119** ≥ 64, e.g. from Propagator) or with the Daisy
+Seed's **BOOT + RESET** buttons.
Audio: Hothouse stereo **in** and **out** (1/4" jacks). Synth & Generative ignore the
input (they generate); Granular records and reuses it.
diff --git a/docs/firmware-architecture.svg b/docs/firmware-architecture.svg
index c9186e4..ca04735 100644
--- a/docs/firmware-architecture.svg
+++ b/docs/firmware-architecture.svg
@@ -39,7 +39,7 @@
3 Togglesmode · var · FX
- 2 Footswitchesbypass · action · DFU
+ 2 Footswitchesbypass · action
Analog sensorlight / pressure (ADC)
diff --git a/scripts/flash.ps1 b/scripts/flash.ps1
index 197613f..fdc9050 100644
--- a/scripts/flash.ps1
+++ b/scripts/flash.ps1
@@ -1,6 +1,6 @@
# Build + flash over USB DFU (no programmer needed).
# Put the device in the bootloader first: hold BOOT, tap RESET
-# (or hold BOTH footswitches for 2s to trigger the DFU reboot gesture).
+# (or send MIDI CC 119 >= 64 from the editor to reboot into DFU).
$ErrorActionPreference = "Stop"
. (Join-Path $PSScriptRoot "env.ps1")
$root = Split-Path $PSScriptRoot -Parent
diff --git a/scripts/flash.sh b/scripts/flash.sh
index fa1acae..37838af 100644
--- a/scripts/flash.sh
+++ b/scripts/flash.sh
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Build + flash over USB DFU (no programmer needed).
# Put the device in the bootloader first: hold BOOT, tap RESET
-# (or hold BOTH footswitches for 2s to trigger the DFU reboot gesture).
+# (or send MIDI CC 119 >= 64 from the editor to reboot into DFU).
set -euo pipefail
. "$(dirname "$0")/env.sh"
cd "$(dirname "$0")/.."
diff --git a/src/config/params.h b/src/config/params.h
index f5435be..bcaa29b 100644
--- a/src/config/params.h
+++ b/src/config/params.h
@@ -20,7 +20,7 @@
// ... or FX params while editing (hold FOOTSW 1) -- see `params::fx`
// FOOTSW 1 : tap = engage/bypass | HOLD = edit FX (knobs -> FX, soft-takeover)
// FOOTSW 2 : mode action (Granular = freeze, Generative = re-seed)
-// (hold BOTH footswitches 2s -> reboot to DFU for flashing)
+// (DFU for flashing: MIDI CC 119 >= 64, or the Seed's BOOT+RESET buttons)
// =============================================================================
#pragma once
diff --git a/src/main.cpp b/src/main.cpp
index c0b684d..b3b9351 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -13,7 +13,7 @@
// TOGGLE 3 : FX (UP=off MIDDLE=delay DOWN=reverb)
// FOOTSW 1 : tap = engage/bypass | HOLD = edit FX (knobs -> FX, soft-takeover)
// FOOTSW 2 : mode action (freeze / re-seed)
-// Hold BOTH footswitches 2s -> reboot to DFU for flashing.
+// Enter DFU for flashing over MIDI (CC 119 >= 64) or via the Seed's BOOT+RESET buttons.
// =============================================================================
#include "daisy_seed.h"
#include "hothouse.h"
@@ -287,7 +287,7 @@ int main() {
// (Motion IMU is tier-2 / deferred -- see io/imu.h.)
g_sensors.Init(hw); // re-inits ADC to add analog input on A0/D15
- // Footswitch LEDs (pins 22/23 are free outside the DFU flash gesture).
+ // Footswitch LEDs.
led1.Init(hw.seed.GetPin(Hothouse::LED_1), false);
led2.Init(hw.seed.GetPin(Hothouse::LED_2), false);
@@ -318,7 +318,6 @@ int main() {
led2.Update();
hw.DelayMs(1); // poll USB MIDI often so the RX FIFO never backs up (dropped notes)
- hw.CheckResetToBootloader();
}
return 0;
}