When my Gameduino arrived it didn't take me very long to decide that the Sparkfun joystick isn't very ergonomic.
It works OK but it's a bit spikey in your hands and has a whole bunch of cables and bare electronics attached to it.
Luckily for me I've been saving an old TV game for exactly this sort of occasion. I kept it because it has a wonderful clicky microswitch joystick on it, just like a real old-fashioned arcade machine.
An old TV-game dreaming of becoming a Gameduino joystick...
At first I had thoughts of trying to cram the Gameduino inside but when I opened it up it was obvious that it was never going to fit!
The next step was to snip out all the innards, leaving behind the connecting wires to all the buttons.
If this image disturbs you then maybe you're not right for Gameduino...
Next I needed a cable to connect everything up. There's four joystick switches, five buttons and you also need a ground wire, that adds up to nine. A quick trip to the local electronics shop got me two meters of ten-core cable.
Now it's time for the soldering iron. Each of the nine switches needs to make a connection between the ground wire and one of the other strands. Luckily the joystick already had a ground wire which went around all the switches so half the job was already done. All I had to do was connect my black wire to that ground loop and a different colored wire to each of the other contacts.
There was one fiddly bit because the "menu" button was on a little PCB all by itself but no real problems
Also, glue the main cable in place before you start soldering, it makes life much easier. Make sure you stripped off enough of the outer insulation for the wires to reach their destinations.
That's the joystick wiring done, now for the Arduino...
At the Arduino end I decided to solder the wires directly to the pins of the Sparkfun joystick board. You can get special Arduino boards for this sort of thing but I didn't have one.
I glued the wire to the board hoping it would stick. Anything stronger would mean drilling holes in the board.
Yes, the glue came unstuck after two days - I ended up drilling and using a zip tie...
I wired the four buttons to the same pins as the Sparkfun buttons and the four joystick switches to the analog pins. I wired the 'menu' button to the Arduino reset line so I can easily reset it from the joystick.
When choosing pins, be aware that Arduino uses pins 0 and 1; Gameduino uses pins 2, 9, 11, 12 and 13; so you can't use any of those. Arduino's analog pins can work as digital pins too so there's no problem.
All working! Next step: Write the software...
The resulting joystick works great - absolutely perfect for Gameduino-style games.
If you're a fan of NES type controllers the job of connecting one up would be very similar to this. All you'll need is a soldering iron, some cable and enough courage to start...
I configured the left hand buttons as 'Select' and 'Start'. The complete setup can be found as the default "custom joystick" in the joystick reader library.
I just looked on ebay and you can get the exact same TV game second hand for about $10-$15 - a bargain if you want a decent arcade joystick with four buttons in a cute little console!