This is a board for the USBJoy project made by Sergey Ryumik for the Russian magazine “RADIO” (2007,number 1, page 28-31), which was made using the firmware from ObDev that implements USB protocol on the AVR chips.

Basically, it is a PlayStation controller to USB adaptor. (Yes, I play to much videogame and I know it).


The circuit is very simple, the Atmega8 do all the work, there is just some resistors and zeners to meet the standards for USB protocol, the oscillator crystal and some filtering caps




Have you ever seen an electronic store selling a PSX controller connector?

Sure, you can buy an extensor and cut the cable, but you can also buy a PSX to USB adapter for cheap if you want. This is not the point, the point here is make something yourself (and if you have the rights tools beforehand, this is cheaper than buying the adapter [At least I think it is in Brazil]).

So we have to use another connector readily available in an electronic store.

You probably already made one of this yourself in the old times, real old school here.


Yes, you remember the old days playing Chrono Trigger on the PC with your SNES controller modified to work on a parallel port don’t you?


Well, my PSX controller have this mod and a vast majority of you guys probably have it to, so I will be using a DB-25 connector, but please notice that this is not mandatory, you can use whatever connector you like, I’m just giving you a hint.

PS: Raphael from was detailed how-to to making this mod in your controller, go check it out.
How to connect a Playstation controller to a PC
Check it the SNES how-to as well, since it contains more photos and such.
How to connect a Snes controller to a PC


If you take a look at the schematics from the original project and compare with mine, you will notice that my board doesn’t have a diode between the +5V and the +3, 5V, actually, there isn’t a +3,5V pin. That is because if you have done the joystick-to-parallel mod, the diode will be inside the DB-25 case.

So if you don’t want to do the joystick-to-parallel mod, remember to put the diode between the +5V output and the controller. (Forgetting this will probably not fry the board or the controller, but there is a chance that it may not work).


The schematics and the board file in eagle format.
The schematics in PNG.
The schematics to the pinhead->DB-25 part in PNG.

These are released as-is under
Creative Commons 3.0 – Attribution – Share Alike


The board is small, 75 x 37 milimeters (2,95 x 1,45 inch), have few components, and seems simple viewed from the top. But this is not a easy board to make at home, you can make it, but there is a lot of vias to close to each other. So if you are new to home etching, you should probably make this on a perf board.



The gamepad responds well, the analog sticks functions perfectly, and the L3 and R3 work to. The rumble don’t work, but this is normal since it would be necessary to provide +7,5V to the rumble motor to make it work, so Sergey probably didn’t bother to implement that. But it worked on every emulator that I tried and it’s a very good controller to play anything (DS, GBA, 64, PSX, SNES, etc…).


Go to ObDev and download the, extract the zip, then go to


There you should find the main_psx.hex, upload the code, then upload the fuse bits, which are CKOPT=”0″ and BODEN=”0″.

(Yes, this is a lazy explanation, I promise to rewrite this later)



Plug the USBJoy to a USB port, the led should start blinking and the USBJoy should be recognized by your computer, if the led do not blink, remove the USBJoy immediately and look trough the connections on your board, if nothing seems wrong, try to read the chip and see if everything is all right there.

Plug your controller and open the Game Controllers, see if the buttons are working ok and test the analog sticks.

Have fun!

6 thoughts on “USBJoy

  1. Pingback: Make More Money » Blog Archive » DIY PSX to USB is A-OK!

  2. Pingback: DIY PSX to USB is A-OK! » Developages - Development and Technology Blog

  3. Pingback: DIY: PSX to USB |


  5. Hey George, sorry for the delay man…

    Anyway, to tell you the truth i only tested the USBJoy with a no-name controller.
    But the USBJoy is not my project (unfortunately) and has been tested by a lot of people way before I did a board for it.

    And it probably work with sony original controller, since the protocol is the same and such, but the sony controllers are more demanding with the power source.

    The thing is sony requires a 3.5V power, and the USBJoy provides 5V, this is not a problem to most no-names controllers, but the sony ones may not work.

    But that is why in the Controller to Parallel port mod there are 1n4148 diodes that bring the 5V to something closer to 3.5V.

    So try to put another 1n4148 diode between the 5V and the controller.

  6. Pingback: » Project time

Leave a Reply

Your email address will not be published. Required fields are marked *

− 3 = 2

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>