Introduction: Standalone Electronic Drumkit From Wii Band Hero Kit

Before I go on any further, I have to say a big thank you to the kidu drum instructable.
Without this guy I wouldn't have known that this was possible.

I did however find some parts of the instructable very difficult to follow and I wanted to have more sounds and features. So this is essentially a rework of that instructable with a few minor tweaks and a few different ideas.

Firstly, before you follow my instructions word for word, I strongly encourage you to consider this amazing little chip.
Although slightly more expensive then what I am about to show you, it's polyphonic and it plays wav files, so it's way more awesome and you really won't have to do a lot of work to get much better results than mine.

Secondly, Check out the video of me playing the drum to get a feel for the performance. It's a fun project, but it's toy quality. You could hack a cheap old keyboard and jam it inside to get a lot better results for the same cost (please comment me your results if you do this), but it's a fun little project and well worth doing for the learning involved.

This project is dedicated to my nephew Jayden who wants to learn drums (hence the project).

Step 1: Taking It All Apart

Rockband and band hero drumkits are amazingly hardy and actually have fairly good pads. If you are thinking of getting into any electronic drum building project, I would strongly recommend looking around for one to hack. This band hero one as it turns out was put out by the side of the road for rubbish collection and I saved it for this project. They are built super easy to hack as everything is neatly labelled and often parts can just be unplugged and plugged into a breadboard.

Initially I hacked it to play midi through my midi footpedal and it worked like a charm. The issue was that my nephew wouldn't have a pedal like mine and he needed something easier to set up then midi.

To take it apart, there are a whole heap of screws, once you have it open you will realise that essentially the drum pads are Piezo buzzers and rubber. They all come together to a small board where they are all labeled neatly. A ribbon Cable takes them from that board to the main chip. Gently remove the glue around the ribbon cable and pull it loose.

The ribbon will go to a connector that ran to the main chip. You can do this entire project and still maintain it's functionality as a wee controller, because the main board and chip unclip nice and easily. In fact, that's the best way to do it because you have a midi option too! Unfortunately I had already played about with this one and accidentally put 12v through it and blew that chip up. So I used a knife and cut that whole piece off the front so that it wasn't in the way.

Step 2: Arduino Pro Mini 5v

Arduino is the heart of this. Arduino's are super easy once you have the hang of it, but until you do, the codes can get a bit confusing. My tip is start small. Wire the jack up and the SD Card up.

Download the SimpleSDAudio library and try out the test files. To do this properly, you will have to load the sounds it provides onto an SD card.

The SD card must be formatted in FAT32 format and apparently no larger than 8gb.

This website has more information on sd card sound, and how to format sounds that Arduino can read.

Also this page is the official page for the simple SD Audio Library and has all the information you will need for this.

Try set up a single drum pad using the schematic provided and see if you can get it to trigger a sound using this simple code.

// these constants won't change:
const int ledPin = 13; // led connected to digital pin 13
const int knockSensor = A0; // the piezo is connected to analog pin 0
const int threshold = 100; // threshold value to decide when the detected sound is a knock or not

//these variables will change:

int sensorReading = 0; // variable to store the value read from the sensor pin

int ledState = LOW; // variable used to store the last LED status, to toggle the light

setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); // declare the ledPin as as OUTPUT

Serial.begin(9600); // use the serial port

}

loop() {

// read the sensor and store it in the variable
sensorReading: sensorReading = analogRead(knockSensor);

// if the sensor reading is greater than the threshold:
if (sensorReading >= threshold) { // toggle the status of the ledPin:

ledState = !ledState; // update the LED pin itself:

digitalWrite(ledPin, ledState);

// send the string "Knock!" back to the computer, followed by newline

Serial.println("Knock!"); }

delay(100); // delay to avoid overloading the serial port buffer }

This small piece of code will show you what the A0 pin is doing. You can change the "0" where it says "const int knockSensor = A0;" to any other analog input. and try out each different drum pad in turn.

Slowly, you are going to adapt this code into a collaboration of the SD Audio one and the Sensor one.

Other tests to do are the arduino button codes to test the buttons.

Test all the inputs to make sure they are working. Then try your sound output to make sure that is working. The final product is the combination of the both.

Once you have tested your connections. Move it from the breadboard to soldiered connections.

Step 3: Build

The final part is to put it all together, by now, you have already know what your circuit looks like, so now the job is to get soldering and make it permanent. Fit all the parts in the housing. Make sure it all works and then, you are done.
Any tips? Well, hack and saw what you need to. If you want to be cool, you can make a tidy little laser cut box or something, but for me, I just used the original stuff and tweaked it.