USB Midi Device From Old Gamepad





Introduction: USB Midi Device From Old Gamepad

You can spend a lot of money on an expensive USB Midi device, or make your own. You can buy HID USB boards and build your own totally from scratch. To make the process even easier, salvage an old USB gamepad and all you need is just a few parts. This project can easily be done for under $10, if you get cheap buttons and a second-hand controller.

What you need:
1 USB Gamepad (I used an old Gravis Gamepad Pro.)
1 small project box
10 push-button n.o. switches (Normally Open: Contact closes when button pressed.)
10 LEDs & 220-Ohm resistors (optional)

These parts should run you about $10, less if you scavenge LED and switches from old electronics. Substitute a small kid's lunch box for the project box and be old school!

Step 1: Tools

small screwdrivers
soldering iron
drill (I needed 1/4in and 5mm bits)
wire cutters/strippers
ruler and square
electrical tape
solder, solder braid (clean up messes)
rubber feet (so it doesn't move as you're jamming)
small spool of shielded wire

Step 2: Obtain a USB Gamepad

I got an old Gravis Gamepad Pro at a thrift store.

Step 3: Remove the Screws From the Back of the Gamepad

Make sure you have the gamepad disconnected from your computer first!

Step 4: Carefully Unscrew the Controller Board

Step 5: Gently Pry Controller Board From Gamepad

I also had to remove the purple buttons.
I tossed the plastic gamepad in the recycler since Gravis was kind enough to have their plastic stamped for recycling.

Step 6: Solder Wires to Each of the Two Contacts (see Next Step)

This needs to be done for each button you want to use. Color coding makes things easier.

Or solder using a ground. (see next step)

Step 7: Solder Wire Contacts With Ground (optional)

Alternatively, you can figure out which of the button contacts is the hot and which is ground. You can connect multiple grounds together. Each button's hot will still need its own wire.

Step 8: Label and Secure the Control Board

Label each wire and cover with tape to insulate from accidental short and to help hold onto the control board.

Step 9: Solder Resistor to the LEDs (optional)

Solder a 220-Ohm to the long (positive) end of each LED. This will insure your LEDs do not burn out. Extend the other peg with a wire to connect to a ground.

Step 10: Make a Template

Make a template for your device. Space your buttons apart for easy access but not too close as to accidentally trigger. I include my draft which is for a 15cm x 10cm x 6cm project box. I chose to use the base of the box because I didn't want to see the screws.

Step 11: Measure and Drill

Use a ruler and a square to find the center points for each hole and drill. Use a small bit to drill a pilot hole and increase the size slowly. You don't want to crack the plastic forcing a large bit. You can go ahead and mount in the switches after you have drilled all the holes.

Step 12: Solder LED to Switch (optional)

Solder the positive end that has the resistor attached to one end of the switch. It can be either pole of the switch.

Step 13: Secure the Control Board to the Project Box

I glued a piece of cardboard into the base of the project box and screwed the control board into it.

Step 14: Solder the Pad to the Switch

Solder the positive ends of the gamepad controls to the other pole of the switch. Connect up the ground ends to the common ground point.

Step 15: Drill Hole for Strain Relief

Use the strain relief the manufacturer provided. I drilled a hole in the back and fit it in so the cord can't be ripped from the assembly.

Step 16: Install Software

PC Users:
Joystick to Midi program ( MJoy, Joy2Midi, Rejoice, GlovePIE )
Virtual midi cable program ( MIDI Yoke or Maple Cable)

Mac users can use MultiControl or ControllerMate

Linux users, I don't know what application you need. I know they do exist however.

You will need to reboot after you install a virtual midi cable program.
If you have a joystick with more than x,y axis MJoy is the superior app. However it's limited to only six buttons. If your joystick has many buttons, Rejoice or Joy2Midi is better. GlovePIE requires some coding.

Set the Midi Out of joystick app to Midi Yoke 1. Then in your audio app, set Midi In to Midi Yoke 1.

Here is a video of someone using Midi Yoke and Rejoice:

*note: The link in the video for Rejoice is broken.

Step 17: Make Great Music

Special Thanks to:
All the makers of the free software, thanks for your hard work



  • Microcontroller Contest

    Microcontroller Contest
  • Science of Cooking

    Science of Cooking
  • Pocket-Sized Contest

    Pocket-Sized Contest

We have a be nice policy.
Please be positive and constructive.




i still confuse how to connect the led to triggering? but i make it paraller and finally i done!
(sorry for my language im not english)


looks great, could you help me with the wiring. My game pad doesn't have the dot to determine ground? Any help I'd be very grateful, thanks

hi, well when im wiring, the first thing i do is determine where is the ground at, in my case the ground were close to the positive in do so i carefully soldered it since it risky to soldered between two of them i used trick like to put the flux at the cable then melted it again with the pcb, (again sorry my english hope this help)

are the arcade buttons powered by 12V or 5V?

hi, sorry for late reply im using 12v arcade button and until today my controller still works like new

Hi guys! just have a question on the led part. Does it light up on press?.. cause if it is... this is freaking awesome. Im planning to make a midi fighter style out of this project.

And is 220ohms resistor enough to make ultrabright leds lit up? Or what happens to the leds if i press buttons simultaneously?

I installed MIDI YOKE but i can't find ed on my PC?

Same problem for me!! Anybody out there to help us?

You've probably already figured it out, but just in case -- when you install Midi Yoke it's not a program that you run to use. It sets up virtual midi ports in your computer that you can use within other programs. After installation open any program that can send or receive midi and you should see Midi Yoke inputs and outputs listed there. Good luck!