# 3D Printed Wireless MIDI Controller Guitar

## Overview

http://www.youtube.com/watch?v=2ZtLjv3K920

Rock out with your very own wireless Keytar, a bluetooth MIDI controller that works with any computer or tablet! Jam out with up to 12 buttons that can be customized to trigger sounds or effects.  
  
This project uses the E-Z Key bluefruit wireless controller from Adafruit. The guitar features 4 arcade buttons and 6 LED push buttons. The guitar can be used as a MIDI instrument, video game controller and even DJ controller. You can customize and configure your guitar to be whatever you want.  
  
The enclosure is 3D printed and you can download the design files from Thingiverse. This six-piece design is optimized for the MakerBot Replicator 2 build plate. Don't have a 3D printer? You can always fashion your own guitar from wood, plastic (or cardboard??)   
  
We're using 4 neo-pixels and a mic as a level meter so the LED's animate to the sound. The Flora micro-controller powers these components and uses a toggle switch and battery pack. The two back covers are designed to easily snap on and off to quickly get to the components.

## Build Time
This project requires 3D printing 4 large pieces, so it's going to take some time! The total minimum build time is about 2 days. The four parts will take about 16 hrs in total to 3D print. The most time consuming part is definitely the 3d printing. The most difficult part will be dependent on your skill level. The complete circuitry has about 77 solder points.  

## Prerequisite guides
[Bluefruit Introduction](http://learn.adafruit.com/introducing-bluefruit-ez-key-diy-bluetooth-hid-keyboard)  
[NeoPixel Überguide](http://learn.adafruit.com/adafruit-neopixel-uberguide "Link: http://learn.adafruit.com/adafruit-neopixel-uberguide")  
[LED Ampli Tie](http://learn.adafruit.com/led-ampli-tie/ "Link: http://learn.adafruit.com/led-ampli-tie/")  
![](https://cdn-learn.adafruit.com/assets/assets/000/011/803/medium800/3d_printing_finished-tar.jpg?1382468947)

# 3D Printed Wireless MIDI Controller Guitar

## Tools & Supplies

The EZ-Key MIDI Guitar has just under 20 electrical components. Utilizing the Bluefruit bluetooth module, you can configure up to 12 buttons.

![](https://cdn-learn.adafruit.com/assets/assets/000/011/808/medium800/3d_printing_parts.jpg?1382475031)

## Components

- 1x [Bluefruit EZ-Key](http://www.adafruit.com/products/1535)
- 1x [FLORA micro-controller](http://www.adafruit.com/products/659)
- 4x [Neo-Pixels (one pack comes with 4)  
](http://www.adafruit.com/products/1260 "Link: http://www.adafruit.com/products/1260")
- 4x [Shorty Arcade buttons](http://www.adafruit.com/index.php?main_page=adasearch&q=arcade+button)
- 6x [LED pushbuttons](http://www.adafruit.com/index.php?main_page=adasearch&q=led+button+momentary)
- 1x [AAA Battery pack](http://www.adafruit.com/products/727)
- 1x [Electret mic amp](http://www.adafruit.com/products/1063)
- 1x [Tactile On/Off Switch with leads](http://www.adafruit.com/products/1092 "Link: http://www.adafruit.com/products/1092")  

## Tools

- [3D Printer  
](http://www.adafruit.com/products/1292)
- [Soldering Iron](http://www.adafruit.com/index.php?main_page=adasearch&q=soldering+iron)
- [Needle nose pliers](http://www.adafruit.com/products/146 "Link: http://www.adafruit.com/products/146")
- [Small screw driver](http://www.adafruit.com/products/424)
- Circuit spatula
- X-Acto knife

## Supplies

- [Neodymium magnets](http://www.amazon.com/gp/product/B001KUWM3C/ref=oh_details_o01_s00_i00?ie=UTF8&psc=1 "Link: http://www.amazon.com/gp/product/B001KUWM3C/ref=oh\_details\_o01\_s00\_i00?ie=UTF8&psc=1") (6.5mm diameter)
- 4 pan phillip screws 4x3/8
- [Roll of thin wire (30 gauge)](http://www.adafruit.com/products/1446 "Link: http://www.adafruit.com/products/1446")
- [Roll of solder](http://www.adafruit.com/products/145 "Link: http://www.adafruit.com/products/145")

  
# 3D Printed Wireless MIDI Controller Guitar

## Customizing Design

## Customize Your MIDI Guitar

Before you print all of the pieces, you should consider customizing the design to fit your playing style. By default, the buttons on the base and neck are laid out for a left-handed player. You can customize the layout of the buttons by using most 3D modeling packages. In this tutorial, we will be using TinkerCad for an easy customization workflow.

[Get STL Files](http://www.thingiverse.com/thing:170252)
## TinkerCad Designs

- [Base Frame](https://tinkercad.com/things/dX7xWYITRXO-midi-base)
- [Neck Frame](https://tinkercad.com/things/119phpAqR3H-midi-neck)

**Make It Right Handed!**

You can modify the base design in Tinkercad. To make it right-handed, you will need to mirror the base. Under the Adjust top menu, select the "Mirror" function. Now click on the black arrow bar with arrows pointing to the left and right. Once pressed, you should see the model flip to the opposite direction. You only need to modify the base for making it right-handed. The neck is symmetrical but you can also modify those! You can export each file by selecting "Download for 3D Printing" under the Design menu item.

![](https://cdn-learn.adafruit.com/assets/assets/000/011/828/medium800/3d_printing_Screen_Shot_2013-10-22_at_9.23.56_PM.png?1382491489)

 **Modify those Buttons!**

You are free to use any type of buttons. By default, the buttons in the base are fitted for 30mm arcade buttons. The neck is fitted for 16mm buttons. Are the buttons to close or far apart for your fingers? Do you want more or less buttons? You can customize the position of the buttons with a little bit of effort! Import the blank neck frame and blank body frame STL files into Tinkercad using the import option. Both of the frames are symmetric so you can add holes for the button where ever you like. To make a hole for a circular button, create a new object by clicking on the cylinder thumbnail. Move your cursor around the grid to get a visual preview of the object. Click again to place the down the object. Use your arrow keys to move the object where you want.

![](https://cdn-learn.adafruit.com/assets/assets/000/011/826/medium800/3d_printing_Screen_Shot_2013-10-22_at_9.19.23_PM.png?1382491214)

![](https://cdn-learn.adafruit.com/assets/assets/000/011/829/medium800/3d_printing_Screen_Shot_2013-10-22_at_9.40.09_PM.png?1382492431)

 **Measure and Subtract**

If your buttons are different than the listed Adafruit buttons, you will need to measure the size of your buttons. Use a caliper and measure the diameter. To resize the button hole in Tinkercad, use the Ruler tool under the Helper menu in the sidebar and click on the object. Double-click on the appropriate number values to change the size. Press the enter key to confirm your size change. Click on the x dismiss ruler icon when you have made your size changes. When you have created and positioned all of your desired button holes, select them all and change the color type to "Hole" under the Inspector panel. To subtract the holes, select all of the objects by using the cmd+a (ctrl+a on Windows) shortcut and click the Group icon in the top menu to subtract merge the object. You can export each file by selecting "Download for 3D Printing" under the Design menu item.

![](https://cdn-learn.adafruit.com/assets/assets/000/011/827/medium800/3d_printing_Screen_Shot_2013-10-22_at_9.22.36_PM.png?1382491384)

# 3D Printed Wireless MIDI Controller Guitar

## 3D Printing

# Build Size
The 4-piece enclosure was designed to print on a MakerBot Replicator 2 build. If you have a different 3D Printer, you build plate will need to be at least 250mm x 148mm y ~50mm z. Below is a table list of each piece and recommended print setting. We recommend using MakerWare to slice the STL files.  
![](https://cdn-learn.adafruit.com/assets/assets/000/011/805/medium800/3d_printing_printing.jpg?1382470120)

Since these take a while, its a good idea to get the printing started and then you can work on the electronics!

# Printing Techniques
**Build Plate Preparations**  
There's a great [video tutorial](http://www.youtube.com/watch?v=VDnBXpFa7DY "Link: http://www.youtube.com/watch?v=VDnBXpFa7DY") by Dr. Henry Thomas who demonstrations a great technique for preparing acrylic build plates for awesome prints. Wipe down the plate with a paper towel lightly dabbed in acetone. Use another paper towel and apply a tiny dab of olive oil. Wipe down the plate so a small film of oil is applied, this will allow the parts to come off the plate easier.  
  
**Live Level**  
We recommend going raft-less for each piece because it will have the best quality result. Each piece will require a well leveled platform. We tend to "live level" our prints, meaning we adjust the build plates thumb screws while the print is laying down filament. This way we can make adjustments directly and improve the leveling by seeing how the extruders are laying down the first layer onto the build plate. We recommend watching the first layer so that you get a more successful print. If you see the layers aren't sticking or getting knocked off, you can always cancel print, peel it off and try again.  
  
**Removing the pieces**  
The best tool for removing prints from the build plate is to use a circuit spatula. Try to avoid scratching your acrylic build plate. A good way to remove the covers is to position the spatula on the edge of the layer above the build plate. Apply pressure to the spatula closely grip it upwards and pull up removing the piece from the build plate. The two frames are large enough to remove them by applying slight pressure to the build plate. Like bending it back so the pieces snap right off. Be careful not to hurt yourself or break the acrylic in half.  
![](https://cdn-learn.adafruit.com/assets/assets/000/011/810/medium800/3d_printing_magnets-_-screws.jpg?1382476070)

# Clean Up & Enclosure Assembly
Your parts may have bits of unwanted artifacts on the edges. You can use an x-acto knife to trim any access and unwanted bits. There are 4 small screw holes on each frame part, two on each side. The body and neck frames will need to be screwed together for a secure assembly. Use 3/4 sized philips screws to hold the frames together. We recommend using a small screw driver.![](https://cdn-learn.adafruit.com/assets/assets/000/011/811/medium800/3d_printing_magnets.jpg?1382476097)

# **Add Magnets!**
Our enclosure design uses magnets to snap on the covers. Each frame and cover piece requires 3mm neodymium magnets to easily remove the covers. You can grab a batch of 30 of them on amazon for under $10. You will need to fit them into the pillars and super glue them on. Make sure you test the polarities so the covers are magnetically attracted to the frames.# 3D Printed Wireless MIDI Controller Guitar

## Test Circuits 

## Test Button Tolerances
Test to see if all of your buttons fit into the printed panels. If the holes are too tight to fit in your buttons, you can use an x-acto knife to trim off some of the edges. Fit all of your buttons into the desired spots and securely lock them in. Most arcade buttons either snap on or screw in. ![](https://cdn-learn.adafruit.com/assets/assets/000/011/819/medium800/3d_printing_add-btns.jpg?1382479578)

## Test Bluefruit Pairing
Check out the Bluefruit [user manual](http://learn.adafruit.com/introducing-bluefruit-ez-key-diy-bluetooth-hid-keyboard/user-manual) to get familiar with powering and prototyping on a bread board. Reference the Bluefruit EZ-Key [pairing guide](http://learn.adafruit.com/introducing-bluefruit-ez-key-diy-bluetooth-hid-keyboard/pairing-to-bluefruit) to get your module paired with your computer. It's pretty straight forward and pairs like any other bluetooth device.  
  
You can solder wires to **Vin** and **Ground** to test pairing (those wires will later connect to the Flora or battery pack!) Don't solder headers in - they're hard to remove and will make later steps difficult. For testing, use a spare piece of wire to connect one of the button inputs (#0 thru #11) to ground in order to verify you get keystrokes appearing.  
![](https://cdn-learn.adafruit.com/assets/assets/000/011/820/medium800/3d_printing_test-bluefruit.jpg?1382480314)

## Test FLORA & Components
Check out the [uber guide to NeoPixels](http://learn.adafruit.com/adafruit-neopixel-uberguide/overview) to get inspired to customize these awesome LEDs. To get audio feedback on the NeoPixels, we can load up the [Amp Tie Code](http://learn.adafruit.com/led-ampli-tie) on to the FLORA.  
  
Stick to alligator clips for now, to make circuit wiring & testing easy  
![](https://cdn-learn.adafruit.com/assets/assets/000/011/840/medium800/3d_printing_curcuit-closeup.jpg?1382499481)

## Prototyping
Before soldering, test out the components in two parts. The bluefruit and arcade buttons can be tested apart from the flora, led buttons, neopixels and mic. See the next page for the circuit diagram.  
![](https://cdn-learn.adafruit.com/assets/assets/000/011/806/medium800/3d_printing_test-all-comps.jpg?1382472324)

# 3D Printed Wireless MIDI Controller Guitar

## Circuit Diagram

![](https://cdn-learn.adafruit.com/assets/assets/000/011/842/medium800/3d_printing_Curcuit-Layout.jpg?1382502256)

The circuit diagram here is setup for testing and prototyping with two LED buttons and one arcade button. Get one or two buttons working _first_ and then add more!   
  
You will need to add buttons and neopixels in series in the complete build.  
  
Additional buttons all have one side of the switch connected to ground (you can wire them all to each other and then to a ground pin) the other side of the switch goes to the button # inputs on the right side of the Bluefruit EZ-Key. For the LED lit buttons, connect a 220-1000 ohm resistor from the LED- pin to ground and the connect all LED+'s together to 3.3V

![](https://cdn-learn.adafruit.com/assets/assets/000/011/841/medium800/3d_printing_insides.jpg?1382499518)

In our finished build, you can see we have the resistors closer to the LED push buttons. The thick strand of wires are routed through the opening of the two pieces where they join together.

# 3D Printed Wireless MIDI Controller Guitar

## Solder Components

![](https://cdn-learn.adafruit.com/assets/assets/000/011/814/medium800/3d_printing_solder.jpg?1382476547)

There are 70+ solder points in the complete circuit. We're using 30 gauge wire, which is ideal for working with small solder points.

## Measuring + Labeling
We measured and cut all of the wires in their necessary lengths to fit their components. Try to add some leeway to the wires so that they aren't too tight. Label each wire for referencing connections when your ready to solder. We used tiny pieces of painters tape for the labels.  

## NeoPixels + Mic Amp
The 4 neopixels and mic amp will be mounted in the neck frame. We started soldering the neopixels together and into the FLORA, followed by the mic amp. The neck enclosure is designed to fit the neopixels and amp. They should snap right into place. You may need to apply some hot glue to the four neopixels for a really secure fit. The mic amp should have a tight fit to the opening in the neck frame. You can route the wires in between the magnet pillars and frame.  

## LED push buttons
The 6 LED push button need to be mounted into the neck panel. We wired up each LED push button in series with a 220ohm resistor. The 6 LEDs will be powered by the FLORA using a ground and 3.3v(or vbat) pin. Make sure to wire the appropriate connections to positive and negative. You can also route these wires in between the pillars and frame.  

## FLORA
The micro-controller will need to be powered by a battery pack, we are using the 3x AAA battery holder wired to a ground and 3v pin. In our example, the 4 neopixels outputs are connected to D6, 3v and ground. The mic amp out is wired to D9, 3v and a ground. The 6 LEDs in the push buttons will need to get wired together or in groups to a ground.The flora fits in the middle cavity of the base frame. Use a piece of double-sided foam tape to secure the micro-controller.   

## Bluefruit
The bluefruit will be wired to the toggle switch using a ground and vin pin. The positive connections on the arcade and LED buttons will go to pins 0-9, while the negative connections go to ground pins.The negative connections can be wired in groups to the ground pins. The bluefruit should fit nicely in the upper cavity of the base frame. Use a piece of double-sided foam tape to secure the module.  

## Battery & Power Switch
The tactile on/off toggle switch will need to be wired to the 3x AAA battery holder connections. The flora and bluefruit will need to share connections to the toggle switch. On the flora, use a ground and 3v(or vbat) pin. The bluefruit also needs a ground and vin(3v) pin to the switch. Make sure to leave some leeway in the wires so you can remove the back neck cover more easily. The switch component is designed to snap onto the back of the neck cover. The battery pack should fit in the open cavity next to the blue as shawn in the photo below. Use a piece of double-sided foam tape to secure the battery pack .![](https://cdn-learn.adafruit.com/assets/assets/000/011/818/medium800/3d_printing_insides.jpg?1382477411)

# 3D Printed Wireless MIDI Controller Guitar

## Configure Audio+MIDI

## Remapping EZ-Key
The default EZ-Key keys include arrow keys, return, space - these might not work happily with your MIDI software. Its super easy to update the keystrokes, and you can even do it over-the-air. [Check the Bluefruit EZ-Key remapping tutorial to remap your keys, we used 'a' thru 'j' for #0 thru #9](http://learn.adafruit.com/introducing-bluefruit-ez-key-diy-bluetooth-hid-keyboard/remapping-the-buttons-wireless "Link: http://learn.adafruit.com/introducing-bluefruit-ez-key-diy-bluetooth-hid-keyboard/remapping-the-buttons-wireless")  

## Audio Setup
If your already familiar with a midi synth app or daw, then you already know how to setup new MIDI controllers. This does not require any additional setup or configuration to your DAW or synth app. Garageband, Ableton, Logic, Protools, Cubase, FL Studio, etc. it all works great. Any music making app that allows MIDI in/out. This includes DJ programs like Scratch, Traktor, virtual DJ, djay, etc.  

## VMPK
Virtual MIDI Piano Keyboard or [vmpk](http://vmpk.sourceforge.net) for short, is a great cross platform app that allows you to turn your keyboard into a MIDI controller. It allows you to map your keyboard characters and make them send MIDI notes or CC's. It should automatically connect to your DAW or synth app. For trouble shooting daw related issues, check the vmpk [website](http://vmpk.sourceforge.net) for solutions.   

## Virtual MIDI Mapping
To setup a MIDI map in vmpk, go to File \> Keyboard Map. The key map editor has a list of value numbers that correspond to the each MIDI note. The "0" value starts with C1, and so on. You will need to map each desired MIDI note by double clicking the input field next to the values and pressing a key. Hit "enter" key to submit the characters. You can use the arrow keys to change the base octave. You can save out your XML map for safe keeping and switching between maps.  

## Test, tweak, test some more!
Take your time and map your keys to the midi notes you really want to play. I like saving out my maps and naming them as songs I like to jam to. The maps are saved as XML, so you can hand-code them if you like that. It becomes faster to setup maps this way when you get familiar with the MIDI note number values.![](https://cdn-learn.adafruit.com/assets/assets/000/011/830/medium800/3d_printing_Screen_Shot_2013-10-22_at_9.56.46_PM.png?1382493423)


## Featured Products

### Bluefruit EZ-Key - 12 Input Bluetooth HID Keyboard Controller

[Bluefruit EZ-Key - 12 Input Bluetooth HID Keyboard Controller](https://www.adafruit.com/product/1535)
Create your own wireless Bluetooth keyboard controller in an hour with the Bluefruit EZ-Key: it's the fastest, easiest and bestest Bluetooth controller. We spent years learning how to develop our own custom Bluetooth firmware, and coupled with our own BT module hardware, we've created...

No Longer Stocked
[Buy Now](https://www.adafruit.com/product/1535)
[Related Guides to the Product](https://learn.adafruit.com/products/1535/guides)
### FLORA - Wearable electronic platform: Arduino-compatible

[FLORA - Wearable electronic platform: Arduino-compatible](https://www.adafruit.com/product/659)
FLORA is Adafruit's fully-featured wearable electronics platform. It's a round, sewable, Arduino-compatible microcontroller designed to empower amazing wearables projects.FLORA comes with Adafruit's support, [tutorials and...](http://learn.adafruit.com/category/flora)

In Stock
[Buy Now](https://www.adafruit.com/product/659)
[Related Guides to the Product](https://learn.adafruit.com/products/659/guides)
### Flora RGB Smart NeoPixel version 3 - Pack of 4

[Flora RGB Smart NeoPixel version 3 - Pack of 4](https://www.adafruit.com/product/1260)
What's a wearable project without LEDs? Our favorite part of the Flora platform is these tiny smart pixels. Designed specifically for wearables, these updated Flora NeoPixels have ultra-cool technology: these ultra-bright LEDs have a constant-current driver cooked right into the LED...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1260)
[Related Guides to the Product](https://learn.adafruit.com/products/1260/guides)
### Small Alligator Clip Test Lead (set of 12)

[Small Alligator Clip Test Lead (set of 12)](https://www.adafruit.com/product/1008)
Connect this to that without soldering using these handy mini alligator clip test leads. 15" cables with alligator clip on each end, color coded. You get 12 pieces in 6 colors. Strong and grippy, these always come in handy! We often use these in conjunction with a multimeter so we...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1008)
[Related Guides to the Product](https://learn.adafruit.com/products/1008/guides)
### Arcade Button - 30mm Translucent Blue

[Arcade Button - 30mm Translucent Blue](https://www.adafruit.com/product/476)
A button is a button, and a switch is a switch, but these translucent arcade buttons are in a class of their own. They're the same size as common arcade controls (often referred to as 30mm diameter) but have some nice things going for them that justify the extra dollar.  
  
First,...

In Stock
[Buy Now](https://www.adafruit.com/product/476)
[Related Guides to the Product](https://learn.adafruit.com/products/476/guides)
### 16mm Illuminated Pushbutton - Red Momentary

[16mm Illuminated Pushbutton - Red Momentary](https://www.adafruit.com/product/1439)
A button is a button, and an LED is a LED, but this LED illuminated button is a lovely combination of both! It's a medium sized button, large enough to press easily but not too big that it gets in the way of your project panel. It has a built in LED that can be controlled separately from...

In Stock
[Buy Now](https://www.adafruit.com/product/1439)
[Related Guides to the Product](https://learn.adafruit.com/products/1439/guides)
### Electret Microphone Amplifier - MAX4466 with Adjustable Gain

[Electret Microphone Amplifier - MAX4466 with Adjustable Gain](https://www.adafruit.com/product/1063)
Add an ear to your project with this well-designed electret microphone amplifier. This fully assembled and tested board comes with a 20-20KHz electret microphone soldered on. For the amplification, we use the Maxim MAX4466, an op-amp specifically designed for this delicate task! The amplifier...

In Stock
[Buy Now](https://www.adafruit.com/product/1063)
[Related Guides to the Product](https://learn.adafruit.com/products/1063/guides)
### 3 x AAA Battery Holder with On/Off Switch and 2-Pin JST

[3 x AAA Battery Holder with On/Off Switch and 2-Pin JST](https://www.adafruit.com/product/727)
This battery holder connects 3 AAA batteries together in series for powering all kinds of projects. We spec'd these out because the box is slim, and 3 AAA's add up to about 3.3-4.5V, a very similar range to Lithium Ion/polymer (Li-Ion) batteries and have an on-off switch. That makes...

In Stock
[Buy Now](https://www.adafruit.com/product/727)
[Related Guides to the Product](https://learn.adafruit.com/products/727/guides)

## Related Guides

- [VU Meter Baseball Hat](https://learn.adafruit.com/vu-meter-baseball-hat.md)
- [Plush Game Controller](https://learn.adafruit.com/plush-game-controller.md)
- [Adafruit Arduino IDE Setup](https://learn.adafruit.com/adafruit-arduino-ide-setup.md)
- [Sipping Power With NeoPixels](https://learn.adafruit.com/sipping-power-with-neopixels.md)
- [Trinket Sound-Reactive LED Color Organ](https://learn.adafruit.com/trinket-sound-reactive-led-color-organ.md)
- [Zipper Switch](https://learn.adafruit.com/zipper-switch.md)
- [NeoPixel Matrix Snowflake Sweater](https://learn.adafruit.com/neopixel-matrix-snowflake-sweater.md)
- [Magic Light Bag of Holding](https://learn.adafruit.com/magic-light-bag-of-holding.md)
- [Pathfinder Robot Companion](https://learn.adafruit.com/pathfinder.md)
- [Simple and Beautiful NeoPixel Holiday Lights](https://learn.adafruit.com/simple-beautiful-color-changing-light-strand.md)
- [Firewalker LED Sneakers](https://learn.adafruit.com/firewalker-led-sneakers.md)
- [How to Find Hidden COM Ports](https://learn.adafruit.com/how-to-find-hidden-com-ports.md)
- [Mailbox Notification Service](https://learn.adafruit.com/mailbox-notification-service.md)
- [LED Masquerade Masks](https://learn.adafruit.com/led-masquerade-masks.md)
- [LED Ampli-Tie](https://learn.adafruit.com/led-ampli-tie.md)
