The Arduboy is a wonderful little open-source, Arduino-based, pocket-sized game machine -- but what if you want to use a full-sized joystick and buttons with it? You can, and it's surprisingly easy!! 

I wanted to do this for fun, and to play the great Space Invaders-like game Picovaders. But you can also use these techniques in assistive technology to make the Arduboy accessible to people who have limited/impaired use of their thumbs for fine motor control. All sorts of buttons and switches can be substituted for the on-board controls.

Parts & Materials

Here's what you'll need to add a joystick and two buttons to the Arduboy:

1 x Arduboy
Pocket-sized, open source game system
1 x Arcade Joystick
Snappy eight-way joystick with microswitches
1 x Arcade Button - red
30mm Translucent

You'll also want a box of some kind for your enclosure/stand. This can be a cigar box, as shown here, a cardboard box, or maybe you'll make your own design for 3D printing, laser cutting, or CNC milling!

Tools

  • Wire cutters
  • Wire strippers
  • Small Philips screwdriver
  • Soldering iron and solder
  • Drill with three bits sized:
    • 1-1/4" Forstner bit for buttons
    • 3/8" drill bit for joystick shaft
    • 5/32" drill bit for joystick screw mounts
  • Two M4 screws and nuts to secure joystick
  • Utility knife
  • Chisel (optional for making wiring stand hole)
  • Scrap wood and wood glue (optional for making Arduboy dock/stand)

Adding external controls to a game system can sometimes be a bit tricky, as you need to reverse engineer things to understand how they work. Not so in the case of the Arduboy! Its open source nature means there are readily available schematics online, and there are easily accessible pads available on the printed circuit board (PCB) for testing and soldering! (Thanks to the Arduboy community and Kevin Bates for all the info!)

Here's a section of the schematic with the pins for the switches called out:

Solder Leads

To get started, turn off the Arduboy, then grab your screwdriver and open up the case. Remove the back of the case and you'll see the battery. CAREFULLY lift up the battery (the tabs are fragile, so it's good to support them while working in there), and you'll be presented with the beautiful silkscreen!

We'll connect the four switches of our joystick and the two buttons to the following pads, using the color of wires noted (you can also refer to the wiring diagram below):

  • Joystick UP to A0: RED
  • Joystick RIGHT to A1: WHITE
  • Joystick DOWN to A3: BROWN
  • Joystick LEFT to A2: YELLOW
  • Button A to D7: BLUE
  • Button B to D8: GREEN
  • all grounds to GND: BLACK

Cut 10" lengths of your silicone wires and strip some insulation from the ends. Since we need six distinct colors, I cut two lengths of the white wire and colored one brown with a permanent marker.

Next, tin the ends of the wires to prepare them for soldering to the board. You can follow the above list and image for the location of the solder points. I like to tin the pads with a bit of solder, too, and then bring the wire to the pad and reheat both to make a good connection.

The Arduino Leonardo shown in this Fritzing diagram has the same pinouts as the Arduboy (they are both based upon the 32u4 chip) so you can follow this as a guide.

You can now test your connections by turning on the Arduboy and grounding each of the wires by touching them to the black wire. This will operate all of the four D-pad direction buttons and the A and B buttons. If everything is working fine, you can move on to soldering the wires to the joystick and arcade buttons.

Carefully fold the battery back down, set the Arduboy on top of the case front and buttons, and close up the back of the case. You'll want to only use the two top screws so you don't pinch the wires. Alternately, you could cut a small groove in the Arduboy's plastic case at the bottom to give the wire's room to escape even when all four screws are in place.

Wire Harnesses

Next, you'll connect the silicone wires to the wiring harnesses/interconnects of the joystick and buttons. The joystick switch wiring connector has five conductors:

  • Red = UP
  • Orange = RIGHT
  • Brown = DOWN
  • Yellow = LEFT
  • Black = ground

The red arcade button will be the Arduboy's button A, so it'll connect to Arduboy blue and ground.

The clear/white arcade button will be the Arduboy's button B, so it'll connect to Arduboy green and ground.

The connections from the Arduboy will be as follows:

  • Red to joystick red
  • White to joystick orange
  • Brown to joystick brown
  • Yellow to joystick yellow

 

Again, you can refer to the wiring diagram above. Trim the white plastic JST connector off of two pairs of arcade connector wires, then strip the ends. Two of these will connect to ground and two to the D7 and D8 pads respectively on the Arduboy.

Place a small piece of heat shrink tubing over one wire in each pair to be soldered. Then, twist the wires together, solder, and cover with the heat shrink tubing, then heat it to shrink.

Note: you can connect all of the ground wires together and solder/heat shrink the connection.

Now that your Arduboy is wired, you can build your cabinet. There are many different materials and techniques you can use, from cardboard to LEGO, and 3D printing to woodworking. I'll show one method here, but feel free to get creative!

Holes

I drilled three holes for the joystick shaft and mounting screws, plus two more for the arcade buttons. I matched the sizes of bits to the job: 

  • 1-1/4" Forstner bit for buttons
  • 3/8" drill bit for joystick shaft
  • 5/32" drill bit for joystick screw mounts

Start by measuring, marking, and drilling for the joystick using the two proper size bits.

Then, do the same for the buttons, switching to the large Forstner bit. To prevent tear-out, it helps to place some scrap wood underneath the back side of where you're drilling the hole (see live build video for details.)

Dock

  • You'll also need to cut a hole to feed the wiring and connectors from the outside to the inside of the box
  • I made a rectangular series of cuts with a utility knife, and then used a chisel to cut out the hole big enough to fit the joystick interconnect
  • I also cut small pieces of scrap wood to form a dock base to hold the Arduboy at a jaunty angle

Assembly

Now, you can attach the buttons and joystick, then feed all of the wiring into the box from the top and make the connections inside!

Buttons

Push both buttons into their holes. They will snap into place, with the plastic retention clips that are molded into the button securing them.

Joystick

  • Unscrew the ball from the end of the joystick, and remove the white collar. Then, push the joystick into place from the underside of the box
  • Make sure you maintain the proper direction of the joystick, with the interconnect facing "up"
  • Screw in the joystick from the topside, with the nuts underneath
  • Replace the white collar, and screw on the red ball

Connections

  • Push the interconnect wires into the box from the top side
  • Connect the joystick interconnect to the joystick as shown
  • Push the quick connect terminal from the green wire onto either lug on the white B button
  • Push the terminal from either ground quick connect onto the other lug of the white B button
  • Repeat this for the red A button

Your assembly is complete! Close up the bottom of the box, and then set the Arduboy into its dock!

Turn it on and enjoy some tiny games with big controls!!

This guide was first published on Nov 15, 2017. It was last updated on Nov 15, 2017.