Nov 2, 2010
You may be aware of my work on RockBand 2 Drum "drivers". If I had written my code as a kernel module (and it would likely be accepted into the mainline), it would be easy to call it a driver. However, I wrote it using libusb and ALSA, which makes it a userland program. I feel that I made the right design choice. ALSA libraries are low enough latency and libusb allows efficient use of interrupts, so it works quite well. Also, adding any complex code to the kernel that isn't totally necessary seems like a risky endeavor.
Anyway, that code is here: RockBand 2 Drum Instrument for Linux
If a pad on your RockBand 2 drum stops working don't worry, it's user serviceable. A few months ago the green pad (cymbal) of my rockband 2 drum stopped working. Since I like it so much and use it for composing music and not just playing RockBand, it was a great pain to lose the use of my drums. Trying to take it apart, it had 6 easily accessible screws and 4 difficult to access screws. The 6 easy to access screws are practically useless for repair. The two in the center require the 4 difficult to access screws to be removed. I removed the difficult to access screws and found the electronics beneath. If you're having electronics problems, this is where you can service those parts. However if you just have a dead pad, it is most likely caused by a short or a broken connection on the pad itself. Though I have a rule to never use force on electronics, I broke the rule in this case. There are four rubber pieces that are connected to each pad that must be pulled out in order to service the pad. That's right, I'm advocating using brute force to pull the pad off the plastic surface. Make sure you get a good grip on the entire pad and not the outside ring which may break if you put too much force on it. Once all four rubber pieces have been pulled through the plastic, it shows the design of the pads: a simple sensor under a spring. Each time the drum is hit, the resistance or capacitance (I don't have a multimeter, so I can't check) will change giving a velocity value depending on the force and location of the hit. Just pulling the pad apart and putting it back together (while testing) was sufficient to fix the pad.
Two things I noticed: If you want to add a cymbal of your own design (and not pay mad catz or harmonix for the cymbal upgrade) you just need some type of trivial passive circuit. My guess is that it's a voltage divider, which means that resistance is the key to making the sensor. For example, a photoresistor, a simple resistive mic, or potentiometer should work. In fact, if you want to just mod your existing green pad, you could mount it on a pole and it would work just fine.
It's important to find out whether the inputs on the back send different signals to the USB device. So far, it looks like they are the same (they triggered the same values when I hooked up a switch to a mini stereo cable, but I didn't actually check all bits that I received).