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 raphnet.net 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).
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 usbjoy_20060108.zip, 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.