Embedded systems and stuff

Hack a Guitar Hero drumset to use it with any computer over USB, Part 4

 

BitBucket repository is live: https://bitbucket.org/MostThingsWeb/usbdrumming/src
In part 3, we finished fleshing out the details of the hardware and embedded software. In this part, we’re going to build it!
 

Ready? Let’s begin…

…by reading this first

Let me preface this post by saying that I am not responsible if you destroy your drumset, burn down your house, spoil your appetite, etc. These instructions are accurate to the best of my knowledge, but I assume no responsibility for anything that may come from you following them (unless you win the lottery – in that case, I take checks or PayPal).

One more thing. This project involves soldering really tiny surface mount parts to a tiny board on both sides (and uphill, both ways). So I wouldn’t recommend this as a beginner soldering project.
 

The plan

You will be assembling a PCB that I designed. This PCB implements all the features of the schematic we finalized in part 3. Here is a picture of a completed board, soldered onto the Pro Micro:

Let me explain what you are seeing:

  • The purple board is the board I designed.
  • The red board (bottom) is the Pro Micro 3.3V, which is soldered to the purple board.
  • The white Molex connector is for the RGB LED.
  • The two surface mount chips are the tri-stating buffers.
  • Finally, and most importantly, the two right-angle female headers are connectors for the control box and drumpad controller.

Disclaimer: This board was autorouted out of laziness. If you’re better at using Eagle than I am (or just more motivated) please by all means grab the Eagle files and manually route it. If you do this, don’t forget to send a pull request my way on BitBucket! Should the average person care about it being autorouted? Probably not. Some vias might obstruct the silkscreen in some places, but you should have the reference PCB layout in front of you anyway.
 

Resources

All components of this project (software, hardware, and misc. development tools) are available at BitBucket here. For this part, you should only care about the hardware folder.
 

Shopping list

Browse through this entire section before ordering – you’ll be able to consolidate purchases that way.
 

The PCB

The first thing you’ll need to get is the PCB itself. I’d recommend ordering from OSHPark.com (formerly “the Laen PCB order”). To make the order, all you need to do is upload a copy of the latest .brd file from the BitBucket repository (/hardware/USB drumset interface.brd).
 

Primary components and materials

You’ll probably need to make at least a Mouser and a SparkFun order. Like I mentioned in part 3, the RBG LED is optional, so I’ve provided two versions of each list: one containing what you need to assemble the project with the LED, and one for assembling it without the LED. Make sure you peek ahead at the General components/materials/tools section to see if you can consolidate any orders.

Choose one from each row.

Retailer with LED without LED
Mouser with LED without LED
SparkFun with LED without LED

 

General components/materials/tools

There’s plenty of other stuff you need, but since some of it is common, I didn’t include it in the above lists. Items {in curly brackets} are optional.

18 pins worth of extra long header; (at Adafruit or at Digikey) Extra long microB USB cable*
24 pins worth of Standard 0.1″ pitch male header {Heatshrink, for LED}
Zip ties Electrical tape
Safety glasses (not optional) Big and small Phillips head screwdrivers
Soldering iron (I suggest this one) Small keyhole saw or hacksaw
Scissors Small wire cutters
{Solder wick or solder sucker} {Wire stripper}
{Electric drill, for LED} {Panavise or similar}
{Lots of drill bits, for LED}+ {Heatgun, for LED}

 
* The USB cable needs to be long; we’ll be leaving half of it in the drumset, plugged into the Pro Micro. The alternative, which I haven’t tried yet, is to panel mount this micro-B assembly.

+ For the drill bits: You will need bits up to 1/2″. This diameter is listed on SparkFun’s website, by the way; it’s what the LED holders are designed to fit into.
 

Full instructions

Disassemble your drumset

The first thing we need to do is take this thing apart.

  1. Detach the drumpad from the stand by removing the four screws.
  2. Turn the drumpad over and carefully remove the screws, saving the three that attach the control box to the drumpad controller for last. When you remove them, use one hand to keep the control box from falling out.
  3. Invert the drumpad controller and control box so that the drum pads are facing up.
  4. The control box is connected to the drumpad controller at a polarized connector (on the gray cable). Disconnect it, as in the picture below, and push the ribbon into the drumpad controller completely. We will need access to the connector when we flip the drumpad over.

 

Cut the hole for USB cable (and, optionally, the LED)

I’m going to cheat and show you a picture of the finished USB cable hole and LED installation. That way, you can more easily see where things are supposed to go:

Before you ask, the hole on the right was supposed to be for the LED, but I cracked the plastic while drilling.

Notice how the LED and USB holes are installed in the bottom section of the drumset. The top part is where the drumpads and drumpad controller are attached to. Don’t drill holes in that! Also, please take this opportunity to consider if you really want that 10mm LED after all: that’s a tight hole to drill.

Let’s start with the LED hole. That way, if you crack the plastic, you have a hole for the USB cable and an opportunity to try again with the LED. This is a delicate operation that should take you about half an hour if you do it carefully.

  1. Begin with the smallest drill bit you have. Start the hole vertically centered in the plastic backing, pictured above.
  2. Using low torque mode, work your way up to bigger bits, drilling as slow as you can. You want to shave the plastic off, layer by layer. Don’t jump bit sizes or you will crack the plastic.
  3. For the 10mm LED, you’ll be working your way up to the 1/2″ bit.
The USB hole is easier. Just use your keyhole saw or hacksaw to cut a small rectangle out of the plastic backing on the bottom drumset piece. Put electrical tape over any rough edges.

 

Assemble the electronics

Heat up your iron and get ready to level up in soldering! First step: print a copy of the schematic and board at this link to use as a reference while soldering. Just go to the hardware folder. If I’ve committed new changes since you had your board fabricated, be sure to print out the correct revision.

 

 
I’d recommend soldering the components in the following order. Note that the “top” of the board refers to the side with the most pads (visible on the left in the picture above).

  1. Resistors, capacitors, and diodes on top
  2. Resistors, capacitors, and diodes on bottom
  3. Buffer chips
  4. Right-angle connectors
  5. Molex connector (if using the LED)

 
Important step: After you’ve populated the SMD components, you’ll need to solder the Pro Micro to your PCB with the help of the male breakaway header. The orientation is very important. Below is a (crappy) picture of the board and PCB mated properly. You’ll find four labels on the back of your PCB which should align directly to the corresponding pins on the Pro Micro. For example, the pin on the PCB labeled TX0 should end up connected to the TX0 pin on the Arduino. If you do this correctly, the SMD components on the Pro Micro and the top of the PCB will be visible; the back of the Pro Micro and the bottom of your PCB will be sandwiched together. Don’t screw this part up – desoldering breakaway header is not fun.
 

 

Assemble the RGB LED

If you’re including the LED, then follow these additional steps. We’re going to hook our LED up to your Molex wiring assembly, like this (wiring colors not necessarily correct):
 

To do this, you’ll need to solder each lead of the LED to the leads of the Molex. Be sure to slip on the heatshrink before you solder. The only pin on the LED you really need to get correct is GND; the Molex is polarized, but you can also change the pin assignments for the different colors in code (but not ground). Ground is the pin marked with an arrow on the top of the board, like this:
 

 

Hook up the electronics

  1. Break off three 6-pin segments of the extra long header. Firmly insert one into both of the right angle female headers. Insert the last one into the female connector of the gray ribbon cable.
  2. Return the control box to its cradle, and feed its cable through the hole. Tape the control box in place, since it won’t be screwed in until later.
  3. With one of the jumper wires, connect the control box to the corresponding right angle female header. Check the polarity, and use plenty of electrical tape to secure the connections.
  4. With the other jumper wire, connect the drumpad controller to the corresponding right angle header, and once again, check polarity and secure the connectionwith lots of electrical tape.
  5. Plug in the LED connector, if using.
  6. Plug the USB cable into the Pro Micro.

 


You consider adding some tape between the micro-B connector and the adjacent connector, to provide some protection against snapping. I put electrical tape around some spare anti-static form (tape is to prevent shorts) and jammed that between the two:
 

Then I just wrapped electrical tape around the two wires + foam.
 

Testing it out

Before we go any further, let’s verify that everything works. You’ll need to install the Arduino software on your computer, as well as the latest Pro Micro drivers and addon files

Be sure you choose Pro Micro, 3.3V as the target board. Upload the latest version of the embedded software (/software/Drumset) to the Arduino. Plug in the USB cable, run the sketch, and open the serial monitor. Try hitting some pads. You should see output in JSON.

Next, unplug the USB cable from your computer. Turn on the control box and play Guitar Hero normally on your console for a bit. Check that the Arduino is not powered while the control box is on.

If everything works, then move forward! If something didn’t work, then break out your multimeter and test away.
 

Troubleshooting

This is important. If you get random crazy JSON responses, then follow this troubleshooting checklist:

  1. Make sure the USB cable is properly inserted into the Pro Micro.
  2. Even if you only want to use the drumset with your computer, batteries must still be present in the control box. This is due to the primitive power switching (or lack thereof) on the PCB.
  3. It’s possible that you accidentally turned on the control box when the USB cable was plugged in the your computer. In that case, unplug the cable, remove the batteries, and wait 60 seconds. Then put the batteries back in and reconnect the cable.
  4. If you still get wacky JSON responses, then a connection might be lose, or you assembled the PCB incorrectly (in which case only desoldering braid can save you now).

 

Bringing it all together

Let’s reassemble the drumset. First, you’ll need to find a convenient location to place the board. Since the Molex connector is a little tall, I’d recommend affixing it near one of those screw receptacles. Just play around with it to see what works.

  1. With plenty of electrical tape, attach the entire board to the inside of the drumpad controller. Tape down everything: the board, the jumpers, and especially the USB cable. The more tape you use, the more resistant the cable will be to tugging and pulling.
  2. If you haven’t done so already, install the LED holder and insert the LED. Use electrical tape to keep the LED in place – the holder won’t do that.
  3. Move the plastic backing into place. To do this, you will need to lift up the little adjustment levers (the ones that adjust the height of the hi-hats).
  4. Test everything one more time.
  5. Put all the screws back in.
  6. Tape over the holes you made.
  7. Run the USB cable down to one of the stand connectors on the drumpad, tape around where the USB cable reaches, and zip tie it to the connector – pictured below.
  8. Reinstall the stand (don’t forget the screws).


 

Phew…

That was a lot to take in, so if you’ve made it this far, congratulations. The hard part is over. If you encounter any problems or have any questions, please let me know in the comment field below and I’ll try to help you out.
 

Part 5

In part 5, we’ll write the client-side software that sits on your computer and communicates with the drumset. Specifically, the software will monitor from pad hits and play the associated drum sound.

You’ll be rocking out soon.

 

Leave a Reply

%d bloggers like this: