This project modifies a $5 Staple's Easy Button and an inexpensive USB keyboard so that they can be used as an input device for live musical performances (or anything else that requires a button or footswitch). It alllows cheap buttons to be created that each send a keyboard character as input to a program. In addition, the proceeds of easy button sales go to the Boys and Girls Club of America.
The project is standing on the shoulders of two other hacks. First, this project hacked an easy button into a switch for a garage door. Second, Dave Merrill, who I am involved with in the EMI (Experimental Musical Instruments Workshop) at MIT (see inventmusic.org), had taken apart a keyboard to create footpedal for the ctrl, shift, and alt keys for use when his arm was in a cast. His project details are here.
The motivation behind this project was a performance called Mandala at SIGGRAPH 2006 ( video clip ) as part of their electronically mediated performances series. Six musicians sat around a circle projected onto the floor that gave instructions to each individual about what and how to play. A computer program generated these instructions and therefore lead the improvisation of the group. Foot switches were needed so that the musicians could communicate with the program (e.g., when the sheet music should be scrolled, voting for song changes, etc.). The Mandala program was written in Flash but future projects will use Pure Data (PD), Java, and other languages. All that is needed is the ability to programmatically read input from a keyboard.
About one and a half days was required to complete this for someone who had never soldered before (thanks to Ben Vigoda, the main instigator for the Mandala Project, for lessons and helping me figure out the details of the electronics).
Step 1: Hack the Easy Button
The first step is to open the Easy Button and exchange the connections that make the "That Was Easy" sound for two wires that send the on/off switch to the keyboard interface. Opening the Easy button amd soldering the wires is explained in the first reference hack in detail.
First, the existing connections are desoldered from the location shown in the photo and as explained the the links above. Then two wires are soldered at the described positions which was connected to a 1/4" mono jack.
Step 2: Map the USB Keyboard
As shown in Dave Merrill's Key-Ped project, a cheap USB keyboard can be taken apart to serve as the input to the PC. This hack takes advantage of the fact that two keyboards can be used at the same time for input (so far this was true in Windows XP and OS X). When dissasembled, the keyboard has two main parts: a membrane of circuits that form a matrix mapping to keys, and a circuit board that scans the membrane switches for activity.
I found the numbers 0 to 9 and traced them to where they were connected to the circuit board. Each number/character is mapped to two inputs on the circuit board, so when that combination is switched, the keyboard sends the corresponding character to the PC.
Step 3: Create USB Connection Box
A standard project box (can be purchased at Radio Shack) was used to hold the keyboard's circuit board and 1/4" jacks. The Easy Buttons will be plugged into this box using a guitar or other 1/4" mono cable. I drilled holes in the project box for each jack and fastened the jacks in place. After soldering is completed, the circuit board will be put in the box as well and a hole is drilled on the side of the box for its USB cable.
Wires need to be soldered onto the 1/4" jacks. The other end of these wires will be soldered to the locations on the circuit board that we mapped in the previous step.
Step 4: Solder the Circuit Board
Using the mapping from Step 2, solder the wires from each 1'4" jack to a number's mapped locations on the USB keyboard's circuit board. This soldering took a delicate touch to avoid potential shorts, plus the soldered points were then covered (sloppily) with electrical tape to prevent shorts when everything is put into the box.
Step 5: Use the Button!
Once everything is soldered together, the input device is ready to use. Plug the USB connection to your computer, write a program that accepts input from a keyboard, and that's it!
See a video of a performance here