3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

PS1 Controller Joysticks with Arduino

PS1 Controller Joysticks with Arduino
Idea: To take one of my old Playstation 1 controllers and extract the dual thumbstick setup so that it can be easily used in a microcontroller project (in my case: with the Arduino) without extra libraries or drivers that you would need if you want to use the entire controller.

Please let me know what you think or if you have questions/criticism for me! I'm always looking to learn new things.

Required materials:
              ~ Playstation 1 controller
              ~ Soldering Iron
              ~ Solder
              ~ Knife
              ~ Wire strippers/cutters
              ~ Electrical Tape
              ~ Small Phillips head screwdriver
              ~ Two mid-value resistors (for pushbutton cicuits)
              ~ Third Hand (not absolutely necessary but makes soldering small things much much easier)
              ~ 22 gauge wire

Video Demo:


Demo code (copy and paste the following text into the Arduino IDE):

const byte leftClick = 2; //assign the pins for the buttons
const byte rightClick = 3;
const byte leftVert = A2;
//assign the pins for the pots
const byte leftHor = A3;
const byte rightVert = A0;
const byte rightHor = A1;

int delayTime = 50;
//so the serial output is more readable

void setup(){

pinMode(leftClick, INPUT);
//set button pins to input
pinMode(rightClick, INPUT);

Serial.begin(9600);
//lets arduino send text to computer
}

void loop(){
//output formatted as leftHorizontal, leftVertical, leftButton, rightButton, rightHorizontal, rightVertical
Serial.print(analogRead(leftHor));
Serial.print(", ");
Serial.print(analogRead(leftVert));

Serial.print(" ");
Serial.print(digitalRead(leftClick));
Serial.print(" ");
Serial.print(digitalRead(rightClick));
Serial.print(" ");

Serial.print(analogRead(rightHor));
Serial.print(", ");
Serial.println(analogRead(rightVert));

delay(delayTime);
}

 

 
Remove these adsRemove these ads by Signing Up
 

Step 1[Figuratively] Rip it Apart

[Figuratively] Rip it Apart
«
  • P1000787.JPG
  • P1000789.JPG
  • P1000797.JPG
  • P1000799.JPG
  • P1000781.JPG
  • P1000782.JPG
  • P1000783.JPG
  • P1000785.JPG
  • last photo ←
»
The controller is really easy to take apart. First unscrew the 7 Phillips head screws on the outside of the controller. When you open it up, you'll see one more screw on the right of a clear plastic piece (the plastic piece just reflects a small LED that's mounted on the main PCB) which is necessary to screw everything back together (if you're not planning on using the controller case again, you can just toss it). Unscrew the last screw and cut the white wire ribbon holding the thumbsticks to the main PCB (cut it so that you have a lot of wire ribbon on your end--it makes the soldering much easier).

I could have desoldered the joysticks and buttons and used them individually, but I wanted them together as a whole since it's a good way to have really compact dual joysticks for a future project (most likely a wireless robot).


Some things to note: there are two different sized rumble motors you can salvage as well as the L1 and R1 shoulder buttons which are in their own casing. I took the motors but tossed the shoulder buttons because I don't plan on ever using them, but someone might find a use.
I haven't tried finding the specs for the motors yet, but I assume it must be around 5v. If anyone knows, let me know.
« Previous StepDownload PDFView All StepsNext Step »
10 comments
Apr 19, 2012. 11:54 AMbiomech75 says:
It an awesome project but the connections are not clear for:

analog board connections
connection from analog to Arduino board

;)
Oct 31, 2011. 7:58 AMemihackr97 says:
Hi, just a little tip, did you know you can DIGITALLY interface the ps1 controller to your arduino?
it's really easy, there's even a library for it, and you need less pins and have info abaut ALL the buttons.
Google it
Nov 17, 2011. 8:14 AMatif khair says:
Arduino chip are place inside the playstation joystick that understand what command is given by user.
Jaycon
Nov 11, 2011. 8:17 PMTobaTobias says:
Great projects! Very nicely done. I am going to give it a shot.
I would love to see what projects you do with the joysticks!
Jun 17, 2011. 2:24 PMaxeman911 says:
hi, my controller is the H late version so my wires are a bit different and there are a total of 16 pins instead of 8 so should i just put two pins together to get a total of a wires?
Jun 13, 2011. 4:32 AMPyroMonger says:
This is the sort of project ive been looking for, for a while. Do u think this could be improvised into an RC project via arduino ethernet shield or somewhere along those lines?
Great Project!
Jun 10, 2011. 5:58 AMjrossetti says:
Awesome work!

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
3
Followers
1
Author:Finnio