Skip to the content
PCBKitNew board
2 layers30 × 90 mmTechWaveAudio MidiController, the printed circuit board in 3D

TechWave Audio Midi Controller Module

Size
30 × 90 mm
Copper layers
2
Thickness
1.6 mm
Parts
41
Nets
40
Pads
152
Tracks, vias
232, 19
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
18 Jun 2026
Updated
7 Sep 2026

Overview

TechWaveAudio MidiController is an open-source printed circuit board by TechWave-Audio, from the TechWave-Audio/TechWaveAudio-MidiControllerModule repository on GitHub, published under the BSD-3-Clause licence. It is a 2-layer board of 30 × 90 mm with 41 parts on 40 nets, routed with 232 tracks and 19 vias.

Its parts include 23 resistors, 10 connectors, 3 diodes, 2 ICs and 1 switch. It belongs with the audio and music boards of this library.

README

README.md

TechWave Audio MIDI to CV Module : MCM-100

A monophonic MIDI controller Eurorack module using the Raspberry Pi Pico (RP2040).

Brought to you by TechWave Audio

TechWave Audio Midi Controller Module

Features

  • Single or omni MIDI channel input
  • MIDI input via class-compliant USB-C or standard 5-pin MIDI cable
  • Four CV outputs for note (1v/oct), Velocity, assignable Out 1 and Out 2
    • 1v/octave through 10 octaves (at 0 to +10v), or 5 octaves (at 0 to +5v)
    • Two CV outputs with flexible routing
    • All CV outputs voltage selectable from 0v to +10v or 0 to +5v
  • Expandable with additional four flexible-routed CV outputs.
  • Gate, trigger, and clock full 0 to +5v outputs with divisible clock sync ticks
  • Selectable note priority (last, highest, lowest)
  • Tuneable pitch and velocity adjust
  • Customizable trigger output duration pulse width
  • Pitch bend response range from 0 to 5 octaves
  • Real time display of note and output states
  • Settings persist to on-board flash ROM
  • 6hp wide, 3U height
  • Max Power Draw:
    • +12v: 72mA (80mA with expansion)
    • -12v: 15mA (20mA with expansion)
    • +5v: 0mA

Help support our work!


Responds to the following MIDI messages:

  • Note on / off: sends/stops the note and velocity outputs.
    • Sends a trigger pulse on note on, and turns on the gate for the duration of the note.
    • For +10v output, responds to C-1 (note number 0) to B9 (note number 119).
    • For +5v output, responds to C2 (middle-C, note number 36) to B6 (note number 95).
  • Volume: increases or decreases the velocity output.
  • Pitch bend: modifies any currently playing note. Adjustable range from 0 to 5 octaves.
  • Sustain: holds a note on while the sustain is active.
  • Aftertouch: selectable as an aux and/or control output.
  • Expression: selectable as an aux and/or control output.
  • Mod wheel: selectable as an aux and/or control output.
  • Effect 1: selectable as an aux and/or control output.
  • Effect 2: selectable as an aux and/or control output.
  • Start and Continue sequence: selectable as an aux and/or control output.
  • Stop sequence: selectable as an aux and/or control output.
  • Mute (all notes off): clears any note, velocity, and gate outputs.
  • Clock tick: MIDI clock ticks are sent directly to the Clock output and can be routed as an aux and/or control output.
  • Reset: reset the MIDI input messaging queue and stops any output.

Inputs

  • MIDI in: single channel or respond to all channels (omni)
    • Both MIDI via UART and class-compliant USB MIDI
  • Menu navigation: Rotary encoder with push switch

Outputs

  • Four CV outputs:
    • Note: 0 to 10v output (selectable to 0 to 5v) for CV with 1v per octave.
    • Velocity: 0 to 10v output (selectable to 0 to 5v) for velocity / volume
    • Out 1: customizable CV output (0v to +10v max, selectable to 0v to +5v)
    • Out 2: customizable CV output (0v to +10v max, selectable to 0v to +5v)
  • Trigger: single pulse when a note turns on, with customizable pulse on time (high / low level output)
  • Gate: signal goes high while a note is on (high / low level output)
  • Clock: 1ms pulse with each MIDI clock tick (high / low level output). Selectable to various clock divisions.

Using the MCM-100-EX Expansion Module, you can also add an additional four assignable CV outputs.


Power

This module requires a 10 pin (2x05 IDC connector) Eurorack power connection.

Be certain when you plug the connector in that the orientation is the correct way, with the -12v line (usually with the red stripe) on the left when looking at the rear of the module.


Usage

On startup, you should see the boot screen with the current version:

starting boot screen

The note and clock LEDs should turn on and off a few times before the dashboard screen is shown and the module is ready to be used.

The user manual can be found on the TechWave Audio website.

Dashboard

main dashboard display

The dashboard shows the status of the current MIDI channel that it is listening on, as well as various outputs:

  • The note and octave
  • vel: The current velocity (corresponding to 0v to +10/+5v)
  • o1: The current Out 1 value (corresponding to 0v to +10/+5v)
  • o2: The current Out 2 value (corresponding to 0v to +10/+5v)
  • Indicators for the state of the trigger, gate, and clock
dashboard with expansion

If the MCM-100-EX expansion module is attached, additionally it will show:

  • x1: The current Out X1 value (corresponding to 0v to +10/+5v)
  • x2: The current Out X2 value (corresponding to 0v to +10/+5v)
  • x3: The current Out X3 value (corresponding to 0v to +10/+5v)
  • x4: The current Out X4 value (corresponding to 0v to +10/+5v)

While using the module, you can turn the dashboard display on and off via the display settings menu. You can also adjust how often the display refreshes (set to a longer time if display events start to get dropped, shorter time for more frequent updates).

Settings Menu

There are numerous settings available from the settings menu. Pressing the encoder button on the dashboard display (regardless if the display is visible or not) will enter the menu. See the Menu System documentation for the menu system details.

Note: any settings are not persisted until you exit the menu back to the dashboard (with the exception of when resetting the settings to default).

Building the Firmware From Source

Prerequisites

  • Raspberry Pi Pico SDK
  • CMake
  • Your favourite C++ compiler
  • A compatible toolchain for building Pico firmware

Setup

  1. Initialize the Git submodules:
    1. run: git submodule init
    2. run: git submodule update
  2. Copy the .env.cmake.sample to .env.cmake
  3. Edit your .env.cmake for the following variables:
text
PICO_SDK_PATH {the path to the PICO_SDK directory)
PICO_TOOLCHAIN_PATH (path to the pico toolchain for your build machine)

# You should _not_ have to change the following
set(PICO_PLATFORM rp2040)
set(PICO_BOARD pico)

Build script

text
./build.sh

This will run the full clean and build.

The firmware file will be put in:

text
./dist/TechWaveAudio-MCM-v2.0.0.uf2

Firmware Updates

For this, you'll need a firmware release (or build your on locally), as well as a USB cable that has a micro-usb port on one end.

  1. Power off your rack.
  2. Remove the module from your rack but keep the module plugged in via the power cable.
  3. Download the desired firmware file version from the GitHub repository firmware release. You only need to download the file with the .uf2 extension.
  4. Plug your USB-C cable into the jack on the front of the module and the other end into the computer with the firmware.
  5. While holding down the small boot select (BOOTSEL) button on the board, power on the module. Keep holding the boot select button until the module appears on your computer. The on-board Raspberry Pi Pico board will appear as a mass storage device, usually named “RPI-RP2”
  6. Copy the downloaded firmware .uf2 file to the storage device. When complete, the module should reboot.
  7. Power off your rack again.
  8. Disconnect your USB cable from the module and your computer. Your computer may give you a warning about the device not being properly ejected. You can safely ignore this warning.
  9. Put the module back into your rack and power back on.

Note that any settings you many have modified will be reset to any default.

Design

Schematic, PCB, and hardware

See the hardware design documentation for information on the schematic and PCB design for the module.

Note - all files provided including KiCad designs and any gerber files are provided as-is and to be used at your own risk. TechWave Audio does not guarantee the accuracy or any correctness of these files. See the HW_LICENSE license file for more, specifically the section "6 DISCLAIMER AND LIABILITY".

Licensing

Software in this repository is licensed under the BSD-3 License. By using or contributing content to this repository you are agreeing to place your contributions under this license.

Hardware designs for this repository are licensed under the CERN-OHL-S (CERN Open Hardware License).

Parts of this repository may reference, depend on, or use compiled third party libraries. See NOTICE.txt for additional details.

Parts

41
QtyValueFootprintReferences
75.1kResistor_SMD:R_0402_1005MetricR4, R6, R7, R8, R9, R29, R30
41kPotentiometer_THT:Potentiometer_Bourns_3296X_HorizontalR1, R3, R34, R35
44.7kResistor_SMD:R_0402_1005MetricR2, R5, R31, R32
310kResistor_SMD:R_0402_1005MetricR10, R11, R12
31kResistor_SMD:R_0402_1005MetricR13, R16, R36
2330Resistor_SMD:R_0402_1005MetricR37, R38
2TL074Package_SO:SOIC-14_3.9x8.7mm_P1.27mmU1, U2
1AuxConnector_Audio:Audio_Jack_3.5mm_SameSky_SJ3-3505xJ2
1ClockLED_THT:LED_D3.0mmD10
1ClockConnector_Audio:Audio_Jack_3.5mm_SameSky_SJ3-3505xJ5
1ControlConnector_Audio:Audio_Jack_3.5mm_SameSky_SJ3-3505xJ3
1GateConnector_Audio:Audio_Jack_3.5mm_SameSky_SJ3-3505xJ4
1IO_EncClkNoteConnConnector_PinSocket_2.54mm:PinSocket_2x04_P2.54mm_VerticalJ9
1IO_GateClkTrgConnector_PinSocket_2.54mm:PinSocket_2x03_P2.54mm_VerticalJ19
1IO_OLED/DacOutConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ15
1MountingHoleMountingHole:MountingHole_3.2mm_M3H2
1NoteConnector_Audio:Audio_Jack_3.5mm_SameSky_SJ3-3505xJ14
1Note OnLED_THT:LED_D3.0mmD11
1PowerLED_THT:LED_D3.0mmD9
1RotaryEncoder_SwitchRotary_Encoder:Rotary_Encoder-PEC11-Breakout_BoardSW1
1SSD1306Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalOLED1
1TriggerConnector_Audio:Audio_Jack_3.5mm_SameSky_SJ3-3505xJ6
1VelocityConnector_Audio:Audio_Jack_3.5mm_SameSky_SJ3-3505xJ13

Questions

How big is the TechWaveAudio MidiController PCB?

It measures 30 × 90 mm and has 2 copper layers, 1.6 mm thick.

What parts does the TechWaveAudio MidiController use?

41 parts. 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 TechWaveAudio MidiController KiCad files?

From the TechWave-Audio/TechWaveAudio-MidiControllerModule repository on GitHub, at the commit this page was made from: the board is design/TechWaveAudio-MCM-100-PCB-IO/TechWaveAudio_MidiController.kicad_pcb and its schematic design/RotaryEncoderCarrierBoard/RotaryEncoderCarrierBoard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the TechWaveAudio MidiController design in my own project?

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

More from TechWave-Audio/TechWaveAudio-MidiControllerModule

3
  • 2 layers30 × 90 mmTechWaveAudio MCM-100-Main, the printed circuit board in 3D

    TechWaveAudio MCM-100-Main

    TechWave-Audio/TechWaveAudio-MidiControllerModule

    TechWave Audio Midi Controller Module

    50 parts4BSD-3-Clause
  • 2 layers10 × 110 mmTechWaveAudio MCM-100-EX, the printed circuit board in 3D

    TechWaveAudio MCM-100-EX

    TechWave-Audio/TechWaveAudio-MidiControllerModule

    TechWave Audio Midi Controller Module

    21 parts4BSD-3-Clause
  • 2 layers17.3 × 17.8 mmRotaryEncoderCarrierBoard, the printed circuit board in 3D

    RotaryEncoderCarrierBoard

    TechWave-Audio/TechWaveAudio-MidiControllerModule

    TechWave Audio Midi Controller Module

    2 parts4BSD-3-Clause

Similar boards

  • 2 layers70 × 35 mmTLF35584 breakout, the printed circuit board in 3D

    TLF35584 breakout

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    41 parts1.2k
  • 2 layers270 × 11 mmDaylight Disco, the printed circuit board in 3D

    Daylight Disco

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    41 parts1.1kGPL-3.0
  • 2 layers27.5 × 48.3 mmICE40DevBoard, the printed circuit board in 3D

    ICE40DevBoard

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    41 parts915
  • 2 layers45 × 25 mmEasy PD Sink, the printed circuit board in 3D

    Easy PD Sink

    openwch/ch32v003

    CH32V003 is an ultra-cheap RISC-V MCU with 2KB SRAM, 16KB flash, and up to 18 GPIOs that sells for under $0.10

    41 parts599
  • 2 layers97 × 78.5 mmDumbpad, the printed circuit board in 3D

    Dumbpad

    imchipwood/dumbpad

    Simple 4x4 numpad with rotary encoder. Powered by QMK via ATmega32u4 Pro Micro

    41 parts517GPL-2.0
  • 2 layers37 × 15 mmCanTactDist, the printed circuit board in 3D

    CanTactDist

    bondus/KlipperToolboard

    A 3D printer tool head controller board

    41 parts373GPL-3.0
  • 2 layers20.3 × 69.7 mmPG attiny404, the printed circuit board in 3D

    PG attiny404

    fabiansteiner/OpenValve

    3D-printable pinch valve for irrigation and sensor-driven liquid control.

    41 parts276CERN-OHL-S-2.0