Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use PS2 Controller: Examples, Pinouts, and Specs

Image of PS2 Controller
Cirkit Designer LogoDesign with PS2 Controller in Cirkit Designer

Introduction

The Analog PS2 Controller by Sony is a versatile game controller designed for the PlayStation 2 console. It features both digital and analog input systems, dual vibration feedback motors, and an ergonomic design for comfortable gaming. The controller is widely used not only for gaming but also in DIY electronics projects, robotics, and other applications where precise input control is required.

Explore Projects Built with PS2 Controller

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Raspberry Pi Pico-based PS2 Controller Emulator with ADS1115 Analog Input
Image of PS2Pico: A project utilizing PS2 Controller in a practical application
This circuit appears to be a game controller interface that uses a Raspberry Pi Pico microcontroller to emulate a PS2 controller, interfacing with a PS2 joystick and a PS2 console cable. The ADS1115 analog-to-digital converter is used to read the joystick's analog signals, and the microcontroller's SPI and I2C interfaces are utilized for communication with the PS2 console and the ADS1115, respectively. Additionally, an NPN transistor and a resistor are configured to handle the PS2 controller's acknowledge signal.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano Joystick-Controlled Bluetooth Module with Battery Power
Image of padelpro transmitter: A project utilizing PS2 Controller in a practical application
This circuit is a wireless joystick controller that uses an Arduino Nano to read analog signals from a KY-023 Dual Axis Joystick Module and transmits the data via an HC-05 Bluetooth Module. The system is powered by a 18650 Li-Ion battery with a rocker switch for power control.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO and L298N Motor Driver Controlled Robot with PS2 Controller and Battery Power
Image of MP Circuit: A project utilizing PS2 Controller in a practical application
This circuit is a remote-controlled system using an Arduino UNO to manage two L298N motor drivers, which control four DC motors. A PS2 controller receiver is used for input, and a 12V battery powers the entire setup, with a rocker switch for power control and a battery level indicator for monitoring.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Controlled Automated Transport System with OLED Display and Stepper Motor
Image of transportband: A project utilizing PS2 Controller in a practical application
This circuit is designed for interactive control of a stepper motor using a PS2 joystick, with an ESP32 microcontroller at its core. It features visual feedback through an OLED display and LED indicators, and includes a buzzer for audio alerts. The system likely serves an automation or robotics application, with the ESP32 handling input processing, motor control, and user interface updates.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with PS2 Controller

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of PS2Pico: A project utilizing PS2 Controller in a practical application
Raspberry Pi Pico-based PS2 Controller Emulator with ADS1115 Analog Input
This circuit appears to be a game controller interface that uses a Raspberry Pi Pico microcontroller to emulate a PS2 controller, interfacing with a PS2 joystick and a PS2 console cable. The ADS1115 analog-to-digital converter is used to read the joystick's analog signals, and the microcontroller's SPI and I2C interfaces are utilized for communication with the PS2 console and the ADS1115, respectively. Additionally, an NPN transistor and a resistor are configured to handle the PS2 controller's acknowledge signal.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of padelpro transmitter: A project utilizing PS2 Controller in a practical application
Arduino Nano Joystick-Controlled Bluetooth Module with Battery Power
This circuit is a wireless joystick controller that uses an Arduino Nano to read analog signals from a KY-023 Dual Axis Joystick Module and transmits the data via an HC-05 Bluetooth Module. The system is powered by a 18650 Li-Ion battery with a rocker switch for power control.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of MP Circuit: A project utilizing PS2 Controller in a practical application
Arduino UNO and L298N Motor Driver Controlled Robot with PS2 Controller and Battery Power
This circuit is a remote-controlled system using an Arduino UNO to manage two L298N motor drivers, which control four DC motors. A PS2 controller receiver is used for input, and a 12V battery powers the entire setup, with a rocker switch for power control and a battery level indicator for monitoring.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of transportband: A project utilizing PS2 Controller in a practical application
ESP32-Controlled Automated Transport System with OLED Display and Stepper Motor
This circuit is designed for interactive control of a stepper motor using a PS2 joystick, with an ESP32 microcontroller at its core. It features visual feedback through an OLED display and LED indicators, and includes a buzzer for audio alerts. The system likely serves an automation or robotics application, with the ESP32 handling input processing, motor control, and user interface updates.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Gaming on PlayStation 2 consoles
  • Robotics and remote-controlled systems
  • DIY electronics projects requiring joystick or button inputs
  • Simulators and custom control systems

Technical Specifications

Key Technical Details

Parameter Specification
Manufacturer Sony
Part ID Analog PS2 Controller
Communication Protocol Serial (SPI-like protocol)
Operating Voltage 3.3V to 5V
Current Consumption ~5mA (idle), ~15mA (with vibration)
Number of Buttons 12 (including D-pad and action buttons)
Analog Sticks 2 (X and Y axes for each stick)
Vibration Feedback Dual motors for haptic feedback
Connector Type Proprietary PS2 connector

Pin Configuration and Descriptions

The PS2 controller uses a proprietary connector with the following pinout:

Pin Number Name Description
1 DATA Serial data output from the controller
2 CMD Serial command input to the controller
3 ATT (SEL) Attention signal (chip select)
4 CLK Clock signal for serial communication
5 VCC Power supply (3.3V to 5V)
6 GND Ground
7 N/C Not connected
8 N/C Not connected

Usage Instructions

How to Use the PS2 Controller in a Circuit

  1. Power Supply: Connect the VCC pin to a 3.3V or 5V power source and the GND pin to ground.
  2. Communication: Use the DATA, CMD, ATT (SEL), and CLK pins to establish serial communication with a microcontroller or other host device.
  3. Initialization: The controller requires specific initialization commands to enter analog mode and enable vibration feedback.
  4. Reading Inputs: Poll the controller to read button states and analog stick positions. Button states are typically represented as binary values, while analog stick positions are represented as 8-bit values (0-255).

Important Considerations and Best Practices

  • Voltage Levels: Ensure the voltage levels on the communication pins match the controller's operating voltage (3.3V or 5V).
  • Pull-Up Resistors: Use pull-up resistors on the communication lines if necessary to ensure reliable signal transmission.
  • Timing: Follow the timing requirements of the serial protocol to avoid communication errors.
  • Connector: Use a compatible PS2 connector or adapter to interface with the controller.

Example: Connecting to an Arduino UNO

Below is an example of how to connect and use the PS2 controller with an Arduino UNO:

Wiring Diagram

PS2 Controller Pin Arduino UNO Pin
DATA Pin 12
CMD Pin 11
ATT (SEL) Pin 10
CLK Pin 13
VCC 5V
GND GND

Arduino Code Example

#include <PS2X_lib.h> // Include the PS2X library for PS2 controller

PS2X ps2x; // Create PS2X object

// Pin definitions for PS2 controller
#define PS2_DAT 12  // DATA pin
#define PS2_CMD 11  // CMD pin
#define PS2_SEL 10  // ATT (SEL) pin
#define PS2_CLK 13  // CLK pin

void setup() {
  Serial.begin(9600); // Initialize serial communication for debugging

  // Initialize PS2 controller
  int error = ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_SEL, PS2_DAT, true, true);

  if (error == 0) {
    Serial.println("PS2 Controller successfully connected!");
  } else {
    Serial.print("Error connecting PS2 Controller: ");
    Serial.println(error);
  }
}

void loop() {
  ps2x.read_gamepad(false, 0); // Read controller inputs

  // Example: Check if the X button is pressed
  if (ps2x.Button(PSB_CROSS)) {
    Serial.println("X Button Pressed!");
  }

  // Example: Read left analog stick X-axis value
  int leftStickX = ps2x.Analog(PSS_LX);
  Serial.print("Left Stick X: ");
  Serial.println(leftStickX);

  delay(100); // Small delay for stability
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Controller Not Responding:

    • Ensure the wiring is correct and matches the pinout table.
    • Verify that the power supply voltage is within the specified range (3.3V to 5V).
    • Check for loose connections or damaged cables.
  2. Incorrect or No Data Received:

    • Confirm that the clock signal (CLK) is being generated correctly.
    • Ensure the microcontroller's SPI settings match the PS2 controller's protocol.
    • Use pull-up resistors on the communication lines if necessary.
  3. Vibration Feedback Not Working:

    • Ensure the controller is in analog mode.
    • Verify that the initialization commands include enabling vibration feedback.

FAQs

Q: Can the PS2 controller be used with 3.3V microcontrollers?
A: Yes, the PS2 controller operates at both 3.3V and 5V. Ensure the communication lines are at the same voltage level as the microcontroller.

Q: How do I enable analog mode?
A: Analog mode is enabled by sending specific initialization commands to the controller. Libraries like PS2X handle this automatically.

Q: Can I use the PS2 controller for non-gaming applications?
A: Absolutely! The PS2 controller is popular in robotics, DIY projects, and custom control systems due to its precise input capabilities.

Q: What is the maximum cable length for reliable communication?
A: The maximum cable length depends on the quality of the cable and the environment, but it is generally recommended to keep it under 2 meters for reliable operation.