

KiCad - MIDI controller
A DIY project for a MIDI controller designed to control lights, featuring knobs, faders, and buttons.
- Size
- 241 × 107.8 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 73
- Nets
- 92
- Pads
- 340
- Tracks, vias
- 1,876, 286
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 8 Sep 2026
- Updated
- 3 Nov 2026
Overview
KiCad - MIDI controller is an open-source printed circuit board by GLOXIOU, from the GLOXIOU/MIDI-controller-DIY repository on GitHub. It is a 2-layer board of 241 × 107.8 mm with 73 parts on 92 nets, routed with 1,876 tracks and 286 vias.
Its parts include 23 switches, 20 diodes and 3 ICs. It belongs with the audio and music boards and the ESP32 boards of this library.
README
README.mdMIDI-controller-DIY
A DIY project for a MIDI controller designed to control lights, featuring knobs, faders, and buttons.
The project is designed to manage stage lighting systems with up to 10 faders, including a master one, 20 keyboard keys, 10 potards, and 3 rotary encoders.
The goal is to not pay hundreds of dollars for an already existing product, and learn! MIDI controller DIY is also intended to be a hardware platform for a future open-source lighting-control system.
Features
- 20 usable keyboard keys
- 10 faders
- 10 potards
- 3 rotary encoders
- USB-C Output
- Compatibility with all lighting control systems via MIDI
- You can also use it as an instrument or anything else
- Compact and portable design
- Designed for DIY assembly and reproduction
- Low-cost hardware
And the design is made to be upgradable/updatable easily if necessary, so it will be able to last over time.
Architecture
The ESP32-S3 is the central processor of the system. It handles USB-C communication and MIDI processing. To connect the ESP32 with all of the 43 components, there are 2 MUX units at the right of the box. 43 buttons, faders, etc., are fully customizable and you can use them as you want.
Hardware and BOM
The current design uses the following main components:
| Component | Quantity | Price |
|---|---|---|
| Kailh Choc V1 1350 | 20 | 9.86$ |
| RV09 B10K 9 mm vertical | 10 | 7.90$ |
| EC11 through-hole with push-button, 20 mm shaft | 3 | 5.36$ |
| CD4067BE in DIP-24 | 2 | 6.69$ |
| 1N4148 diodes | 20 | 1.64$ |
| faders SC6021N 10k | 10 | 9$ |
| ESP32-S3 N16R8 | 1 | 8.02$ |
| Knobs cap | 10 | 2.68$ |
| PCB | 1 | 16,60$ |
| Lowprofile keycaps | 20 | 17.34$ |
| Total | --- | 85.09$ |
The complete component list is available in BOM.csv.
Processing and memory
I selected the ESP32-S3 because the project requires a bit of processing power for MIDI handling, though not a huge amount. That’s why it’s better suited for the task than a Raspberry Pi.
It is responsible for:
- MIDI processing
- USB-C Output
- 43 component inputs
All the data, saves, and other settings are stored in the internal storage system of the ESP32.
MIDI
The MIDI controller is designed to support lighting control software like grandMA onPC, QLC+, or others via standard MIDI remote commands.
Each hardware input reads multiple analog faders, push buttons, and encoders through multiplexers or direct GPIO pins on the ESP32.
Standard USB-MIDI and serial communication protocols are used, handled by the hardware USB/UART interfaces on the microcontroller.
The MIDI data rate operates at standard MIDI baud rates or high-speed USB-MIDI.
For example, moving a physical fader transmits a Control Change (CC) message to precisely control lighting playback levels in software.
Components and enclosure
There is a PCB in this project because it's required. Here are all the components included:
- ESP32-S3 x1
- MUX CD4067BE in DIP-24 x2
- Kailh Choc V1 1350 x20
- RV09 B10K 9 mm vertical x10
- EC11 through-hole with push-button x3
- faders SC6021N B10K x10
Here's a screenshot of the PCB with some of the components:

The PCB file is here. And you can modify it using KiCad with this folder.
The case is 283mm x 250mm x 60mm, and is designed to perfectly house all components, be easy to install, not take up much space, and be durable.
Here's a look at it:



Assembly file: assembly-Midi-controller-DIY.step
Print file: to print
Estimated cost
The current estimate is $85.09 of components. This does not include assembly, enclosure parts, future design changes, or the print filament that I already have.
Project journal
The development process is documented in JOURNAL.md.
It includes in-depth design, configuration, part of the code, enclosure design, BOM creation, and the problems encountered during development.
Inspiration and credits
The MIDI Controller DIY project was inspired by the GrandMa Wing.
The MIDI Controller DIY is an independent design developed from this inspiration.
Credits:
- GrandMa Wing — inspiration for the project concept and overall goal of creating an affordable MIDI interface.
- GrabCAD community — some 3D component models were used as reference geometry for the CAD assembly. The original authors retain ownership of their respective models:
- ESP32-S3
- MUX CD4067BE in DIP-24
- Kailh Choc V1 1350
- RV09 B10K 9 mm vertical
- EC11 through-hole with push-button
- faders SC1009G B10K
Parts
73| Qty | Value | Footprint | References |
|---|---|---|---|
| 20 | 1N4148 | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D1, D2, D3, D4, D5, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20 +4 |
| 20 | Kailh Choc V1 | MIDI-controller:SW_Kailh_Choc_V1_1.00u | SW1, SW2, SW3, SW4, SW5, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20 +4 |
| 10 | RV09 10k | Potentiometer_THT:Potentiometer_Bourns_PTV09A-1_Single_Vertical | RV11, RV12, RV13, RV14, RV15, RV16, RV17, RV18, RV19, RV20 |
| 10 | SC1009G 10k | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | RV1, RV2, RV3, RV4, RV5, RV6, RV7, RV8, RV9, RV10 |
| 7 | M3 | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4, H5, H6, H7 |
| 3 | EC11 (THT, switch) | Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW21, SW22, SW23 |
| 2 | CD4067BE | Package_DIP:DIP-24_W15.24mm | U2, U3 |
| 1 | ESP32-S3 DevKit N16R8 | MIDI-controller:ESP32-S3-DevKitC-1_44P_W25.4mm | U1 |
Questions
How big is the KiCad - MIDI controller PCB?
It measures 241 × 107.8 mm and has 2 copper layers, 1.6 mm thick.
What parts does the KiCad - MIDI controller use?
73 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 KiCad - MIDI controller KiCad files?
From the GLOXIOU/MIDI-controller-DIY repository on GitHub, at the commit this page was made from: the board is KiCad - MIDI-controller/KiCad - MIDI-controller.kicad_pcb and its schematic KiCad - MIDI-controller/KiCad - MIDI-controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the KiCad - MIDI controller design in my own project?
Its repository states no licence, so its author keeps all rights: ask GLOXIOU before reusing the design.
Similar boards
- 2 layers131.2 × 132.5 mm

- 2 layers76 × 112 mm

- 2 layers152.9 × 58.6 mm

Mini sequencer
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
73 parts915 - 2 layers128.6 × 74.2 mm

- 2 layers84 × 75 mm

- 2 layers62 × 60.5 mm

Chiller control
eddyem/stm32samples
Code samples and ready projects based on bare-metal STM32
73 parts208 - 2 layers247.7 × 105.6 mm

- 2 layers157 × 90 mm
