Skip to the content
2 layers133.6 × 112.9 mmDSP MX, the printed circuit board in 3D

Open-source modular real-time embedded DSP guitar multi-effects platform based on Teensy 4.1, with custom hardware, C++ firmware, and real-time control.

Size
133.6 × 112.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
46
Nets
90
Pads
184
Tracks, vias
495, 75
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
18 Jun 2026
Updated
30 Oct 2026

Overview

DSP MX is an open-source printed circuit board by MahmoudBasio, from the MahmoudBasio/DSP-Guitar-MultiFX repository on GitHub, published under the MIT licence. It is a 2-layer board of 133.6 × 112.9 mm with 46 parts on 90 nets, routed with 495 tracks and 75 vias.

It is built around the TL072. Its parts include 16 connectors, 13 resistors, 10 capacitors and 2 ICs. It belongs with the audio and music boards and the NXP (LPC, Kinetis, i.MX RT) boards of this library.

Main components

1

README

README.md

DSP Guitar MultiFX

An open-source modular real-time embedded DSP platform for guitar multi-effects, built around the Teensy 4.1.

The project combines real-time audio processing, embedded firmware, custom electronics, user-interface hardware, PCB design, and mechanical design into a complete standalone multi-effects platform.

DSP Guitar MultiFX

Overview

DSP Guitar MultiFX was developed as an open and extensible platform for implementing real-time audio effects on embedded hardware.

The system uses a Teensy 4.1 with the SGTL5000-based Teensy Audio Board and a modular C++ firmware architecture designed to make additional effects easy to integrate.

Current effects include:

  • Delay
  • Reverb
  • Chorus

The project includes the complete firmware alongside hardware design files, PCB resources, mechanical design, documentation, and bill of materials.

Key Features

  • Teensy 4.1 ARM Cortex-M7 platform
  • Real-time embedded audio processing
  • Modular C++ DSP architecture
  • Extensible IEffect interface for additional effects
  • Delay, Reverb, and Chorus effects
  • SGTL5000 audio interface
  • OLED-based user interface
  • Rotary encoder parameter control
  • Dedicated effect footswitches
  • PlatformIO + Arduino framework
  • Custom PCB and hardware design
  • Mechanical enclosure design
  • Open-source hardware and firmware

Performance

Current experimental evaluation is performed at 44.1 kHz using 128-sample audio blocks.

MetricMeasured Result
Sample Rate44.1 kHz
Audio Block Size128 samples
Block Duration≈ 2.90 ms
Maximum DSP Processing Time145.29 µs
Maximum Reported CPU Usage5.01%

CPU Utilization

ConfigurationMaximum CPU Usage
Bypass4.70%
Delay3.03%
Reverb2.86%
Chorus4.98%
Delay + Reverb + Chorus5.01%

These values were recorded for an earlier experimental firmware configuration. They have not been revalidated for the current routing and UI revision.

These measurements predate the optional chorus wet-filter routing and expanded UI. Repeat timing, CPU-load, and frequency-response measurements on that revision; see audio routing and controls.

Audio Measurement Record

See Experimental measurements for the measurement procedure, original oscilloscope captures, frequency-response data, delay timing and feedback ratios, and reverb/chorus test configurations.

The frequency-response sweep characterizes an earlier effects-off sketch with a shared 3.2 kHz pre-filter. It does not characterize the current unfiltered dry path. Harmonic, noise and latency estimates remain preliminary; their limitations and missing acquisition details are disclosed in the report.

System Architecture

The platform separates audio processing, DSP effects, system control, and user-interface functionality into independent modules.

text
Guitar Input
     │
     ▼
Analog / Audio Interface
     │
     ▼
SGTL5000 Codec
     │
     ▼
Teensy 4.1
     │
     ├── Audio Routing
     ├── DSP / Effects
     ├── Effect Manager
     ├── System Control
     └── User Interface
     │
     ▼
Audio Output

The firmware source is divided into:

text
firmware/src/
├── audio/
├── core/
├── dsp/
├── effects/
├── ui/
└── main.cpp

This organization keeps individual effects separated from audio routing and interface logic.

Hardware

The platform is built around:

  • Teensy 4.1
  • Teensy Audio Board / SGTL5000
  • Custom interface PCB
  • 128×64 OLED display
  • Rotary encoder
  • Dedicated effect footswitches
  • Audio input/output connections
  • Custom enclosure

PCB

TopBottom

Schematic

Schematic

Hardware design resources are available in the Hardware directory.

Firmware

The firmware is implemented in C++ using the Arduino framework for Teensy and built using PlatformIO.

Current PlatformIO dependencies include:

  • U8g2
  • CriticalTaskScheduler

The repository is configured for:

ini
platform = teensy
board = teensy41
framework = arduino

Adding a New Effect

The DSP architecture is designed to make effects modular.

To implement a new effect:

  1. Create the new effect implementation inside firmware/src/effects/.
  2. Implement the project's effect interface.
  3. Define the effect parameters and processing logic.
  4. Register the effect with the effect-management system.
  5. Connect its parameters to the user interface as required.

This allows new algorithms such as distortion, tremolo, or additional modulation effects to be integrated without redesigning the complete audio system.

Repository Structure

text
DSP-Guitar-MultiFX/
├── BOM/          # Bill of materials
├── Docs/         # Technical documentation
├── Hardware/     # PCB and hardware design
├── Images/       # Project images and renders
├── Mechanical/   # Mechanical / enclosure design
├── firmware/     # Teensy firmware
└── README.md

Getting Started

Clone the repository:

bash
git clone https://github.com/MahmoudBasio/DSP-Guitar-MultiFX.git
cd DSP-Guitar-MultiFX/firmware

Open the firmware directory using VS Code + PlatformIO.

Build the project:

bash
pio run

Upload to the Teensy 4.1:

bash
pio run --target upload

Research

This platform is also being developed and experimentally evaluated as part of research into modular, low-cost, open-source real-time embedded DSP systems.

Experimental results, architecture details, resource utilization, latency, and audio-performance measurements are being documented as part of the associated research work.

Publication information and DOI will be added here when available.

Citation

If you use this project in academic or research work, please cite the repository using the citation information provided in CITATION.cff.

Publication citation information will be added following publication of the associated research article.

License

This project is released under the MIT License. See LICENSE for details.

Author

Mahmoud Basiony

Robotics • Embedded Systems • Real-Time DSP

Tamer Mohamed

Robotics • Mechanical Designer • Real-Time DSP

Project Status

Active development.

Planned work includes additional DSP effects, expanded experimental characterization, audio-quality measurements, and further hardware refinement.

Parts

46
QtyValueFootprintReferences
510uCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC1, C3, C7, C8, C9
310k RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R3, R4
31k RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR5, R8, R9
2100k RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2, R12
22.2k RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR6, R7
25v/GNDTerminalBlock:TerminalBlock_Wuerth_691311400102_P7.62mmJ8, J16
2Conn_01x24_SocketConnector_PinHeader_2.54mm:PinHeader_1x24_P2.54mm_VerticalJ7, J10
11 M RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR13
11 nf CCapacitor_THT:C_Radial_D5.0mm_H5.0mm_P2.00mmC5
1100 nf CCapacitor_THT:C_Radial_D5.0mm_H5.0mm_P2.00mmC4
1100kPotentiometer_THT:Potentiometer_Runtron_RM-065_VerticalRV1
11M RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR10
11u fCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC2
147 pf CCapacitor_THT:C_Radial_D5.0mm_H5.0mm_P2.00mmC6
1470pf CCapacitor_THT:C_Radial_D5.0mm_H5.0mm_P2.00mmC10
1560k RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR11
1CLK/DATATerminalBlock:TerminalBlock_Wuerth_691311400102_P7.62mmJ12
1GNDTerminalBlock:TerminalBlock_Wuerth_691311400102_P7.62mmJ4
1GND/SwENTerminalBlock:TerminalBlock_Wuerth_691311400102_P7.62mmJ11
1Guitar_In1TerminalBlock:TerminalBlock_Wuerth_691311400102_P7.62mmJ1
1Guitar_In2TerminalBlock:TerminalBlock_Wuerth_691311400102_P7.62mmJ2
1Guitar_outputTerminalBlock:TerminalBlock_Wuerth_691311400102_P7.62mmJ3
1Power_inTerminalBlock:TerminalBlock_Wuerth_691311400102_P7.62mmJ6
1SCL/SDATerminalBlock:TerminalBlock_Wuerth_691311400102_P7.62mmJ9
1SW1/SW2TerminalBlock:TerminalBlock_Wuerth_691311400102_P7.62mmJ14
1TL072Package_DIP:CERDIP-8_W7.62mm_SideBrazed_SocketU3
1Teensy4.0_AudioShield_REVDteensy_audio_shield:4.0audioshieldU1
1UARTTerminalBlock:TerminalBlock_Wuerth_691311400102_P7.62mmJ5
1sw3/sw4TerminalBlock:TerminalBlock_Wuerth_691311400102_P7.62mmJ13
1sw5/GNDTerminalBlock:TerminalBlock_Wuerth_691311400102_P7.62mmJ15

The 42 most common of 46 parts.

Similar boards

  • 2 layers148 × 84.5 mmPanel daisy, the printed circuit board in 3D

    Panel daisy

    ohmtech-rdi/eurorack-blocks

    Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust

    259 parts410
  • 2 layers39.6 × 99.1 mmESP32-Eurorack Audio, the printed circuit board in 3D

    ESP32-Eurorack Audio

    ctag-fh-kiel/ctag-tbd

    CTAG TBD >>to be determined<< an extendible open source Eurorack sound module

    128 parts260
  • 4 layers121.9 × 109.2 mmPlinkyblack hwmidi jacks, the printed circuit board in 3D

    Plinkyblack hwmidi jacks

    plinkysynth/plinky_public

    a public release of the plinky sw and hw

    300 parts227
  • 2 layers58 × 110 mmVco core, the printed circuit board in 3D

    Vco core

    shmoergh/moduleur

    Fully analog DIY-friendly modular synth

    146 parts222
  • 2 layers37 × 113.9 mmVCO, the printed circuit board in 3D

    VCO

    nickajeglin/Eurorack-pcbs

    A collection of easy to solder DIY eurorack PCB's

    104 parts208
  • 2 layers111.3 × 106.4 mmSuper Sixteen v1, the printed circuit board in 3D

    Super Sixteen v1

    matthewcieplak/super-sixteen

    Code and schematics for the Super Sixteen Eurorack sequencer

    141 parts171
  • 2 layers85.1 × 62.2 mmMic extension board, the printed circuit board in 3D

    Mic extension board

    StoneRose35/cortexguitarfx

    guitar effects processor implemented on various arm cortex platforms

    75 parts146

Questions

How big is the DSP MX PCB?

It measures 133.6 × 112.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the DSP MX use?

46 parts, built around the TL072. 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 DSP MX KiCad files?

From the MahmoudBasio/DSP-Guitar-MultiFX repository on GitHub, at the commit this page was made from: the board is Hardware/PCB/DSP_MX.kicad_pcb and its schematic Hardware/PCB/DSP_MX.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the DSP MX design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).