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!

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

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

Craftsman Workshop of the Future Contest

Participated in the
Craftsman Workshop of the Future Contest

1 Person Made This Project!


  • Instrument Contest

    Instrument Contest
  • Make it Glow Contest

    Make it Glow Contest
  • STEM Contest

    STEM Contest

73 Discussions


5 years ago

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)

4 replies

Reply 3 years ago

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


Reply 1 year ago

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)


Reply 1 year ago

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


3 years ago

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.

1 reply

Reply 3 years ago

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

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!

Claudio B

4 years ago

Genial!!! Funciona perfecto.

En mi caso quería armar un foot switch casero para el programa Amplitube3 (para controlar los pedales).

Primero bajar e instalar el Midi Yoke de :

Reiniciar la PC.

Luego bajar el Fergo JoystickMidi de:

Instalarlo y configurar los botones del joystick que vamos a utilizar (es sencillo).

En la parte Setup - Output device: Out To MIDI Yoke: 1

Dejar encendido el programa Fergo JoystickMIDI.

Luego en el programa que quieras usar (AmpliTube3, Reason, Ableton) , seleccionar como midi input: In From Midi Yoke: 1

Con cada botón del joystick pude encender y apagar cada pedal virtual.

Desde el programa Fergo JoystickMidi podemos configurar si cuando toquemos el botón funcione como un timbre, (mientras esté presionado funcione y al soltarlo no), o como un interruptor (al presionarlo enciende y hay que volver a presionarlo para apagarlo) .

En el caso de los pedales para Amplitube lo uso como interruptor para encender y apagar cada pedal.

Podemos usar los controles anlógicos del Joystick por ejemplo para usar un pedal de expresión como el wah wah.


5 years ago on Introduction

Is there a way to connect the LEDs and control them with software? For example, if I connect a button and assign it to Low Kill in Traktor PRO, can I assign the output to LED so when i press the button and activate a low kill the LED lights up, and when I press the button again to deactivate low kill the LED turns off?

1 reply

4 years ago on Step 17

I want to do something very similar only do I need ir-slot sensors to trigger the Buttons...any idea?


4 years ago on Step 16

Bagus artikelnya,, sangat bermanfaat... ^_^

Share juga 14.279 Midi Karaoke Full Lirik (1 Link Download)


9 years ago on Introduction

Can you explain the soldering more? I don't really understand how you can solder to a pcb contact.

1 reply

9 years ago on Introduction

hi, can anyone tell me if i can convert (replace) axis buttons to analog fader. if it can be done how should i do it?

2 replies

Reply 9 years ago on Introduction

You can remove the analog joysticks, and replace them with 100K potentiometers for a total of 4.


Reply 5 years ago on Introduction

It depends on the joypad. He should check the resistance of the potentiometer first: mine uses 10K potentiometers.