Inspired by the infamous Guitar Hero controller, this project shapes a MIDI controller into a 3D printed guitar. Featuring 12x Cherry MX switches in the neck, this gives you a tactile "hands-on" feeling that is satisfying. The whammy bar lets you pitch bend, making it feel like an electric guitar. It also features a strumming mode so you can power through chords and notes, giving you a playing style unlike typical MIDI controllers. Using an accelerometer, you can move the guitar to adjust modulation giving you an expressive playing style.

This project is coded in CircuitPython and uses the USB MIDI library. It features velocity, modulation, pitch bending and notes on/off. It features 8 different sets of notes for playing different octaves or sets of notes to craft your own chords. Two switches allow you to enable different features such the strum mode, trigger mode and accelerometer mode. Two potentiometers lets you adjust velocity and modulation.

The parts are 3D printed without any support material. The top and bottom half of the guitar body snap fit together allowing you easy access to open and close. Parts are designed to print on most 3D printers with a build volume of 250x210x200mm. The parts and components are secured together with M3 hardware. The design files are open source, freely available to download. The CAD files feature a parametric assembly to easily add/mod to create custom controller.

MX switches are available in different types and styles. The color of the key stem is used to classify its characteristics. We choose to use speed silvers for their quiet presses and low actuation point.   

The head houses a strip of NeoPixels to diffuse a piece of black LED acrylic. The LEDs illuminate the panel making a neat lighting effect.


Parts Galore! 

There's a hand full of parts used in this project! If you have parts on-hand, be sure to scroll through the guide and look for anything that you may have on hand. Most of the panel mounted components feature standardized diameters. The mounting holes on the Grand Central M4 board are similar to the Arduino Mega.

Wires & Connections

Because of the amount of components, several dozens of connections will need to be made. By using pre-crimped wires with JST PH connectors, you'll make the assembly more manageable.

4 x 2-pin JST Female
JST PH cable
4 x 2-pin JST Male
JST PH Cable
3 x 3-pin JST Female
JST PH Cable
3 x 3-pin JST Male
JST PH Cable
4 x 4-pin JST Male
JST PH Cable
4 x 4-pin JST Female
JST PH Cable
1 x JST PH Kit
Assortment of JST PH Connectors
1 x 10-wire silicone ribbon cable
28AWG silicone cover stranded wire

Non-Adafruit Parts

These parts are used in the project but not sold in the Adafruit Online Shop.

12 x MX Switches
Cherry MX Speed Silver Keyswitch (10 Pack)
1 x Key Caps for MX Switches
Available in Black and different colors
1 x Whammy Bar
6mm Bar Arm for Electric Guitar
2 x Knobs for Potentiometer
GTE Knob - Small
1 x Knobs for Rotary Selector Switch
Black Knob - 15x19mm
1 x Extension Springs
Extension Spring Kit (6.35 x 22.2 mm)
1 x Black LED Acrylic
Precut Sheet – 114mm x 144mm

Hardware List

Guitar Body – Bottom Half

  • 16x M3 x 6mm pan head screws
  • 4x M3 x 8mm pan head screws
  • 4x M3 x 10mm pan head screws
  • 4x M3 x 16mm pan head screws
  • 20x M3 hex nuts
  • 4x M3 x 20mm standoffs
  • 1x Extension Spring (6.35 x 22.2 mm)

Guitar Body – Top Half

  • 7x M3 x 6mm pan head screws
  • 7x M3 hex nuts

Guitar Neck

  • 12x M2.5 hex nuts
  • 6x M2.5 x 8mm pan head screws
  • 2x M3 x 6mm pan head screws
  • 2x M3 hex nuts
1 x M2.5 Standoff Kit
Black Nylon screws standoffs and hex nuts
1 x M3 Standoff Kit
Brass screws standoffs and hex nuts

Author Credits

CAD by Noe Ruiz and Code by Liz Clark.

This guide was first published on Mar 18, 2020. It was last updated on 2023-12-05 11:34:47 -0500.

This page (Overview) was last updated on Feb 26, 2020.

Text editor powered by tinymce.