Reference build

One board, one switch, one afternoon.

The wiring is genuinely trivial — a switch between a pin and ground. Most of the work is mechanical: getting it into a box that survives being stood on.

Parts

What you need, in general terms

Board profiles and pins

The firmware ships three build profiles. Pick the one matching your board — the pin assignments are compiled in, so this table is the wiring diagram.

ProfileBoardFootswitchLED
esp32c3-prorecommendedDefault. External U.FL antenna, which is why it is the recommended board for a room full of 2.4 GHz.ESP32-C3 SuperMini ProGPIO 7 — normally open to groundWS2812 RGB on GPIO 8
esp32c3Legacy wiring for boards already built to the older pinout.ESP32-C3 DevKitM-1 / SuperMiniGPIO 5 — normally closed to groundPlain LED on GPIO 8
esp32devNo Bluetooth build, so no app pairing and no Extended tier on this profile.Classic ESP32 dev boardGPIO 5Plain LED on GPIO 2

Wiring

The switch shorts a pin to ground; the internal pull-up does the rest. There is no resistor, no debounce circuit and no level shifting to get wrong — debouncing is handled in firmware.

text
ESP32-C3 SuperMini Pro

  GPIO 7  ──────────┐
                    │
                  [FOOTSWITCH]        momentary, normally open
                    │
  GND     ──────────┘

  GPIO 8  ────────── WS2812 DIN
  3V3     ────────── WS2812 VCC
  GND     ────────── WS2812 GND

  GPIO 9  ────────── BOOT button (already on the board)
                     held at power-on = Bluetooth pairing window
Hold the footswitch for three seconds at power-on to clear stored Wi-Fi credentials.

Flash it

bash
git clone https://github.com/jan-beranek/pedal
cd pedal
npm install          # builds the pedal's own web page
make deps
make flash ENV=esp32c3-pro PORT=/dev/tty.usbmodem1101
PlatformIO handles the toolchain. Node 18 or newer is needed for the web UI build.

First setup

  1. It makes its own network

    With no Wi-Fi stored, the pedal starts an access point called pedal-XXXX. Join it from a phone or laptop and the setup page opens by itself.

  2. Give it your Wi-Fi

    Enter your network details. It retries across three rounds before falling back to the access point, so a console that boots slower than the pedal is not a problem.

  3. Point it at the console

    Open http://pedal-XXXX.local on the same network. Add your console's address — X32 on port 10023, Soundcraft Ui on port 80 — and it will connect and start caching state.

  4. Make your first mapping

    Pick a template, choose a channel, save. The page confirms changes back from the device, so you can see it landed. Try one of the worked examples.

About "open hardware"

We are not claiming that phrase yet, because it would not be true. Open hardware means published, editable source files and an explicit licence — schematics and enclosure files that you can modify, not a photograph of a breadboard.

The wiring above is complete and accurate, and the firmware is on GitHub. The editable mechanical and electrical sources, and the licence they ship under, are not published yet. We will use the phrase when that is done.

Already have one working?

Copy it onto a blank board from your browser, no toolchain required.

Clone a pedal