DIY MIDI Controller
Build your own CircuitPython powered MIDI controller! This "MIDI fighter"-like controller features 16 arcade buttons with built-in LEDs, an OLED screen and joystick. Play drums, synthesizers or anything MIDI related! All of the electronics are housed in a snap-fit 3D printed case.
Buttons and LEDs
The Raspberry Pi Pico has plenty of GPIO for connecting 4x4 buttons. The AW9525 GPIO expander / LED driver powers the LEDs and connects to the Raspberry Pi Pico over I2C.
The LEDs light up when the buttons are pressed and stay lit until released. Awesome!
Edit MIDI on the Fly
This MIDI controller's special sauce is the ability to change and save MIDI notes directly on the device. This allows quick MIDI notes remapping. Perfect for crafting your own kits and setups for performances.
The OLED screen shows the 16 buttons as little circles with numbers. The numbers are the MIDI notes assigned to each button. Use the joystick to select a button and edit the MIDI note. In edit mode, the button will blink the LED, letting you know it's been activated. While in edit mode, the buttons can be pressed to compare MIDI notes.
Lunchbox vibes? Yes! The handle is 3d printed, print-in-place, with no support material. Can you handle it? It also works great as a kickstand to prop up the case.
Take a moment to walk through the following guides:
Screws, nuts and standoffs used in this build.
- 4x M3 x 10mm long screws
USB Extension Cable
- 2x M3 x 10mm long screws
- 2x M3 locknuts
- 4x M2.5 x 12mm long screws
- 4x M2.5 nuts
5-way navigation PCB
- 2x M3 x 4mm long screws
- 4x M3 x 12mm long FF standoffs
- 4x M2.5 x 8mm long FF standoffs
- 4x M2 x 6mm long FF standoffs
- 8x M3 x 6mm long screws
- 8x M2.5 x 4mm long screws
- 8x M2 x 4mm long screws