Arcade controller

Functional description

Charles began his search with an old controller for an educational console he'd bought at a Value Village. After taking it apart and analyzing it (very interesting research that will surely make a good blog post one of these days), he finally decided to go to Abra to get some buttons and a joystick.

The controller runs on PS3, Windows and Mac OSX thanks to UnoJoyan Open Source library for Arduino that's pretty easy to use. The only thing that's a bit complex is changing the bootloaderwhich we will be documenting shortly.

An Arduino UNO is used to read out the joystick and the eight buttons. Everything is transferred (and powered!) via USB cable.

Contact and questions

If you have any questions about the project, please write to us at info@echofab.org

Contributors to this project

Charles Chiasson Greffard - Project start-up and hardware & software design.
Roby Provost - Software and hardware research & consulting.
Raphael Demers, Yoann Ochietti & Jules Deslandes - Advice & moral support.

If your name does not appear, please add it to the list or contact us!

Demonstration

Project completion stages

  • Step #1

At the moment, the case is simply composed of two pieces of transparent acrylic, spaced by screws and bolts.

This is a simple and inexpensive way of making a case, since a box of 100 screws and a box of 100 bolts cost a total of $9. You can also substitute plywood for acrylic.

Knowing that the buttons have a diameter of 30mm, we drilled 31mm holes at the required spacings. As for the joystick, we used a vernier scale to determine the size of the handle, then increased the diameter slightly to give it room to move during use.

We also planned 9 holes for sandwish construction. Everything was drawn using SketchUp.

The model is available here.

  • Step #2

Since we have two CNC cutting machines at echoFab, we used the Raptor to cut the acrylic panels.

A paragraph detailing the parameters used is available here.

  • Step #3

Once the top panel was finished, Charles installed the buttons and joystick, then began soldering the electronic components. The Arduino headers were removed to connect the buttons and joystick directly to the PCB, reducing the risk of disconnection or potential problems.

Nothing could be simpler than connecting buttons to the Arduino. By using PULLUP mode, we avoid noise in our signal. The joystick is in fact an assembly of 4 lever pushbuttons (endswitch / limit switch). We connected them in the same way as the buttons.

All that's left is to add a few tie-wraps, then replace the bottom surface to complete the job.

English