April 14, 2026
Description
AwesomeStudioPedal is an open-source, programmable Bluetooth foot controller for musicians, streamers, and studio workers. Press a button with your foot — it sends a keypress, media command, or typed string to any Bluetooth device. No driver. No app. No cable needed during use.
It identifies itself as a standard Bluetooth keyboard, so it works out of the box on iPad, iPhone, Android, Windows, Mac, and Linux — including devices that don't allow third-party drivers at all. It appears in your Bluetooth settings as AwesomeStudioPedal. It connects to one device at a time; to switch hosts, remove the pairing on the current device first.
The four action buttons (A, B, C, D) are fully configurable: edit a single JSON text file, run one upload command, and the pedal has new mappings — no C++ knowledge or recompilation needed. The seven built-in profiles are just the defaults; every button on every profile can be reassigned to any key, media command, or typed string.
Delayed action: press a button and step away — the action fires after a configurable countdown. The power LED blinks while the timer runs. Useful for camera remotes, scene transitions, or anything where you need a moment between press and trigger.
Print each pedal top in a different colour to match its LED for instant visual recognition on stage — red button for record, blue for playback, whatever fits your workflow.
https://github.com/tgd1975/AwesomeStudioPedal
Part | Qty |
|---|---|
Bottom | ×1 |
Top | ×1 |
Podest | ×1 |
Bolt | ×2 |
LED socket (single) | ×1 |
Part | Qty |
|---|---|
ESP32 mount | ×1 |
LED socket (double) | ×1 |
LED array with SELECT button | ×1 |
Pedal sets (see above) | ×1–n |
Default build total (4 pedals): 4× bottom, 4× top, 4× podest, 8× bolt, 4× LED socket single, 1× ESP32 mount, 1× LED socket double, 1× LED array with button.
Note: the part PEDAL is for visualization purposes. It show how the assembled pedal looks like. It is not intended to print it.
Setting | Value |
|---|---|
Material | PETG or ABS |
Layer height | 0.2 mm |
Infill | 30–40% |
Perimeters | 3–4 |
Part | Supports |
|---|---|
Top | Yes |
Bottom | Yes |
LED socket (single) | Likely — check in slicer |
LED socket (double) | Likely — check in slicer |
Podest | No |
Bolt | No |
ESP32 mount | No |
LED array with SELECT button | No |
PETG is the recommended choice — good layer adhesion, resistant to repeated foot pressure, and easier to print than ABS
ABS works if you need higher heat resistance (e.g. left in a hot car)
PLA is not recommended — brittle under repeated impact and can creep under sustained load from foot pressure
The bolts benefit from PETG's slight flex — they snap-fit better than rigid PLA bolts would
Top — print each pedal top in a different colour, ideally matching its button LED colour (e.g. red top → red LED, blue top → blue LED). This lets you identify buttons at a glance on stage without looking down.
Podest, bottom, bolts — print in a neutral colour (black or dark grey recommended — hides scuff marks from repeated foot use)
LED sockets (single + double) — print in white or a light neutral colour for better light transmission; avoid dark colours as they block the LED glow
ESP32 mount + LED array — any colour; black blends well with most pedalboard setups
Part | Qty | Notes |
|---|---|---|
ESP32 NodeMCU-32S | 1 | Main board |
TRU COMPONENTS TC-R13-24A1-05-WT (1587873) | 5 | Momentary push button, 250 V/AC, 1.5 A, Ø 24 mm — 4 action + 1 SELECT |
LED 5 mm, colour of choice | 4 | Hardwired to action buttons — light on press, no GPIO. Match colour to printed top |
LED 5 mm, 1 blue, 1 green | 2 | Hardwired green for power; GPIO controller for BLE |
TRU COMPONENTS TC-PCL-5A203 snap-in socket (1593487) | 6 | LED holder for 5 mm LEDs, fits the single and double LED socket print |
LED 3 mm, colour of choice | 3 | GPIO-controlled: 3× profile select |
Resistors | 9 | Current-limiting, one per LED — value depends on supply voltage and LED forward voltage |
USB power supply or LiPo + regulator | 1 |
Note on button dimensions: the TC-R13-24A1-05-WT has a defined height, Ø 24 mm body, and nut width — the pedal top, podest, and bottom are designed around these exact dimensions. Substituting a different button may require model modifications.
Total: 9 LEDs — 4× 5 mm passive (button feedback, hardwired to switch), 1 x 5 mm passive (power indicator), 1 x 5 mm GPIO-controlled (1 BLE status), 3 × 3 mm GPIO-controlled (3 profile select).
Full wiring table and GPIO pin assignments: Build Guide
Press the SELECT button to cycle through profiles. Three small LEDs show which one is active.
Profile | What it does |
|---|---|
01 — Score Navigator | Page Up / Down for forScore, MobileSheets, Acrobat |
02 — Pixel Camera Remote | Delayed shutter (3 s countdown), instant shutter, mode switch |
03 — VLC Controller | Play/Pause, Stop, speed up/down |
04 — OBS Stream Deck | Scene switches via F13–F16, mute mic, start stream |
05 — DAW Looper | Record, Play/Stop, Undo take, Metronome (Ableton defaults) |
06 — Social & Comms | Mute/deafen in Discord / Zoom / Slack, quick message |
07 — System Debug | Diagnostic profile for firmware testing |
Profiles are fully configurable: edit data/profiles.json, run make uploadfs-esp32, and the pedal has new mappings within seconds — no build step, no C++ required.
Full source, build instructions, and documentation: github.com/tgd1975/AwesomeStudioPedal
Build from the main branch using PlatformIO. No pre-built binary release yet — see the Build Guide for step-by-step instructions.
Updating profiles without recompiling: edit data/profiles.json and run make uploadfs-esp32 — only the config partition is rewritten, takes a few seconds.
First power-on: if the config file is missing or invalid, all LEDs blink 5 times and the factory default profile set loads automatically.
Note on enclosure: this 3D print is one option. If you don't have a printer or need a more durable live build, any standard SPST momentary footswitch fits the button holes and works as a drop-in alternative.
You like my work? Consider to buy me a coffee :D
The 3D model files are released under Creative Commons Attribution 4.0 (CC BY 4.0). The firmware is MIT licensed.
License:
Creative Commons — Attribution
9