Okay, long story short, I needed an Arduino board, and the only one I had to hand was buried inside my double-awesome PIK3A Raspberry Pi 3 Retro Gaming Table.
I could rob it from the table, but then how was I supposed to loaf around all evening playing Double Dragon, or Bubble Bobble, or Gradius? As always, necessity proved to be the mother of invention, and I found an option for hacking together an ultra-cheap Raspberry Pi interface for arcade controls that works superbly well.
Cheapest. Arcade Controls. EVER!
Because of all the cool retro gaming stuff we've been doing lately, I had one of these kicking around the house. It's a knock off SNES-style USB controller for the PC, but it also works (plug 'n' play) on the Raspberry Pi. I ripped out its guts, soldered wires to the button pads, connected the PIK3A table's controls to those wires, and plugged it into the Raspberry Pi.
Note that it's not an original SNES controller. This is a USB joypad -- don't buy the wrong one or it won't work!
It's very responsive (great for button bashing), doesn't require any set up (unless you want to rearrange the buttons, but that's not a necessity), it has six buttons plus START and SELECT/COIN, and it costs less than a fiver. In fact, if you're willing to wait for one to arrive from China, you can build this for less than two quid, making it the cheapest arcade encoder on the entire interwebs.
It'll even work on your PC, and probably your Xbox and Playstation (untested).
Here's a bit more detail.
Take the controller apart, and remove the PCB.
Tin the button pads with solder, being careful not to melt them or lift them off the PCB. Be quick and neat with your tinning.
If you look closely, every pad has two connections, and one side is common to every button. There's a big, wide track that connects one side of all the pads together. This is the ground connection. You only need to tin the side of each that isn't ground. It's the one that isn't connected to the big wide track that loops around all the buttons.
Except, that is, for one of the buttons. You're going to connect a ground wire to that side of one pad, which is then automatically connected to one side of all the other buttons, thanks to the big wide ground track that's running around the PCB. Make sense?
Solder a short wire to each of the button pads you just tinned, including one for the ground side, which will serve all the buttons on the PCB.
You can see my ground wire on the far left hand pad. That's the only button pad that has two wires connected to it.
When soldering your wires, make sure you don't short the two sides of the pad together, or the encoder will think the button is constantly being pressed.
Strip the ends of your wires, and stuff them into some chock block. I put mine into the connector block in order; so the wires go GROUND, UP, DOWN, LEFT, RIGHT, BUTTON 1, BUTTON 2, etc.
You don't have to, but it makes it easier when it comes to connecting your arcade controls to the other side of the chock block.
Connect your arcade controls to the other side of the chock block. Your arcade controls now take the place of the buttons that were on the joypad. In the image below, you're looking at the underneath of my arcade buttons (on the left) and joystick (on the right). The wires from those go into the connector block for the encoder PCB. You could hard wire direct to the encoder, but if you ever need to replace it, that'd be a major pain. Better to make it removable.
As with the ground track that runs around one side of all the button pads on the encoder PCB, my arcade controls have a ground wire that runs around one side of all the buttons and joystick microswitches. This way, only one ground wire is needed, reducing the number of wires significantly.
Plug the encoder PCB's USB cable into the Raspberry Pi, and it should work right off the bat!
Got your retro gaming blood pumping all over again?
So go check out our awesome giveaway, where you can win Ben Heck's one-of-a-kind portable Atari 2600 console!