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

TechWave Audio Midi Controller Module

Size
30 × 90 mm
Copper layers
2
Thickness
1.6 mm
Parts
50
Nets
58
Pads
184
Tracks, vias
272, 11
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
18 Jun 2026
Updated
7 Sep 2026

Overview

TechWaveAudio MCM-100-Main 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 50 parts on 58 nets, routed with 272 tracks and 11 vias.

It is built around the DAC7554IDGSR, L7805 and MMBT3904. Its parts include 17 resistors, 15 capacitors, 8 connectors, 5 diodes and 3 ICs. It belongs with the audio and music boards and the RP2350 boards of this library.

Main components

3

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

50
QtyValueFootprintReferences
6100nfCapacitor_SMD:C_0402_1005MetricC6, C7, C8, C9, C10, C21
610kResistor_SMD:R_0402_1005MetricR15, R17, R18, R19, R21, R40
510uFCapacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-CC1, C2, C3, C4, C5
4100kResistor_SMD:R_0402_1005MetricR20, R22, R23, R24
3D_SchottkyDiode_SMD:D_0805_2012MetricD1, D2, D4
210nfCapacitor_SMD:C_0402_1005MetricC12, C13
21N4148Diode_SMD:D_SOD-323D3, D8
24.7kResistor_SMD:R_0402_1005MetricR14, R16
110uFCapacitor_SMD:C_0805_2012MetricC11
11kResistor_SMD:R_0402_1005MetricR33
1220Resistor_SMD:R_0402_1005MetricR28
1330kResistor_SMD:R_0402_1005MetricR25
1330nfCapacitor_SMD:C_0402_1005MetricC14
147kResistor_SMD:R_0402_1005MetricR41
15.1kResistor_SMD:R_0402_1005MetricR39
16N137Package_DIP:DIP-8_W7.62mmU2
1DAC7554IDGSRPackage_SO:TSSOP-10_3x3mm_P0.5mmU3
1ExpansionConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ20
1L7805Package_TO_SOT_SMD:SOT-223-3_TabPin2U1
1MMBT3904Package_TO_SOT_SMD:SOT-23Q1
1Main_EncClkNoteConnConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ17
1Main_GateClkTrgConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ18
1Main_OLED/DacOutConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ16
1Midi Pins 5-4Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ10
1MountingHoleMountingHole:MountingHole_3.2mm_M3H1
1PiPico1Connector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_VerticalJ7
1PiPico2Connector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_VerticalJ12
1PowerBusConnector_IDC:IDC-Header_2x05_P2.54mm_VerticalJ1

More from TechWave-Audio/TechWaveAudio-MidiControllerModule

3
  • 2 layers30 × 90 mmTechWaveAudio MidiController, the printed circuit board in 3D

    TechWaveAudio MidiController

    TechWave-Audio/TechWaveAudio-MidiControllerModule

    TechWave Audio Midi Controller Module

    41 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 layers42 × 42 mmFsk oscillator, the printed circuit board in 3D

    Fsk oscillator

    swharden/QRSS-hardware

    A collection of resources related to QRSS hardware (TX and RX)

    40 parts10
  • 2 layers114 × 89 mmAyn-4b, the printed circuit board in 3D

    Ayn-4b

    afiskon/ayn-4b

    Portable QRP CW Transceiver

    278 parts7MIT
  • 2 layers100 × 90 mmAyn dc, the printed circuit board in 3D

    Ayn dc

    afiskon/ayn-dc

    DC QRP CW transceiver

    226 parts5MIT
  • 2 layers50 × 110 mmOgham merged v1.0, the printed circuit board in 3D

    Ogham merged v1.0

    keeos-io/ogham

    Ogham — a dual-voice bytebeat synthesizer for Eurorack. Firmware (MIT) and hardware (CC BY-SA 4.0).

    109 parts3
  • 2 layers121.5 × 115 mmIrrigationController, the printed circuit board in 3D

    IrrigationController

    alorcs/Irrigation-System-v2

    The external footprints used can be found in the Imports folder.

    115 partsApache-2.0
  • 2 layers117.2 × 110 mmHardware design, the printed circuit board in 3D

    Hardware design

    AudioMorphology/ParrotRev2

    Parrot is a 12hp Eurorack digital delay powered by a Raspberry Pi Pico microcontroller.

    96 partsGPL-3.0
  • 4 layers100.5 × 82.8 mmTssi rtml, the printed circuit board in 3D

    Tssi rtml

    broncoracing/tssi-rtml

    BR25e TSSI RTML board

    94 parts
  • 4 layers87.6 × 84 mmFlashover, the printed circuit board in 3D

    Flashover

    Cherry-Blossom-Development/GreywireStudio

    GreywireStudio - a combined software/hardware product

    95 parts

Questions

How big is the TechWaveAudio MCM-100-Main PCB?

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

What parts does the TechWaveAudio MCM-100-Main use?

50 parts, built around the DAC7554IDGSR, L7805 and MMBT3904. 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 MCM-100-Main 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-Main/TechWaveAudio-MCM-100-Main.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 MCM-100-Main 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).