Introduction: Retro to USB Joystick Junction

About: 10+2th standard Student of India ALIVE AND KICKING.

Hey there, this is my second instructable for the Arduino contest.

If you are the guy who broke your retro video game console and still wanna play the games the whole same way, you are at the right place. I even broke my famiclone console and missed Super Mario very much. So I got an emulator on PC but it was not the same feel with keyboard. Then I tried DVD player but it was way too glithcy. Then i broke apart my keyboard to add the console joystick to it but it was too messy. I needed a nice thing to mimic keyboard strokes.

Then came Arduino. I tried UNO but in vain. Then after a long time i got hands on the Arduino Micro and this is what i made out of it.

Step 1: MATERIALS LIST

For prototype

  • Game cartridge(or any other box---------breadboard will even work but thats messy)
  • Two(or one) console joystick which has five active pins(ground,+5v, latch,clock,data)

*don't worry if you got a seven pin or more pins joystick, many a times old joysticks have only five active pins.Even mine has seven pins.

  • Arduino Micro(nothing without it)
  • Breadboard
  • Male joystick port(can be extracted from broken console)

For finished project just add these on list

  • Perfboard
  • Female header strips
  • Soldering kit

Step 2: Step 1: Getting All Connected

Different joysticks have different pin-outs for the latch, clock, data, Gnd and +5v.

So you must find them yourself.

To do this," google [your joystick model name] pinout "and find all the five pins.

Then connect as follows on breadboard for prototyping

Arduino----joystick1---joystick 2

gnd--------->gnd-------->gnd

+5v------->+5v/vcc--->+5v/vcc

d11-------->clock------->clock

d12--------->latch------>latch

d9---------->data

d8-------------------------->data

Don't be mistaken. Except for data pins all the pins are are connected together to the same pin on arduino.

Step 3: Step 2:Uploading the Code

First of all we talk about the working.

Old joystick usually had 5 pins ;Gnd, +5v, latch, clock, data. The code in Arduino first sends a latch pulse to joystick and joystick says,

"hey Whats Up, this is the first data bit"

then the Arduino sends the clock pulse and joystick says,

"take the second bit bro"

and so on till 8 bits for 8 keys.

*turbo keys are just repetitive a and b's

So here is the code which does the same as above.

upload the code and check the working.

There is a photo of the project and the second joystick sending keystrokes above.

Step 4: Step 3:Finishing It Off

If all goes right then you may get all the stuff to the perfboard and adjust the things in a box.

I got the arduino on outside for two reasons.

  • First,as it is aesthetic. It feels like arduino sucks the data and tranmits it via USB.
  • Second, i want to reuse it in my quadcopter.

Hope the quad gets fly'in soon.

Decorate your junction and happy tinkering.

questions and queries answered in comments.

Arduino Contest 2019

Participated in the
Arduino Contest 2019