Introduction: Arcade MIDI Controller

I'm sure that you have seen those cool videos of people jamming on a box with a bunch of buttons on it. Well, today, I will be showing you how you too can make a box with which you can make jams. 《 Inspired by the MIDI Fighter Classic

Step 1: The Hard Stuff


16 || 24mm arcade buttons

You may choose the Sanwa variety for quality or the not-Sanwa variety if you're cheap like me and don't mind waiting a month to receive the buttons

6 || 24mm arcade buttons

Of a complimentary colour to match the 〖 a e s t h e t i c s 〗of the other 16 buttons

16 || 2mm LED

I honestly don't know why I picked 2mm LED, the 3mm variety is much more common and don't come in intervals of 100s

4 || 220Ω Resistors (aka computer wire with beads)

For current limiting the LEDs so they don't blow up

1 || Teensy 2.0 microcontroller

Does the buttons to MIDI stuff, you can find them at most electronic stores

1 || 74HC595

Used to control the LEDs

1 || arcrylic enclosure

Feel free to laser cut one out of any 3mm thick material using the provided EPS files, or just get it precut from Ponoko

A Lot || Shrink Tubing aka shrinkydink wrap

The assorted kind is the best.


1 || soldering station

A soldering iron is a inferior, but alternative choice

Some || solder

and flux if you're feeling like it's one of those days

1 || heat gun

For the shrinkydink wrap

Some || glue

acrylic cement, super, gorilla, epoxy, glue gun, or that sorts


1 || multimeter

Used to check if your buttons are working like buttons and other electrical stuff

Some || ribbon cable

Makes connecting the buttons to the Teensy somewhat easier and neater

44 || vinyl double crimps

Makes it a lot easier to attach the ribbon cable to the button leads. I just couldn't find any that was the correct size at Fry's

Step 2: Test the Buttons

As simple as buttons go, it's a good idea to test them to see if they all work.

This is how you can do that:

  1. Set your multimeter to the signal option.
  2. Put each of the multimeter leads to one of the two leads on the buttons.
  3. Press the button.
    1. If beep, your button is indeed a button. Proceed to do this with the rest of your buttons
    2. If no beep, check if your leads are making a good connection
    3. If still no beep, then your button is not a button. Find a replacement button for said not-button.

Step 3: Test the LEDs

Rather be safe than sorry; at least with the buttons, they're relatively easy to replace, but with the LEDs, if you solder them into the matrix and realize one doesn't work, then it'll be sad times.

Step 4: Add the Blinky Things

You might have noticed there are little holes next to each of bigger button holes. As you might have guess, they are for LEDs. The original design were intended to for 2mm holes, but if you would like to use 3mm LEDs, feel free to edit the designs so that they'll fit.

  1. Bend the LED as per the picture, the longer lead inline with the LED body and the shorter lead perpendicular to the LED body (with respect to the long side of the LED).
  2. Snip off most of the shorter lead, and solder a resistor to it. Aside from the fact that you need a resistor to limit the current on the LEDs, I also dun goofed and the LED leads are actually 2 mm to short of being able to solder together into a matrix. This is why I used 16 resistors to extend the lead just long enough to solder it to the adjacent LED to form the matrix.
  3. Lay out the LED resistor combo into the holes to form the matrix. Bear in mind, the lead that stick out should be facing the side with more space. I rotated it 90 degrees, which made some of the leads stick out because I can't geometry.
  4. Solder all the resistor rows together.
  5. Slide on shrinkydink wrap on the non-resistor columns.
  6. Solder the non-resistor columns together and heat gun the shrinkydink.

Step 5: Manual Button Insertion

After you have assembled all the required parts, it's time to put all the stuff together!

  1. Insert the buttons with the two retention chips are vertical, as per the first picture.
  2. The leads on the back should look like the second picture.
  3. Insert a button in ever other hole. YOU MUST DO IT THIS THIS ORDER!
  4. Fill in the the rest of the holes with the remaining buttons
  5. Make sure all the leads are lined up.
  6. Don't forget to do the side panels too.

Step 6: Button Hookup

I'll assume that you are using ribbon cable for this soldering exercise. If you're just using normal gauge wire, just solder a wire to one of the leads on each button, which will go into the Teensy and connect the remaining lead on the buttons together however you like, which will go to the ground on the Teensy.

If you are indeed using a ribbon cable, it is pretty much the same concept, but requires a bit of cable management skills.

  1. Solder one of the pins of each buttons in order of the Teensy pins, skipping over pin 1, 2, and 8 (these will be used for the 74HC595).
  2. Keep track of which button is attached to which pin. It doesn't really matter, so long as long as you write it down somewhere and remember what went where.
  3. Solder all of the second pins of each button together however you like. I chose to wire them out individually and solder blob the ends together. You may choose to do the same, or select a different way to connect them all together.
  4. Take that giant blob and connect it to the ground pin on the Teensy. I used the on programming pin because the other ground pin was underneath one of the panels.

I probably should of taken more pictures for this step.

Step 7: LED Hookup

Remember how I told you to save pins 1, 2, and 8 on the Teensy. Well, this is where you find out why.

  1. Hook up pin 1 of the Teensy to pin 11 of the 74HC595. This is the clock line.
  2. Hook up pin 2 of the Teensy to pin 14 of the 74HC595. This is the data line.
  3. Hook up pin 8 of the Teensy to pin 12 of the 74HC595. This is the latch line.
  4. Pretty much follow this Instructable.

You might wanna test the LED Matrix before you solder anything onto it. I didn't do this and I found out one of the LEDs blew...

Step 8: Close the Box

This is the part where you have to think inside the box, more specifically, it's where the box is put together.

  1. Glue all the sides together.
  2. Glue the Teensy to the bottom panel.
  3. Pop the bottom panel on. You can glue this or just let the tolerance hold it in place. I chose the latter.

Step 9: The Soft Stuff

This is the part where I got kind of lazy (not really, I just have been too busy with other stuff) to write a proper firmware for the MIDI controller. Buttons.ino will allow the controller to be recognized as a MIDI device and you can set it up to work with Ableton or other DAWs. I will update this section with code that animates the LEDs. Sorry...

Step 10: Conclusion

There you have it! You own box of buttons! You can also use it as a keyboard or game controller if you'd like. Maybe for my next project, I'll make one where the buttons light up. Or maybe a unicycle. Who knows? UmamiFish out.

First Time Author Contest 2016

Participated in the
First Time Author Contest 2016