

Troublemaker
The original dub soundsystem-style fully digital open source music preamp, based on ELK Audio OS
- Size
- 419 × 394 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 115
- Nets
- 203
- Pads
- 754
- Tracks, vias
- 1,891, 137
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 15 Sep 2024
- Updated
- 10 Jun 2026
Overview
Troublemaker is an open-source printed circuit board by LeoFabre, from the LeoFabre/project-troublemaker repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 419 × 394 mm with 115 parts on 203 nets, routed with 1,891 tracks and 137 vias.
It is built around the TEENSY 4.1 and CD74HC4067M. Its parts include 7 connectors, 6 ICs, 2 switches and 1 resistor. It belongs with the audio and music boards and the NXP (LPC, Kinetis, i.MX RT) boards of this library.
Main components
2TEENSY 4.1
Development Boards & Kits - ARM ModuleSparkFun ElectronicsUncategorisedCD74HC4067M
SOIC-24-300mil-55℃~+125℃ 16 160Ω 16:1 22ns 2V~6V 345ns 365ns 89MHz Bidirectional analog channel、Glitch-free switching SOIC-24-300mil Analog Switches, Multiplexers ROHSTexas InstrumentsAnalog Switches, Multiplexers
README
README.md🚨PROJECT TROUBLEMAKER🚨 - ABANDONED, new project coming very soon
The original dub soundsystem-style, fully digital, open source music preamp, based on ELK Audio OS.
This project is meant to be a fully digital sound system preamp, with a lot of features and a lot of fun to use. This would typically be used in a dub sound system control tower, right before the DSPs and power amps. I am making it for my own dub sound system, but I am sharing it with the world so that everyone can enjoy and contribute to it.
Figma design of the front plate (click to open in figma) :
Please note that this project is still in its early stages, and it is not yet ready for use. Also, the aim is not to provide a classic preamp to use with a microphone, but rather a preamp to use with a line-level signal, like a CD player, a computer, a synthesizer, etc. It will NOT provide any protection for your speakers, and also will not split the signal into multiple bands outputs.
It is meant to be used with a DSP that can handle multiple outputs, and optionally a mixer before it, to get microphone inputs and other line-level inputs.
At the moment, the inputs and outputs are stereo only, but more input modes will be added in the future (see Signal Flow section).
Software & Hardware stack (Click to open in whimsical)
Project Troublemaker is based on ELK Audio OS, which is a Linux-based realtime audio OS that can run VST3 plugins.
It is HIGHLY RECOMMENDED to get a grasp of ELK Audio OS before diving into this project.
I use a Raspberry pi 4 (8GB) as the main board,
a HifiBerry DAC+ ADC Pro, to get audio I/O,
a Teensy 4.1 as the control board, which acts as a MIDI controller and communicates with the Raspberry Pi via USB.
To build the control panel I use CD74HC4067 multiplexers, and a lot of arcade buttons, potentiometers, RGB LED sticks, and switches.
The project is meant to be a fully open source project, with all the source code and hardware design files available for free.
Because I strongly believe that music is meant to be shared, and music gear should be open source.
Please feel free to contribute by opening a PR or an issue.
Keep in mind that I am still learning, and that I am doing this project in my free time, so I may take some time to get back to you and updates may be slow.
Featured Plugins (Work in Progress)
- SampleTower : My JUCE-based VST3 sample player. features 11 fully-loaded-in-RAM sample slots, real-time playback speed control, sample loading from the file system (via config file), sample triggering with a MIDI note, one-shot and loop modes for each sample (via config file), kill button that stops all currently playing samples.
- 2 parametric EQs with bypass switches.
- Moses : My fork of IEM's multiband compressor. It is a 4-band SIMD optimized multiband compressor/crossover plugin, featuring cascaded Butterworth, linkwitz-riley filters and Allpass filters, solo&kill switches and master controls.
- Strange Returns : My fork of JackWithOneEye's Strange Returns delay plugin.
- Graindr : My fork of JackWithOneEye's Graindr, dual granular delay plugin.
- Parametric Reverb FX : A parametric reverb that I have yet to design. The reverb pots on the frontplate are inspired by ableton's reverb plugin, and are subject to change.
- Sub Roar FX : A classic dub sub bass roar effect based on saturation, and filtering, and reverb. It is only composed of BrickWorks plugins that ELK Audio OS provides, I may or may not make a JUCE version of it in the future.
Signal Flow (click to open in whimsical)
Input modes
- Stereo mode: The default mode, where the HifiBerry is used as a stereo input and output.
- Aux send mode (to be implemented): The 2 stereo channels of the HifiBerry are split in 2 mono input channels and 2 mono output channels.
The first mono input channel is used as the main input, the first mono output is used as the main output, the second mono input channel is used as the aux send, and the second mono input channel is used as the aux return.
This is useful to send the signal to an external effect processor and get it back in the preamp, like a reverb or a delay, and then use the preamp's processing on it.
As of now, the modes are not implemented, and the preamp only works in stereo mode.
In the future, I will add a switch to select the input mode at boot time (Sushi would then get its processor graph built by the glue app via gRPC instead of the config file).
Parts
115| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | ~ | Library:Neopixel-8LED | Neopixel_bass_gain_reduction1, Neopixel_bass_out_level1, Neopixel_high_gain_reduction1, Neopixel_high_out_level1, Neopixel_mid_gain_reduction1, Neopixel_mid_out_level1, Neopixel_sub_gain_reduction1, Neopixel_sub_out_level1 |
| 5 | CD74HC4067M | Library:Breakout_HC4067_PTH_Only | U2, U3, U4, U5, U6 |
| 2 | 5V_RPI2_OR_4 | Connector_PinHeader_1.00mm:PinHeader_1x01_P1.00mm_Vertical | J3, J3 |
| 2 | GND_RPI34 | Connector_PinHeader_1.00mm:PinHeader_1x01_P1.00mm_Vertical | J4, J4 |
| 1 | Conn_01x12 | Connector_PinHeader_2.00mm:PinHeader_1x12_P2.00mm_Vertical | J5 |
| 1 | EXPANSION_PORT | Connector_IDC:IDC-Header_2x17_P2.54mm_Vertical | J25 |
| 1 | LED chartreuse 1.8-2V, 20mA | LED_THT:LED_D3.0mm | taptempo_led1 |
| 1 | R 75ohm | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1 |
| 1 | RASPBERRY_PI_4B_4GB | Library:MODULE_RASPBERRY_PI_4B_4GB | RASPBERRY PI 4 |
| 1 | RPi_GPIO | Connector_IDC:IDC-Header_2x20_P2.54mm_Vertical | J1 |
| 1 | TEENSY_4.1 | TEENSY_4.1:TEENSY41 | IC1 |
| 1 | Val** | Silkscreen:TestSilkscreen | Ref** |
| 1 | btn_delay_taptempo | Library:arcade_service_button_leozor | SW7 |
| 1 | btn_sampler_stop | Library:arcade_service_button_leozor | SW11 |
| 1 | pot_bass_atk | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV27 |
| 1 | pot_bass_gain | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV30 |
| 1 | pot_bass_rel | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV28 |
| 1 | pot_bass_tresh | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV29 |
| 1 | pot_dly_fbk | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV49 |
| 1 | pot_dly_highcut_freq | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV54 |
| 1 | pot_dly_highcut_res | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV53 |
| 1 | pot_dly_level | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV57 |
| 1 | pot_dly_lfo_depth | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV39 |
| 1 | pot_dly_lfo_rate | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV47 |
| 1 | pot_dly_lowcut_freq | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV52 |
| 1 | pot_dly_lowcut_res | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV51 |
| 1 | pot_dly_noise | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV56 |
| 1 | pot_dly_sample_rate | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV50 |
| 1 | pot_dly_stereo | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV55 |
| 1 | pot_dly_time | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV48 |
| 1 | pot_eq1_freq | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV6 |
| 1 | pot_eq1_gain | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV7 |
| 1 | pot_eq1_q | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV8 |
| 1 | pot_eq2_freq | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV9 |
| 1 | pot_eq2_gain | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV10 |
| 1 | pot_eq2_q | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV11 |
| 1 | pot_grain_fbk | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV63 |
| 1 | pot_grain_fine | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV59 |
| 1 | pot_grain_highcut | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV65 |
| 1 | pot_grain_level | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV66 |
| 1 | pot_grain_pitch | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV58 |
| 1 | pot_grain_shimmer | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV64 |
| 1 | pot_grain_size | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV60 |
| 1 | pot_grain_stretch | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV62 |
| 1 | pot_grain_texture | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV61 |
| 1 | pot_high_atk | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV35 |
| 1 | pot_high_gain | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV38 |
| 1 | pot_high_rel | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV36 |
| 1 | pot_high_tresh | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV37 |
| 1 | pot_in1_auxsend | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV17 |
| 1 | pot_in1_delay | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV13 |
| 1 | pot_in1_gain | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV12 |
| 1 | pot_in1_grain | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV14 |
| 1 | pot_in1_reverb | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV16 |
| 1 | pot_in1_subroar | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV15 |
| 1 | pot_in2_delay | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV19 |
| 1 | pot_in2_gain | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV18 |
| 1 | pot_in2_grain | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV20 |
| 1 | pot_in2_reverb | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV22 |
| 1 | pot_in2_subroar | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV21 |
| 1 | pot_mid_atk | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV31 |
| 1 | pot_mid_gain | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV34 |
| 1 | pot_mid_rel | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV32 |
| 1 | pot_mid_tresh | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV33 |
| 1 | pot_roar_decay | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV74 |
| 1 | pot_roar_emph_freq | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV70 |
| 1 | pot_roar_emph_gain | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV71 |
| 1 | pot_roar_fold | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV69 |
| 1 | pot_roar_in_gain | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV67 |
| 1 | pot_roar_level | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV75 |
| 1 | pot_roar_lp_freq | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV68 |
| 1 | pot_roar_roomsize | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV73 |
| 1 | pot_roar_verb_mix | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV72 |
| 1 | pot_sample_delay | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV3 |
| 1 | pot_sample_grain | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV4 |
| 1 | pot_sample_level | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV5 |
| 1 | pot_sample_reverb | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV2 |
| 1 | pot_sample_speed | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV1 |
| 1 | pot_sub_atk | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV23 |
| 1 | pot_sub_gain | Potentiometer_THT:Potentiometer_Alps_RK09K_Single_Vertical | RV26 |
The 93 most common of 115 parts.
Questions
How big is the Troublemaker PCB?
It measures 419 × 394 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Troublemaker use?
115 parts, built around the TEENSY 4.1 and CD74HC4067M. 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 Troublemaker KiCad files?
From the LeoFabre/project-troublemaker repository on GitHub, at the commit this page was made from: the board is pcb/troublemaker/troublemaker.kicad_pcb and its schematic pcb/troublemaker/troublemaker.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Troublemaker design in my own project?
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers312 × 140 mm

- 2 layers150 × 260 mm

Kicad control board
vglarra/jaiba-kikad-control
KiCad pcbnew scripts for the Jaiba hexa-drum's sensor boards and 3-Teensy master board (velostat + piezo channels, UI Teensy w/ TFT).
281 parts - 4 layers101.8 × 81 mm

ASME UM Control Board
umasme/2025-2026
University of Miami ASME Official Repository for NASA Lunabotics Challenge
48 parts2MIT - 2 layers422.4 × 118.2 mm

MidiMood (tht)
silveirago/MidiMood
This repository contains the code for a custom MIDI controller project called MidiMood, built using an ATmega32U4 microcontroller (or similar).
53 parts82 - 2 layers248.9 × 120.7 mm

16nx
16n-faderbank/16nx
16nx is a controller for musical instruments. Sixteen faders,MIDI over USB and jack, CV out, and I2C out. Based around RP2040.
171 parts76 - 4 layers100 × 100 mm

OPDM
brenonsantos/OpenPDM
OpenPDM is an open-source programable Power Distribution Module for your car
156 parts75MIT - 2 layers215.9 × 101.6 mm

- 2 layers152.4 × 95.3 mm


