Home > Ideas > Game – Entertainment Project Ideas > PS1 Controller Joysticks with Arduino

PS1 Controller Joysticks with Arduino

Summary of PS1 Controller Joysticks with Arduino


This article details a project to extract the dual thumbstick mechanism from an old PlayStation 1 controller for use with an Arduino. The goal is to utilize the analog potentiometers and buttons directly without requiring extra libraries or drivers, creating a compact input solution for projects like wireless robots.

Parts used in the PS1 Controller Joysticks with Arduino:

  • Playstation 1 controller
  • Soldering Iron
  • Solder
  • Knife
  • Wire strippers/cutters
  • Electrical Tape
  • Small Phillips head screwdriver
  • Two mid-value resistors
  • Third Hand tool
  • 22 gauge wire
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.
PS1 Controller Joysticks with Arduino
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:

<br />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);
}

Step 1: [Figuratively] Rip it Apart

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).
PS1 Controller Joysticks with Arduino
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.

 

For more detail: PS1 Controller Joysticks with Arduino

Quick Solutions to Questions related to PS1 Controller Joysticks with Arduino:

  • Why extract the thumbsticks instead of using the whole controller?
    To avoid needing extra libraries or drivers required when using the entire controller.
  • What tools are necessary to disassemble the controller?
    A small Phillips head screwdriver, knife, soldering iron, and wire strippers are required.
  • How many screws must be removed to open the controller casing?
    You must unscrew seven Phillips head screws on the outside plus one more on the right side of the clear plastic piece.
  • Can I salvage other components besides the joysticks?
    Yes, you can also salvage two different sized rumble motors and the L1 and R1 shoulder buttons.
  • What voltage do the salvaged rumble motors likely require?
    The author assumes they must run around 5v, though specific specs were not found.
  • Which Arduino pins are assigned to the left joystick buttons in the code?
    The left click button is assigned to pin 2 and the vertical potentiometer to A2 while the horizontal is A3.
  • Does the demo code use any external libraries?
    No, the provided code uses standard Arduino functions like Serial.print and analogRead without extra libraries.
  • What is the purpose of cutting the white wire ribbon during disassembly?
    Cutting the ribbon with extra length makes the subsequent soldering process much easier.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter
Scroll to Top