Skip to the content
PCBKitNew board
2 layers70 × 50 mmSimple midi controller, the printed circuit board in 3D

Simple midi controller

Tommie1236/simple-midi-controller

a simple 32 button midi controller with banks

Size
70 × 50 mm
Copper layers
2
Thickness
1.6 mm
Parts
14
Nets
41
Pads
86
Tracks, vias
165, 0
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
25 Dec 2024
Updated
30 Dec 2025

Overview

Simple midi controller is an open-source printed circuit board by Tommie1236, from the Tommie1236/simple-midi-controller repository on GitHub. It is a 2-layer board of 70 × 50 mm with 14 parts on 41 nets, routed with 165 tracks and 0 vias.

It is built around the MAX7219M. Its parts include 4 connectors, 2 capacitors, 2 ICs and 1 resistor. It belongs with the audio and music boards of this library.

Main components

1

README

README.md

Simple MIDI Controller

A simple 32-button MIDI controller with bank support, built around the RP2040 microcontroller (e.g., RP2040-Zero, but other RP2040 boards should work with appropriate pin changes). Designed for compatibility with any software that accepts USB MIDI input.

Features

32 configurable buttons Multiple banks for expanded control USB MIDI device class (works out-of-the-box with most DAWs and lighting control software) Example use: MyDMX, generic macropad for other MIDI-compatible software

Hardware

Primary target: RP2040-Zero Any RP2040-based board can be used (adjust pin mappings as needed) Wiring and assembly instructions: TODO!!

Software Dependencies

Raspberry Pi Pico SDK TinyUSB

Building and Flashing

Clone this repository and its dependencies. Build the firmware using the included build script in the root directory. Optionally use the -l flag to automaticly use picotool to load it to the device. Or reboot into bootsel mode and drag the compiled binary(.uf2) onto the usb mass storage device.

Usage

Once flashed, the controller will appear as a standard USB MIDI device. It should work with any MIDI-compatible software. Currently tested with MyDMX, but suitable for general MIDI macro control. Pin Configuration

Default pin mappings are defined in the code for RP2040-Zero. If you use a different RP2040 board, update the pin definitions as needed in the source files.

Roadmap

  • implement segment display
  • add banking support
  • add a menu for configuration?
  • Add full hardware assembly and wiring instructions
  • create pcb for easier replication without the big amount of soldering perfboard requires.
  • ^ also schematic?

Ai useage (hackclub Summer of Making)

I've used ai in this project. for example to create a base for this readme but i have also used some chatbots with high level debugging if i got stuck. I've also had copilot enable in vscode when i started the project. but i've since switched to neovim and didn't add any ai or lsp yet. so mostly just high level debugging and writing text. (I'm very bad at this as you can probably already see.) I really don't like using ai to generate code snippets. sometimes copilot is usefull when you need a lot of repeating code with just a simple parameter changing. But the rest of the time it is pretty useless imo and things like chatgpt/gemini make too many mistakes or inefficiencies to be usefull for snippets.

Parts

14
QtyValueFootprintReferences
4MountingHole_PadMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
2CCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC1, C2
1150Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1
1Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2
1Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ4
1Conn_02x06_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ3
1Conn_02x06_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_VerticalJ1
1MAX7219Package_DIP:DIP-24_W7.62mm_SocketU1
1~simple-midi-controller:RP2040-ZeroU2

The 13 most common of 14 parts.

Questions

How big is the Simple midi controller PCB?

It measures 70 × 50 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Simple midi controller use?

14 parts, built around the MAX7219M. 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 Simple midi controller KiCad files?

From the Tommie1236/simple-midi-controller repository on GitHub, at the commit this page was made from: the board is Kicad/simple-midi-controller.kicad_pcb and its schematic Kicad/simple-midi-controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Simple midi controller design in my own project?

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

Similar boards

  • 2 layers181 × 97 mmOpenDeck r3.1.2, the printed circuit board in 3D

    OpenDeck r3.1.2

    shanteacontrols/OpenDeck

    A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.

    262 parts960Apache-2.0
  • 2 layers482.6 × 35.6 mmPrecision clock, the printed circuit board in 3D

    Precision clock

    mitxela/PrecisionClock-Hardware

    PCB design for the Precision Clock Mk III

    49 parts41
  • 2 layers85.6 × 41 mmHl alyx glove, the printed circuit board in 3D

    Hl alyx glove

    StarGate01/hl-alyx-glove

    Firmware and Hardware for a Half-Life: Alyx Gravity Glove Replica

    38 parts21MIT
  • 2 layers542.3 × 27.3 mmGlowboardng, the printed circuit board in 3D

    Glowboardng

    Eigenbaukombinat/glowboard

    The Glowboard Plotter plots images using 64 UV LEDs attached in a line moved over a 120cmx60cm glow-in-the-dark sheet by a stepper.

    69 parts6
  • 2 layers70 × 50.1 mmDoom clock, the printed circuit board in 3D

    Doom clock

    stecman/avr-doomclock

    GPS clock on an ATTiny with MAX7219 7-segment driver

    24 parts5MIT
  • 2 layers91.4 × 119.4 mmPainel pcb1, the printed circuit board in 3D

    Painel pcb1

    ArqueologiaDigital/PatinhoFeio_Painel_KICAD

    63 parts4
  • 2 layers142.2 × 64.4 mmFcu mb, the printed circuit board in 3D

    Fcu mb

    VirtualGit/HomeCockpitA320

    A320 Home Cockpit project

    69 parts4