Skip to the content
PCBKitNew board
2 layers60 × 57.5 mmExpressionx3, the printed circuit board in 3D

A DIY triple expression pedal. This pedal was heavily inspired by the Old Blood Noise Endeavors Expression Ramper x3. I wanted to add the ability for the pedal to modulate its own values.

Size
60 × 57.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
58
Nets
63
Pads
183
Tracks, vias
322, 30
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
2 Jul 2026
Updated
10 Sep 2026

Overview

Expressionx3 is an open-source printed circuit board by dbostian, from the dbostian/expressyourself repository on GitHub. It is a 2-layer board of 60 × 57.5 mm with 58 parts on 63 nets, routed with 322 tracks and 30 vias.

It is built around the MCP41050-E/P. Its parts include 23 diodes, 9 connectors, 9 switches, 3 capacitors and 3 ICs. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

1

README

README.md

pedal top view

express yourself

A DIY triple expression pedal. This pedal was heavily inspired by the Old Blood Noise Endeavors Expression Ramper x3. I wanted to add the ability for the pedal to modulate its own values. It has three expression outputs that can sync with each other, and affect each other in weird ways.

This project is work in progress, and is released on an as-is basis. This repository contains all code, artwork (I printed a vinyl sticker), pcb schematics, gerbers, a bom, as well as 3d printing files (stls, f3d, step) for a 3d printed enclosure. The pedal will fit in a 125b enclosure. The code is working as described below/shown in the videos, but is in a preliminary stage and may contain bugs. In short, use at your own risk.

I am not planning to release detailed build instructions, but if you're a steady hand at soldering, have built a few diy pedals before, ordered custom pcbs, sourced a bom, and have flashed an arduino or two, you should be able to handle this.

Overview Video: https://www.youtube.com/watch?v=8aHI_HfOTI8 Followup Video: https://www.youtube.com/watch?v=umGa9XkKtoM Part 3: https://www.youtube.com/watch?v=ajVojKqwqVI

basic usage

The pedal has three sets of expression controls, arranged in columns from left to right. For any exp, you can set the wave shape (triangle, square or sine), an a value and a b value, and a rate. The exp will oscillate between a and b at the rate you set, using the selected shape. All knob settings are relative - the knob may not match the value when changing the set switch, so turning the knob will raise or lower the value accordingly. Pay attention to the LED's brightness, as it reflects the actual value.

Exp 1 can also have its rate determined by tap tempo. At most, the last five taps will be used.

To enable an exp's jack, tap the footswitch to enable it. The LED will turn white. Tap again to turn it off. The output of a jack is:

  • A if the set switch is on a
  • B if the set switch is on b
  • Oscillating if the set switch is on rate and the exp is on
  • A if the set switch is on rate and the exp is off

You can sync exp2 and exp3 the exp to their left. If sync is set to rate, the rate value will be copied over. If set to all, the a and b values will be copied as well. When syncing (rate or all), changing the rate value will adjust the local rate in multiples of the exp to the left - 1/8, 1/4, 1/2, 1x, 2x, 3x, or 4x.

If you hold down any footswitch while changing the sync switch, the exp will enter mod mode. The output of the exp to the left will control an aspect of this exp. as follows:

  • In amp mod mode, the amplitude of the wave will be changed by the output of the exp to the left. a and b will move apart or closer together about their midpoint. 0% touching, 50% original values, 100% twice as far apart.
  • In freq mod mode, the frequency of the wave will be changed. The rate value will be replaced with the output of exp to the left.
  • In phase mod mode, the phase of the wave will be offset by the value of the exp to the left. 0%: minus one half wavelength, 50%: no change, 100%: plus one half wavelength.

In amp mod mode, the value may exceed the maximum or minimum value of the pedal. In this case, wavefolding will occur.

Changing the sync switch without holding a footswitch down will turn off the mod mode. You can have sync mode and mod mode active at the same time: move the sync switch to the desired sync mode, hold the foot switch and select the desired mod mode. You cannot have more than one sync mode or mod mode active at the same time.

If you change the shape switch while holding a foot switch, you will enter random mode - each time the wave completes a cycle, random values for a and b will be chosen, using values between the original a and b.

Future features and code changes:

  • One-shot mode. Holding the tap tempo button while selecting shape will put it into one-shot mode. The EXP will move from A to B when the footswitch is tapped, and back from B to A again when tapped again, and so on.
  • Hold to pause. While a footswitch is held, the exp's output and progress will be paused. It will resume when the footswitch is released.
  • USB Midi?

schematic

design notes

The schematic and pcb were layed out in KiCad 10.

This circuit uses every IO pin available on the Arduino Pro Micro. To reduce the number of pins used for the switches (many of which have three positions), I used a key matrix with diodes arranged in a 4 x 5 grid. This reduced the pins needed to 9. This is very similar to how a computer keyboard works. For each three-way switch, I can check two positions, and if neither is "pressed," I can tell that it is in the middle position. I'm using the Adafruit_Keypad library for this. They switch matrix handles all of the toggle switches and the momentaries (tap tempo, plus the foot switches). For more information on how a key matrix works (and why this pedal needs so many diodes), check out this article: https://www.dribin.org/dave/keyboard/one_html/

The digipots are controlled using a software SPI. In using every pin available, I ended up using the MISO pin as one of the CS lines. The built in SPI library conflicted with that use case, hence the bit-banging solution.

The artwork is based on a photo of a cloud that I took, converted to halftones. This is color shifted using a CMYK color scheme for the three expression units. I created the art in InkScape.

The 3d print files were for testing hole location, prior to drilling into metal. I've included them for reference. These were designed in Autodesk Fusion.

The code was written in the Arduino IDE. AI use in this project is limited to GitHub copilot commit messages from editing this README file - not for code generation, pcb design, art, or anything else. It certainly didn't help with soldering.

pcbs soldered componentst 3d printed enclosure testing

build notes

The expressionx3.csv contains a fairly complete parts list. Pay attention to the csv, not what is in KiCad.

  • Knobs are 20mm apart. I used 19mm diameter Davies style knobs.
  • JST connectors did not fit - ignore bom and just use pin header.
  • TRS jack choice is important. Others did not fit in the enclosure.
  • The pcb is challenging to solder, as I completely disregarded courtyards during design. Plan ahead while soldering. Paying for assembly probably won't work without some updates.
  • I installed the pro micro using pin header for clearance. You may want to drill a hole/mill a slot in the side of the enclosure for easy usb cable access, especially if you are planning on experimenting with your own code.
  • You may need to bend some terminals during assembly to get everything to fit inside. I needed this for the foot switches.
  • You might need to use other sized digipots from the MCP41xx series (bigger/smaller than 50k), depending on what you are plugging them into.
  • Someone suggested I flip the outer two foot switches around to make it possible to hit the center switch with normal sized toes.

pedal gutshot pedal side view pedal top

Parts

58
QtyValueFootprintReferences
201N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1, D2, D3, D4, D5, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20 +4
8Conn_01x03_PinLibrary:SPDTSW1, SW2, SW3, SW4, SW5, SW6, SW8, SW9
6Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ1A1, J1B1, J2A1, J2B1, J3A1, J3B1
4Conn_01x02_PinConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical9v1, FS1, FS2, FS3
3Conn_01x04_PinConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalLED1, LED2, LED3
3MCP41050Package_DIP:DIP-8_W7.62mmU1, U2, U3
3R_PotentiometerLibrary:Potentiometer_Piher_T-16L_Single_Vertical_HoleRV1, RV2, RV3
2JST_1mm_3Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ1, J3
1.33 uFCapacitor_THT:C_Disc_D10.0mm_W2.5mm_P5.00mmC1
10.1uFCapacitor_THT:C_Disc_D10.0mm_W2.5mm_P5.00mmC2
11N4001Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal1N4001
1470Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1
1470uFCapacitor_THT:CP_Radial_D8.0mm_P3.50mmC3
1Conn_01x02_PinLibrary:SPSTSW7
1JST_1mm_4Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ2
1LM7805_TO220Package_TO_SOT_THT:TO-220-3_VerticalVR1
1ProMicroCArduino:Sparkfun_Pro_MicroMCU1

Questions

How big is the Expressionx3 PCB?

It measures 60 × 57.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Expressionx3 use?

58 parts, built around the MCP41050-E/P. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Expressionx3 KiCad files?

From the dbostian/expressyourself repository on GitHub, at the commit this page was made from: the board is expressionx3.kicad_pcb and its schematic expressionx3.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Expressionx3 design in my own project?

Its repository states no licence, so its author keeps all rights: ask dbostian before reusing the design.

Similar boards

  • 2 layers85 × 65 mmFuente regulable, the printed circuit board in 3D

    Fuente regulable

    iowlabs/camara_electroforesis

    Dispositivo para la instrumentación de experimentos de electroforesis. Considera tanto el diseño de un modelo 3D para el tanque, como la electrónica para una fuente generadora de voltaje.

    80 parts1GPL-3.0
  • 2 layers68.6 × 53.3 mmProject kicad, the printed circuit board in 3D

    Project kicad

    MOSH-Insa-Toulouse/2023-2024_4GP_NGO-TRAN

    INSA 4GP MOSH Project - NGO/TRAN

    23 parts1MIT
  • 2 layers49.5 × 44.5 mmHv power supply, the printed circuit board in 3D

    Hv power supply

    wheeler-microfluidics/kicad___hv_power_supply

    Digitally adjustable high-voltage power supply

    19 parts1
  • 2 layers151 × 31 mmRainbow music pegasus, the printed circuit board in 3D

    Rainbow music pegasus

    adamm/rainbow-music-pegasus

    Disclaimer: This work is a work-in-progress. This project is still under active development and is estimated to be completed Spring 2027.

    111 partsApache-2.0
  • 10 layers470 × 346.5 mmAnalogFNN, the printed circuit board in 3D

    AnalogFNN

    hransom528/AnalogNNPCB

    Analog Neural Network PCB for CPS Lab Research Project

    1,596 parts
  • 2 layers92.3 × 109.5 mmEWOD, the printed circuit board in 3D

    EWOD

    JFost146/EWOD-RF-Switch-FYP

    This repo is a demonstration of the work done by Jack Foster for his MEng final year project (FYP).

    86 partsGPL-3.0
  • 2 layers71.6 × 61.1 mmCapteur kicad, the printed circuit board in 3D

    Capteur kicad

    MOSH-Insa-Toulouse/2023-2024-4GP-Bresson-Ronne

    Projet 4GP du capteur au banc de test en open source hardware --- ## Sommaire - 1) Contexte - 2) L'électronique Analogique - 3) Kicad - 4) Le code Arduino - 5) L'application Bluetooth - 6) La DataSheet ---

    25 parts
  • 2 layers68.6 × 53.3 mmSheild UNO M&M, the printed circuit board in 3D

    Sheild UNO M&M

    MOSH-Insa-Toulouse/2024-2025-4GP-cookingmae-MaouLidaDev

    Le but du projet est de pouvoir venir comparer deux technologies de jauge de contrainte. Une jauge provenant du commerce : Un "flex sensor" ayant une résistance à plat d'environ 28KOhms Une jauge de contrainte en…

    24 partsGPL-3.0