

Midi controller
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
12RP2040
LQFN-56(7x7)12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)ESP32-WROOM-32U
SMD,19.2x18mm-40℃~+85℃ -97dBm 2.4GHz 20.5dBm 3V~3.6V Bluetooth4.2 ESP32-DOWD UART、SDIO、SPI、I2C、GPIO、PWM、ADC、DAC、CAN SMD,19.2x18mm WiFi Modules ROHSEspressif SystemsWiFi ModulesTLC59282DBQ
SSOP-24-150mil-40℃~+85℃ 16 17V 2% 35MHz 3V~5.5V 45mA Built-in SSOP-24-150mil LED Drivers ROHSTexas InstrumentsLED DriversDRV8871DDA
SO-8-EP-40℃~+125℃ 1 10uA 3.6A 565mΩ PWM Yes SO-8-EP Brushed DC Motor Drivers ROHSTexas InstrumentsStepper Motor DriverDRV8210DRL
SOT-563-40℃~+125℃ 0V~400mV 1.45V~5.5V 1.65V~11V 1.76A 950mΩ SOT-563 Relay / Coil Drivers ROHSTexas InstrumentsRelay / Coil DriversMCP3008-I/P
PDIP-16-40℃~+85℃ 1.35MHz~3.6MHz 10 1LSB 2.7V~5.5V 200kHz 5nA 61dB 8 Multiplexers SAR SPI Yes PDIP-16 Analog to Digital Converters (ADC) ROHSMicrochip TechnologyAnalog To Digital Converters (ADC)MTCH102-I/MS
MSOP-8-40℃~+85℃ 2 2.05V~3.6V Capacitive Touch MSOP-8 Touch Sensors ROHSMicrochip TechnologyTouch SensorsMTCH105-I/ST
TSSOP-14-40℃~+85℃ 2.05V~3.6V 5 Capacitive Touch TSSOP-14 Touch Sensors ROHSMicrochip TechnologyTouch SensorsPCA9635PW
TSSOP-28-40℃~+85℃ 100kHz~1MHz 16 2.3V~5.5V 25mA 5.5V Built-in PWM TSSOP-28 LED Drivers ROHSNXP SemiconductorsLED DriversLM4040D33FTA
SOT-23-40℃~+125℃@(Ta) 100ppm/℃ 15mA 3.3V 35uVrms 67uA 67uA Fixed Parallel ±1% SOT-23 Voltage Reference ROHSDiodes IncorporatedVoltage Reference24LC024/P
PDIP-81,000,000 cycles 2.5V~5.5V 200 Years 2Kbit 400kHz 5ms Hardware write protection function、Noise suppression function I2C PDIP-8 EEPROM ROHSMicrochip TechnologyEEPROMH11L1
DIP-6-55℃~+100℃ 1 1.6mA 1Mbit/s 250mW 3V~15V 5kV DC DIP-6 Logic Output Optoisolators ROHSEverlight ElectronicsLogic Output Optoisolators
README
README.mdhuge 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| Qty | Value | Footprint | References |
|---|---|---|---|
| 170 | LED | LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D4000, D4001, D4002, D4003, D4004, D4005, D4006, D4007, D4008, D4009, D4010, D4011, D4012, D4013, D4014, D4015 +154 |
| 63 | SW_SPST | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_Plate | SW300, SW301, SW302, SW303, SW304, SW410, SW411, SW412, SW413, SW414, SW415, SW416, SW417, SW418, SW419, SW501 +47 |
| 53 | 100n | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C102, C103, C104, C105, C106, C107, C109, C110, C114, C116, C119, C120, C121, C122, C123, C124 +37 |
| 31 | 1u | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C101, C108, C115, C117, C118, C129, C305, C312, C313, C315, C317, C321, C323, C325, C327, C334 +15 |
| 10 | 2K5 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R401, R402, R403, R404, R405, R406, R407, R408, R409, R410 |
| 10 | LS30 | personal:SOIC-8_3.9x4.9mm_P1.27mm | U404, U405, U406, U407, U408, U409, U410, U411, U412, U413 |
| 10 | RotaryEncoder_Switch | personal:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW400, SW401, SW402, SW403, SW404, SW405, SW406, SW407, SW408, SW409 |
| 10 | TLC59282 | Package_SO:SSOP-24_3.9x8.7mm_P0.635mm | U414, U415, U416, U417, U418, U419, U420, U421, U422, U423 |
| 9 | 10K | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R101, R304, R310, R311, R312, R313, R314, R506, R507 |
| 9 | 4K7 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R305, R306, R307, R308, R309, R501, R502, R503, R504 |
| 8 | Conn_01x04_Socket | Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J504, J505, J506, J507, J508, J509, J510, J511 |
| 7 | 10 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R203, R205, R316, R317, R318, R319, R320 |
| 6 | 1K@100MHz | Inductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolder | FB201, FB202, FB203, FB204, FB205, FB206 |
| 6 | 27p | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C111, C112, C127, C128, C338, C339 |
| 6 | 3v6 | Diode_SMD:D_SOD-523 | D104, D105, D106, D107, D108, D109 |
| 6 | Conn_01x06_Socket | Connector_JST:JST_XH_B6B-XH-A_1x06_P2.50mm_Vertical | J302, J303, J307, J308, J311, J312 |
| 6 | RSA0N11M9A0J | personal:RSA0N11M9A0J | MF301, MF302, MF303, MF304, MF305, MF501 |
| 5 | 1.05'_120x240_spi_screen | personal:1.05' 120x240 spi screen | DS301, DS302, DS303, DS304, DS305 |
| 5 | 100K | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R109, R110, R113, R114, R115 |
| 5 | 1K | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R104, R107, R112, R301, R303 |
| 5 | 80K | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R321, R322, R323, R324, R325 |
| 5 | DRV8871DDA | Package_SO:Texas_HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.95x4.9mm_Mask2.4x3.1mm_ThermalVias | U308, U309, U310, U311, U312 |
| 5 | MCP23S17_SO | Package_SO:SOIC-28W_7.5x17.9mm_P1.27mm | U104, U307, U401, U402, U403 |
| 3 | 100nf | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C201, C202, C203 |
| 3 | 5v5 | Diode_SMD:D_0201_0603Metric_Pad0.64x0.40mm_HandSolder | D101, D102, D103 |
| 3 | Conn_01x05_Socket | Connector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_Vertical | J309, J310, J503 |
| 3 | Conn_02x03_Counter_Clockwise | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | J101, J104, J301 |
| 3 | DIN-5_180degree | personal:DIN5-180 | J202, J203, J204 |
| 2 | 100u | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C319, C506 |
| 2 | 10uf | Capacitor_THT:CP_Radial_D5.0mm_P2.50mm | C301, C401 |
| 2 | 12Mhz | Crystal:Crystal_SMD_HC49-SD | X101, X301 |
| 2 | 27 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R102, R103 |
| 2 | 2u2 | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C113, C336 |
| 2 | 33 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R202, R204 |
| 2 | AT25SF081-SSHD-X | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U102, U302 |
| 2 | AudioJack2 | Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical | J205, J206 |
| 2 | Conn_01x07_Socket | Connector_JST:JST_XH_B7B-XH-A_1x07_P2.50mm_Vertical | J102, J201 |
| 2 | LM4040D33 | Package_TO_SOT_SMD:SOT-23 | U103, U305 |
| 2 | NFIT | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R105, R302 |
| 2 | R | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R106, R315 |
| 2 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U101, U301 |
| 1 | 1.05" 130*240 spi screen | personal:1.05' 120z240 spi screen | DS501 |
| 1 | 10k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R108 |
| 1 | 12K | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R111 |
| 1 | 1N914 | Diode_SMD:D_SOD-523 | D201 |
| 1 | 220 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R206 |
| 1 | 24LC02 | Package_SO:SOP-8_3.9x4.9mm_P1.27mm | U107 |
| 1 | 24Mhz | Crystal:Crystal_SMD_HC49-SD | X201 |
| 1 | 470 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R201 |
| 1 | AudioJack3 | Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical | J207 |
| 1 | Conn_01x02_Socket | Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J502 |
| 1 | Conn_01x06_Socket | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J103 |
| 1 | DRV8210 | personal:SOT-6 | U503 |
| 1 | ESP32-WROOM-32U | RF_Module:ESP32-WROOM-32U | U105 |
| 1 | H11L1 | Package_DIP:DIP-6_W7.62mm | U201 |
| 1 | MCP3008 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U304 |
| 1 | MTCH102 | Package_SO:MSOP-8_3x3mm_P0.65mm | U502 |
| 1 | MTCH105 | Package_SO:TSSOP-14_4.4x5mm_P0.65mm | U303 |
| 1 | PCA9635 | Package_SO:TSSOP-28_4.4x9.7mm_P0.65mm | U306 |
| 1 | R_Potentiometer | Potentiometer_SMD:Potentiometer_Bourns_TC33X_Vertical | RV301 |
| 1 | SW_SPST | Button_Switch_Keyboard:SW_Cherry_MX_2.00u_Vertical_Plate | SW520 |
| 1 | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP101 |
| 1 | TCA8418 | Package_DFN_QFN:WQFN-24-1EP_4x4mm_P0.5mm_EP2.45x2.45mm | U501 |
| 1 | USB2514B_Bi | Package_DFN_QFN:QFN-36-1EP_6x6mm_P0.5mm_EP4.1x4.1mm | U106 |
| 1 | USB_A_Stacked | personal:USB1035_USB-A2_STACKED | J105 |
| 1 | USB_B | Connector_USB:USB_B_OST_USB-B1HSxx_Horizontal | J106 |
More from Tommie1236/midi-controller
3Similar boards
- 2 layers99.4 × 38.6 mm

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 mm

- 2 layers98.4 × 98.4 mm

Rpi platform r1
65roadster/TinyBench-Pico
A Raspberry Pi Pico Breakout Board with Dual Channel DAC
55 parts - 4 layers160 × 160 mm

DAQCard2015
frmeier/VFPIX-telescope-PCB
Repository for DTB used in the PSI pixel telescope and VFPIX project
232 parts - 4 layers66.3 × 60.9 mm

- 2 layers316 × 222 mm

- 2 layers43.9 × 24.3 mm

- 4 layers37.2 × 26 mm

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).

