loading

OpenChord.org V0 - Build a Real Guitar Guitar Hero/Rock Band Controller

Picture of OpenChord.org V0 - Build a Real Guitar Guitar Hero/Rock Band Controller
We all love Guitar Hero and Rock Band. We also know that we'll never learn how to actually play guitar playing these games. But what if we could at least build a Guitar Hero controller that let us use a real guitar? That's what we here at OpenChord.org are trying to do.

This instructable will show you how to take a regular electric guitar and turn it into the OpenChord V0, a Guitar Hero / Rock Band controller that you play by actually playing notes on the guitar. Instead of pressing buttons, you'll be pressing strings, sliding up and down the fretboard to connect notes together.  However, it still relies on the internals of a Guitar Hero controller to generate the proper signals to the console, and it uses the strum bar from the controller as well.

 This project has been superseded by the OpenChord V1, which actually uses the real strings and generates real controller signals.

For a little more information about the project as a whole, visit OpenChord.org.


 
Remove these adsRemove these ads by Signing Up

Step 1: Theory of Operation

Picture of Theory of Operation
The basic idea of this guitar is to use the strings and frets of the guitar as a circuit. When you play a note on the guitar, you press the string between two frets. If we connect the string to a voltage source and the frets to a ground, each time a note is held down, it creates a circuit. By connecting each fret to a microcontroller, we can then measure which frets the string is touching. Finally, we can do this process for each string on the guitar, measuring (almost) where every finger is.

Why almost? Once more than one string is involved, some ambiguous situations arise. For instance, electrically, holding two strings down at the second fret is no different from holding one finger down on the first fret and another on the second fret, because the fret connects everything together. Fortunately, we'll deal with this in software...

Step 2: Ingredients

In order to do this project, you'll need at least a basic idea of how to solder, and a little bit of experience with a microcontroller will be nice.

You'll need:
Big Things:

1 real guitar
- Electric is preferable, if you don't want to ruin the instrument's future playability

1 guitar hero controller
- It's important that it be a guitar hero/rock band controller, instead of just a regular dualshock. The playstation will know the difference, and so the playing experience will be somewhat different if you use a regular controller, since just pressing a button counts as a note played)

1 Arduino microcontroller
- I used an Arduino; if you know what you're doing, you can use something else. But you'll need at least 5 input and 12 output ports.

Tools:
Soldering Iron
Multimeter
- Not strictly necessary, just super useful
Screwdrivers
Razor Knife
Rotary Tool
Drill bits

Electronic Parts:
6 Diodes
Small Wire - I find network cable to be super-convenient
Laquered wire - This is the thin, coated wire you find in headphone cords
Small breadboard chunk - at least 6 x 6 holes big
Wooden beads - Read step 5 to get an idea of the right size
Heat shrink
Plastic drinking straws

Step 3: Disassembly

Picture of Disassembly
SL730467.JPG
The first step in building, ironically, is to tear everything apart.

To start with, the real guitar.
First, take off the strings and the neck of the guitar. This will probably be about the easiest thing you do: loosen the strings until you can take them out of the neck, and then unscrew the 4 screws holding the neck to the body of the guitar.
Next, remove the faceplate and pickups. The pickups should be attached to the faceplate, so you should be able to just unscrew all the screws on the faceplate and lift the whole assembly off. There will be a couple of wires that attach the pickups and other attached electronics to the output jack; they'll have to be cut, unfortunately. Hopefully, there will only be two or three, though, so with a little soldering, the guitar can be made whole again.

That's it for the real guitar. Now onto the fake one.
I'm using an Ashely Rock Axe guitar that I got on sale for its parts. Basically, the actual controller elements need to be removed from the body. In this case, it meant cutting and re-soldering the battery box wires, since they went through a hole from the front to the back of the guitar. Your guitar may be different, so I'm not going to give too detailed instructions for this part, only that you want to end up with everything electronic still together, but outside of the case it came in. For now, don't cut anything if you can avoid it; it most likely will come apart with some small screwdrivers.

Step 4: The Neck

Picture of The Neck
SL730480.JPG
To start actual construction, we'll wire up the neck so it's ready to be attached to the microcontroller.

Along the side of the neck, between the neck and the fretboard, use a circular cutting disk with the rotary tool to cut out a small groove, approximately 1/8" deep. Make sure you cut this on the side of the guitar that will face the ceiling; the model in the picture was accidentally cut on the wrong side. This will be used to carry the wires from the frets to the body of the guitar, so it's best to leave the side your fingers will be sliding along alone.
After the groove is cut, either with a drill bit and rotary tool or small screwdriver, dig away at the wood beneath the first 5 frets. The goal is to have access to each of these frets beneath the fretboard so you can solder wire to each fret without the solder or the wire sticking out from the neck of the guitar.
Now cut the lacquered wire into 5 strips, each long enough to reach at least the middle of the guitar body - it's good to have extra to make sure we can get everything in place. To remove the lacquer on the tip of the wire to be able to solder it, hold the tip of the wire over a cigarette lighter or match and burn off the lacquer, then scrape the ash off briefly with your fingernails. One at a time, solder the lacquered wires to the frets, making a tape flag at the other end of the wire identifying which fret each wire connects to. Finally, use tape or wood putty to cover up the wires.

Now the neck is basically ready. Reattach it to the guitar body.

Step 5: Insulate the strings

Picture of Insulate the strings
SL730484.JPG
SL730485.JPG
While we're still working with the real guitar, we'll go ahead and insulate the strings.

Since the program figures out which note is played by putting a charge on each string in order, each string will need to be electrically isolated from every other string. Unfortunately, the all-metal bridge works against us. Also, the tension in a tuned guitar's strings tends to cut through a variety of possible insulators. But still, we persevere.

If you haven't already, remove each string from the body of the guitar. If you're not used to working with a guitar, it might make sense to work one string at a time, so that you don't wind up with a reverse-strung guitar.
Now slide a bead down the string. This bead must be large and strong enough to keep the brass ring on the end of the string from slipping down into the metal hole it normally rests in, insulating the brass ring from the metal bridge body. Extra points if the bead tapers, so that the bead rests in the metal hole.

In these pictures, I've soldered the strings to the diodes, although since then I've found it's easiest to attach the diode on the other end of the wire.

Now put the strings back into the body, but don't attach them to the neck just yet. The strings will still touch the top surfaces of the metal bridge, so they need to be insulated there too. Unfortunately, the tension in the strings tends to cut through a variety of materials.

The best solution I have found so far is plastic drinking straws. Cut an inch or so off a straw, then cut along it's side, so you have a rectangle of straw material. Holding the part of the string that is coming out of the front of the guitar, fold the straw piece over the string and wrap it as tightly as you can, the push it down into the hole in the bridge so that when you pull the string towards the neck, the straw covers both the area where the string comes out of the bridge and where it touches the bridge on the face of the guitar.

Now reattach the strings to the neck. Tighten the strings until they are firm, then use the multimeter to make sure that none of the wires are electrically connected to the others, fixing the insulation accordingly.

Step 6: Microcontroller, Solder, Wire

Picture of Microcontroller, Solder, Wire
SL730482.JPG
SL730475.JPG
SL730591.JPG
Now we start to get into the actual electronics of the project.

First, find somewhere inside the guitar to screw in your Arduino. However, make sure you can still plug in the USB cable, so only use one screw, and screw it it lightly, allowing the board a little freedom.

Moving back to the neck side of things, we'll get the frets connected first. The fret wires will be inputs into the microcontroller, so they'll need to be attached to pull-down resistors. These resistors drain any extra current out of the frets when they're not touching any strings; otherwise the microcontroller will get confused. Use resistors in the 1K - 50K range, any higher and you'll start getting issues with multiple button presses.
Burning the ends of the lacquered wires again, join each fret wire to a length of regular wire. If you're using network cable, keep the wires together in their sheath for convenience. Using the breadboard piece, solder all the resistors together to a ground wire on one side, then solder each fret wire to the non-ground end of a resistor. Attach this breadboard to the inside of the guitar body.
*Optional*, but recommended, solder the free ends of the new wires to some connected standard pins; this way, they won't fall out of the Ardunio. Better yet, get an Arduino you can solder directly onto.
Now attach the fret wires to pins 2 through 6 on the Ardunio, with pin 2 being the first fret, pin 6 being the 5th fret. Also, connect the ground wire to one of the ground pins on the Arduino.

Onto the back side, we'll need to wire up the strings. if there is no hole through from the rear to the front, drill one, watching out for the microcontroller package you already attached there. Now solder wires onto each string, put the wires through the hole, then solder the diodes to each wire, such that current is only allowed to flow into the microcontroller; i.e., the bands should be on the side away from the wire. Now push the diodes into pins 14-19, with 14 being the biggest string, 19 the smallest.

Step 7: Plug in the Microcontroller and Test

Picture of Plug in the Microcontroller and Test
Now we need to load up the microcontroller. If you're using Arudino, the following code can be simply downloaded and entered into your Arudino IDE and ought to work. If you're feeling ambitious, though, the most recent version of the code will be here. If you're using a different microcontroller, the code should be easily adapted into C, something I'll work on soon. Since the Arduino IDE can also take in standard C, it's mostly the port mappings that need to be changed.

Anyhow, before we get ahead of ourselves, let's use the PC to test out the circuitry in the guitar. In the Arduino IDE, switch to the serial viewer. The program is set up to transmit a line of text data each time the state of the guitar string and fret "switches" changes. The lines that get printed tell you which strings are hitting which "buttons", so play around with different combinations of fingerings.
V1.pde6 KB

Step 8: Plug in the Controller

Picture of Plug in the Controller
SL730445.JPG
SL730438.JPG
SL730440.JPG
Now that the guitar part works, we can work on getting the guitar to talk to the Playstation.

On the controller, find the power and ground wires. If you're using a wireless controller, you're in luck, since they'll be the wires coming out of the battery pack. Things are more complicated if you have a wired controller, since the Playstation only provides 3.3 V of direct power, but hopefully there's a wire that goes to the vibration motor, which has a higher voltage that we can steal for the Arduino. Solder additional wires to these ground and source voltage wires, then connect these to your Arduino's 5V and GND pins, making sure to change the power jumper if the board is older and doesn't do it automatically. If you're using a wireless controller, solder the power wires at the power switch, that way the Arduino gets shut down when you turn the controller off.

Then figure out how the controller takes in button signals. Does a button press on the guitar connect a pin on the controller's chip to the source voltage or to ground? Again, if your controller isn't wireless, this might get more complicated, since if the chip is expecting 3.3V in, it's not going to be happy if it's being connected to 12V... But hopefully the buttons control paths to ground. This is the way the microcontroller is currently programmed; if the buttons instead connect the chip to source voltage, you'll need to change the code to reflect that the colorOut pins need to provide HIGH signals when a button is active

Next, find the cable that leads to the buttons. Write down or mark which wire goes to each button, remembering that there will be a wire that provides a common ground to all the buttons. Cut this cable, and again, you should solder it to a pin row. Connect these wires to pins 8-12, with 8 corresponding to green, 12 to orange.

Finally,

Now plug it in and try it out, gently. You don't want to rip any wires out...

Step 9: Pack it Up, Pack it In

Picture of Pack it Up, Pack it In
SL730434.JPG
SL730431.JPG
So it works! Now let's make things a little less likely to fall apart and break.

This is the part that is going to be the most variable, depending on what sort of cavity your guitar's body has. It's also the part I've spent the least time on, so if you're an enclosure master, let me know, and we can make this better.

If you're willing to cut into your real guitar's body, that will probably let you make the guitar look much nicer than mine. However, remember that even on an electric guitar, the size and shape of the body have an important impact on the sound of the guitar, so if you're going to want to play it for real again, you might not want to make any big cuts into your guitar.

You'll probably want to cut out the strum bar from the plastic guitar and mount that back onto the board the controller is on.

For now, since I'm not currently using their features, I cut out the whammy bar potentiometer, along with this switch that doesn't do anything for the controller. Then I found where things would kinda fit, and through a combination of wedging, cutting, and screwing, I fit things more or less into the body.

Step 10: Rock Out, Help Out

Congratulations! You should now have a complete, working Guitar Hero controller that you can play (almost) like a real guitar.

However, this project is only the start. Come visit us at OpenChord.org and find out what we're up to!
wrecklesst2 years ago
I made mine wireless and invisible. sure get funny looks while I am playing though..

alan.chatham (author)  wrecklesst2 years ago
Awesome! I'd love to see pictures if you've got some!
dynno975 years ago
Poor guitar... Cool project... but why did you have to kill that little guitar...
alan.chatham (author)  dynno975 years ago
This project has kinda moved on - the newer version is here: http://www.instructables.com/id/Play-Guitar-Hero-with-a-Real-Guitar/ In the new version, you're actually using a wired-up pick instead of the strum bar, and so you don't have to add anything else onto the faceplate of the guitar - you can install it internally to the guitar and the guitar will still play just like a regular electric guitar!
Forgive me if this is a stupid question; Can a midi guitar be used for this? I'd look into it myself but whenever I read the word arduino my head starts spinning and I have to curl up into the fetal position. Regarding a metal pick; I made one by placing a nickle on a railroad track and then shaping it with a file. Perhaps a double pick, one side positive the other negative could be used? (once again the arduino thing happened before I was able to completely understand the circuitry so this answer may not be applicable). I know I'm a bit late but just had to input my five cents. Impressive project, to say the least.
alan.chatham (author)  VagsmaCutter5 years ago
 So I've moved away from the Arduino - I'm now using my own PCB and a regular ATMega328 without all the extra Arduino nonsense.  There are instructions for that on the website, as well as an instructable here showing how to make a version of the guitar without the Arduino.

In fact, in the latest board revision, I've freed up the serial pins on the microcontroller, so hopefully I'll be using it to implement MIDI out.  However, it could also be used to take in MIDI data and create controller signals as well....
Right on. I was thinking along the lines of using a guitar that already output midi. But, it's not like I've got one laying around for parts and I don't know if one would even work for this application. Not to mention buying parts is against my religion so making the thing would probably be what I would do. Of course I'm not insane/ sane enough to embark on such a journey and follow it to fruition without heavy collateral damage/ casualties along the way (not saying you're insane, on the contrary, I admire your sackitude for even attempting doing what you're doing AND what you have done.) I will visit the site as soon as I can wake up enough grey matter to do it justice. Honestly, I'm pushing overload as it is. Good stuff man.
8bit5 years ago
Wow, great idea. Who would have thought it could be so simple? 
Option 1(strum bar is a switch): If you didn't want to use the strum bar, id suggest using your electrified strings in concert with a metal pic (if you can find one)(no pun intended!) that is wired to one side of the strum switch and get the strings to attach to the other side of the switch Option 2(strum bar is an odd potentiometer): get one of those digital potentiometer chips, like for the audio controllers and such(maxim has some) and do the same thing with option 1, except run the connections to the chip, then to wherever it was going in the first place. I apologize if that makes little sense, but I'm sleep deprived right now and could be clearer headed later
alan.chatham (author)  The Ideanator6 years ago
Thanks for the advice! I've thought about using a metal pick; made one out of tinfoil and stuff, but I spent a bunch of time focusing on how to get the code to work for the strings, then interfacing with the GH controller, so I kinda let that slip by the wayside... I should look into that. Thanks! Not sure about what you mean with the potentiometer, though... I'm intrigued! Let me know more, or e-mail develop@openchord.org. Thanks!
matthewruth6 years ago
Sweet work here guys I'm contemplating where i can get my hands on a cheap guitar and a guitar hero controller. I'd be aiming for a xbox 360 controller - so making it wireless, as i have an xbox 360. It will go on my To-Do list......