Skip to the content
4 layers123.8 × 362.3 mmMidi controller, the printed circuit board in 3D

lighting focused midi controller

Size
123.8 × 362.3 mm
Copper layers
4
Thickness
1.6 mm
Parts
516
Nets
682
Pads
2,254
Tracks, vias
482, 59
Pours
60
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
8 Jul 2024
Updated
31 Jan 2025

Overview

Midi controller is an open-source printed circuit board by Tommie1236, from the Tommie1236/midi-controller repository on GitHub, published under the CERN-OHL-W-2.0 licence. It is a 4-layer board of 123.8 × 362.3 mm with 516 parts on 682 nets, routed with 482 tracks and 59 vias.

It is built around the RP2040, ESP32-WROOM-32U and TLC59282DBQ, with the DRV8871DDA, DRV8210DRL and MCP3008-I/P among its other parts. Its parts include 180 diodes, 99 capacitors, 74 switches, 62 resistors and 46 ICs. It belongs with the audio and music and lEDs and displays boards and the ESP32 and RP2040 boards of this library.

Main components

12

README

README.md

Build firmware Build fader-wing

huge thanks to the amazing rp2040 skeleton project. it helped immensly setting up this project. i probably couldn't have done it without

<still need good name :)>

A lighting focused midi controller

Why?

I started this project as i wanted phisical controls to go with the mydmx3 dmx controller software.
Mydmx3 practicly only support midi as data in/out next to dmx out. So a midi controller it is.
There are more than enough midi controllers on the market but almost all of them are audio focused in the controls. I couldn't really vind any that i would like for controlling lighting. So i decided to design and build my own.

Requirements

I set a couple of requirements that i definetly wanted in my controler. As following:

Controls:
  • motorized faders. Mostly for dimming controls, enough in the playback section and 1 as Master.
    I chose motorized so they could sync with the controlling software if the value changes and for for example if you were to switch banks to a new set of controls. (mydmx doesn't support that but i wanted to design my controller to work with almost anything.)

  • Buttons. for playbacks/executors en general control, a whole lot.
    Of Course. what would a controller be without a lot of buttons. I also want them to have black with transparent text keycaps and rgb leds below to show the status of the button.

  • Encoders. Mostly speed control but could also be dimmer, at least 1 per "channel"/collumn and a couple spare. I wanted some encoders to be able to change the speed of scene/cue playbacks. But also for for example a dimmer channel dat isn't changed often but often enough to have phisical controls for.

  • Small Displays/Scribble Strips. channel/collumn names, one per channel/collumn.
    To show what cue/scene was mapped to that channel/collumn. If i implement bank switching inside the controller (as mydmx doesn't support like anything. only the most basic midi triggering) i want to see what cue i have mapped on that fader/buttons. And maybe also to show the fader/encoder value when changing. For if you want it to a specific value and the visual position isn't enough.

  • Keypad. just one, numbers 0-9 + some modifiers.
    Should speak for itself. just general number inputs and modifiers.

  • "Master" Display. (relatively) big display, just one.
    A around 3a4" touch display for configuration of the controller and general info. Main controls for anything happening inside the controller.

  • Leds. A lot. most RGB some just Amber.
    I want all the buttons to have a seperate controllable RGB led to show the buttons status. and about 16 mono Amber leds around the encoders to show their value.

Conectivity:
  • usb midi. one usb-B port. To connect to a pc running for example mydmx.

  • hardware midi. 2 or 3 din-5 ports. To connect to other midi gear or any controller that has hardware midi ports on it. Should have the same data as the usb midi port

  • External Switch Ports. 2a3 x 1/4" jack. To connect external footswitches or pedals. should support normal on/off footswitches and maybe one or 2 can have analog value support.

  • Desk Light. xlr-4?. A xlr connector that support a lot of desk lights. preferably xlr-4 so it isn't confused with audio or dmx signals. Sadly there isn't a standard for desk ligths as far as i can find.

  • Powercon Socket. Blue one. maybe also power out.
    Of cource. It needs some power to run. prefereably powercon (true1??) but a C14 socket would also work.
    with the motor faders and a lot of leds. Usb supplied power wont be enough.

And here are some features i want to support but arent required for the mvp:
  • USB Hub. Probably USB-A sockets.
    To connect more devices downstream from the controller

  • RTP MIDI. Wifi/Ethernet
    Using a ESP32 or similar to handle the network stack and enable the controller to communicate either wireless or via a ethernet cable.
    Adding to the already available midi connection options of USB-MIDI and hardware-MIDI

  • Web Server.
    Maybe a configuration webserver as the display will be quite small. would also run on the ESP32 that handels the network.
    it connects to the main rp2040 using uart.

Parts

516
QtyValueFootprintReferences
170LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD4000, D4001, D4002, D4003, D4004, D4005, D4006, D4007, D4008, D4009, D4010, D4011, D4012, D4013, D4014, D4015 +154
63SW_SPSTButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PlateSW300, SW301, SW302, SW303, SW304, SW410, SW411, SW412, SW413, SW414, SW415, SW416, SW417, SW418, SW419, SW501 +47
53100nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC102, C103, C104, C105, C106, C107, C109, C110, C114, C116, C119, C120, C121, C122, C123, C124 +37
311uCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC101, C108, C115, C117, C118, C129, C305, C312, C313, C315, C317, C321, C323, C325, C327, C334 +15
102K5Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR401, R402, R403, R404, R405, R406, R407, R408, R409, R410
10LS30personal:SOIC-8_3.9x4.9mm_P1.27mmU404, U405, U406, U407, U408, U409, U410, U411, U412, U413
10RotaryEncoder_Switchpersonal:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW400, SW401, SW402, SW403, SW404, SW405, SW406, SW407, SW408, SW409
10TLC59282Package_SO:SSOP-24_3.9x8.7mm_P0.635mmU414, U415, U416, U417, U418, U419, U420, U421, U422, U423
910KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR101, R304, R310, R311, R312, R313, R314, R506, R507
94K7Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR305, R306, R307, R308, R309, R501, R502, R503, R504
8Conn_01x04_SocketConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ504, J505, J506, J507, J508, J509, J510, J511
710Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR203, R205, R316, R317, R318, R319, R320
61K@100MHzInductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolderFB201, FB202, FB203, FB204, FB205, FB206
627pCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC111, C112, C127, C128, C338, C339
63v6Diode_SMD:D_SOD-523D104, D105, D106, D107, D108, D109
6Conn_01x06_SocketConnector_JST:JST_XH_B6B-XH-A_1x06_P2.50mm_VerticalJ302, J303, J307, J308, J311, J312
6RSA0N11M9A0Jpersonal:RSA0N11M9A0JMF301, MF302, MF303, MF304, MF305, MF501
51.05'_120x240_spi_screenpersonal:1.05' 120x240 spi screenDS301, DS302, DS303, DS304, DS305
5100KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR109, R110, R113, R114, R115
51KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR104, R107, R112, R301, R303
580KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR321, R322, R323, R324, R325
5DRV8871DDAPackage_SO:Texas_HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.95x4.9mm_Mask2.4x3.1mm_ThermalViasU308, U309, U310, U311, U312
5MCP23S17_SOPackage_SO:SOIC-28W_7.5x17.9mm_P1.27mmU104, U307, U401, U402, U403
3100nfCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC201, C202, C203
35v5Diode_SMD:D_0201_0603Metric_Pad0.64x0.40mm_HandSolderD101, D102, D103
3Conn_01x05_SocketConnector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_VerticalJ309, J310, J503
3Conn_02x03_Counter_ClockwiseConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ101, J104, J301
3DIN-5_180degreepersonal:DIN5-180J202, J203, J204
2100uCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC319, C506
210ufCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC301, C401
212MhzCrystal:Crystal_SMD_HC49-SDX101, X301
227Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR102, R103
22u2Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC113, C336
233Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR202, R204
2AT25SF081-SSHD-XPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU102, U302
2AudioJack2Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ205, J206
2Conn_01x07_SocketConnector_JST:JST_XH_B7B-XH-A_1x07_P2.50mm_VerticalJ102, J201
2LM4040D33Package_TO_SOT_SMD:SOT-23U103, U305
2NFITResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR105, R302
2RResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR106, R315
2RP2040Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mmU101, U301
11.05" 130*240 spi screenpersonal:1.05' 120z240 spi screenDS501
110kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR108
112KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR111
11N914Diode_SMD:D_SOD-523D201
1220Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR206
124LC02Package_SO:SOP-8_3.9x4.9mm_P1.27mmU107
124MhzCrystal:Crystal_SMD_HC49-SDX201
1470Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR201
1AudioJack3Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ207
1Conn_01x02_SocketConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ502
1Conn_01x06_SocketConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ103
1DRV8210personal:SOT-6U503
1ESP32-WROOM-32URF_Module:ESP32-WROOM-32UU105
1H11L1Package_DIP:DIP-6_W7.62mmU201
1MCP3008Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU304
1MTCH102Package_SO:MSOP-8_3x3mm_P0.65mmU502
1MTCH105Package_SO:TSSOP-14_4.4x5mm_P0.65mmU303
1PCA9635Package_SO:TSSOP-28_4.4x9.7mm_P0.65mmU306
1R_PotentiometerPotentiometer_SMD:Potentiometer_Bourns_TC33X_VerticalRV301
1SW_SPSTButton_Switch_Keyboard:SW_Cherry_MX_2.00u_Vertical_PlateSW520
1SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mmJP101
1TCA8418Package_DFN_QFN:WQFN-24-1EP_4x4mm_P0.5mm_EP2.45x2.45mmU501
1USB2514B_BiPackage_DFN_QFN:QFN-36-1EP_6x6mm_P0.5mm_EP4.1x4.1mmU106
1USB_A_Stackedpersonal:USB1035_USB-A2_STACKEDJ105
1USB_BConnector_USB:USB_B_OST_USB-B1HSxx_HorizontalJ106

More from Tommie1236/midi-controller

3
  • 2 layers160.5 × 288 mmFaders, the printed circuit board in 3D

    Faders

    Tommie1236/midi-controller

    lighting focused midi controller

    348 parts2CERN-OHL-W-2.0
  • 2 layers250 × 189 mmKeypad, the printed circuit board in 3D

    Keypad

    Tommie1236/midi-controller

    lighting focused midi controller

    76 parts2CERN-OHL-W-2.0
  • 2 layers80 × 42.1 mmMIDI, the printed circuit board in 3D

    MIDI

    Tommie1236/midi-controller

    lighting focused midi controller

    24 parts2CERN-OHL-W-2.0

Similar boards

  • 2 layers99.4 × 38.6 mmSlider driver, the printed circuit board in 3D

    Slider driver

    mage0r/RSA0N11M9A0J_motorised_slider

    This is a H-bridge driver board for the RSA0N11M9A0J motorised Slider. It uses a L9110 and capacitive sensor.

    38 parts7
  • 4 layers165.1 × 76.2 mmLED Badge, the printed circuit board in 3D

    LED Badge

    mjbella/LED_Badge

    RGB LED Badge Prototype

    400 parts1
  • 2 layers98.4 × 98.4 mmRpi platform r1, the printed circuit board in 3D

    Rpi platform r1

    65roadster/TinyBench-Pico

    A Raspberry Pi Pico Breakout Board with Dual Channel DAC

    55 parts
  • 4 layers160 × 160 mmDAQCard2015, the printed circuit board in 3D

    DAQCard2015

    frmeier/VFPIX-telescope-PCB

    Repository for DTB used in the PSI pixel telescope and VFPIX project

    232 parts
  • 2 layers316 × 222 mmRunning digit, the printed circuit board in 3D

    Running digit

    sburgic/poc-and-obsolete

    Proof of concepts and old (obsolete) projects

    90 parts
  • 2 layers43.9 × 24.3 mmVlvts, the printed circuit board in 3D

    Vlvts

    hubertmis/zathome

    Smart home embedded devices based on Zephyr OS

    34 parts5
  • 4 layers37.2 × 26 mmIEMU Vib Eval, the printed circuit board in 3D

    IEMU Vib Eval

    ponderononon/IEMU_DevBoards

    Kicad Schematic Files for the BASE and SENSOR Development Boards (Layout in Progress)

    11 parts

Questions

How big is the Midi controller PCB?

It measures 123.8 × 362.3 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Midi controller use?

516 parts, built around the RP2040, ESP32-WROOM-32U, TLC59282DBQ and DRV8871DDA. 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 Midi controller KiCad files?

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

Can I use the Midi controller design in my own project?

Its repository publishes it under the CERN-OHL-W-2.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).