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

How to Use SparkFun Thumb Joystick Breakout: Examples, Pinouts, and Specs

Image of SparkFun Thumb Joystick Breakout
Cirkit Designer LogoDesign with SparkFun Thumb Joystick Breakout in Cirkit Designer

Introduction

The SparkFun Thumb Joystick Breakout (Manufacturer Part ID: BOB-09110) is a compact joystick module designed for intuitive control of movement in two dimensions (X and Y axes). It features a thumb-operated joystick with a built-in push button, making it an excellent choice for applications requiring precise directional input. This breakout board is widely used in robotics, gaming controllers, remote control devices, and other interactive projects.

The module is easy to integrate into microcontroller-based systems, such as Arduino, and provides both analog and digital outputs for versatile functionality.

Explore Projects Built with SparkFun Thumb Joystick Breakout

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Battery-Powered Game Controller with SparkFun Pro Micro and Raspberry Pi 4B
Image of Raspberry Pi handheld: A project utilizing SparkFun Thumb Joystick Breakout in a practical application
This circuit is a custom game controller featuring a SparkFun Pro Micro microcontroller, multiple tactile pushbuttons, and two analog joysticks. The Pro Micro reads inputs from the buttons and joysticks, processes them, and sends the corresponding gamepad signals. Additionally, a Raspberry Pi 4B is powered by a Pisugar S Pro battery module.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO and PCA9685 PWM Servo Controller for Joystick-Controlled Robotic Arm
Image of robotic arm function: A project utilizing SparkFun Thumb Joystick Breakout in a practical application
This circuit uses an Arduino UNO to control three micro servos via a PCA9685 PWM Servo Breakout, with input from two joystick modules. The servos are powered by a 9V battery, and the Arduino reads joystick positions to adjust the servos accordingly, as programmed in the provided code.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO Controlled Joystick Interface with LCD Feedback and Audio Alert
Image of 우주게임: A project utilizing SparkFun Thumb Joystick Breakout in a practical application
This circuit features an Arduino UNO microcontroller connected to a KY-023 Dual Axis Joystick Module, an I2C LCD 16x2 Screen, a Piezo Speaker, and a Pushbutton. The joystick provides two analog inputs to the Arduino for X and Y axis control, while the pushbutton is connected to a digital input for user interaction. The LCD screen displays information via I2C communication, and the Piezo Speaker is driven by a digital output from the Arduino for audio feedback.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32 Bluetooth-Controlled Dual Joystick Motor Driver System
Image of sumo: A project utilizing SparkFun Thumb Joystick Breakout in a practical application
This circuit is a remote-controlled motor system using two ESP32 microcontrollers and joystick modules. One ESP32 reads joystick positions and transmits them via Bluetooth to the second ESP32, which controls two DC motors through a TB6612FNG motor driver. The system includes LEDs for status indication and is powered by a 9V battery and a LiPo battery.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with SparkFun Thumb Joystick Breakout

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 Raspberry Pi handheld: A project utilizing SparkFun Thumb Joystick Breakout in a practical application
Battery-Powered Game Controller with SparkFun Pro Micro and Raspberry Pi 4B
This circuit is a custom game controller featuring a SparkFun Pro Micro microcontroller, multiple tactile pushbuttons, and two analog joysticks. The Pro Micro reads inputs from the buttons and joysticks, processes them, and sends the corresponding gamepad signals. Additionally, a Raspberry Pi 4B is powered by a Pisugar S Pro battery module.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of robotic arm function: A project utilizing SparkFun Thumb Joystick Breakout in a practical application
Arduino UNO and PCA9685 PWM Servo Controller for Joystick-Controlled Robotic Arm
This circuit uses an Arduino UNO to control three micro servos via a PCA9685 PWM Servo Breakout, with input from two joystick modules. The servos are powered by a 9V battery, and the Arduino reads joystick positions to adjust the servos accordingly, as programmed in the provided code.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of 우주게임: A project utilizing SparkFun Thumb Joystick Breakout in a practical application
Arduino UNO Controlled Joystick Interface with LCD Feedback and Audio Alert
This circuit features an Arduino UNO microcontroller connected to a KY-023 Dual Axis Joystick Module, an I2C LCD 16x2 Screen, a Piezo Speaker, and a Pushbutton. The joystick provides two analog inputs to the Arduino for X and Y axis control, while the pushbutton is connected to a digital input for user interaction. The LCD screen displays information via I2C communication, and the Piezo Speaker is driven by a digital output from the Arduino for audio feedback.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of sumo: A project utilizing SparkFun Thumb Joystick Breakout in a practical application
ESP32 Bluetooth-Controlled Dual Joystick Motor Driver System
This circuit is a remote-controlled motor system using two ESP32 microcontrollers and joystick modules. One ESP32 reads joystick positions and transmits them via Bluetooth to the second ESP32, which controls two DC motors through a TB6612FNG motor driver. The system includes LEDs for status indication and is powered by a 9V battery and a LiPo battery.
Cirkit Designer LogoOpen Project in Cirkit Designer

Technical Specifications

Below are the key technical details of the SparkFun Thumb Joystick Breakout:

  • Manufacturer: SparkFun Electronics
  • Part Number: BOB-09110
  • Operating Voltage: 3.3V to 5V
  • Output Type: Analog (X and Y axes), Digital (push button)
  • Joystick Movement Range: ±200 kΩ potentiometer for X and Y axes
  • Push Button Type: Momentary, normally open
  • Dimensions: 26.5mm x 26.5mm (1.04" x 1.04")
  • Mounting Holes: 2 x 2.0mm diameter

Pin Configuration and Descriptions

The SparkFun Thumb Joystick Breakout has a 5-pin header for easy connection. The pinout is as follows:

Pin Name Description
1 GND Ground connection for the module.
2 VCC Power supply input (3.3V to 5V).
3 VRx Analog output for the X-axis position.
4 VRy Analog output for the Y-axis position.
5 SW Digital output for the push button (active LOW when pressed, HIGH when released).

Usage Instructions

How to Use the Component in a Circuit

  1. Powering the Module:
    Connect the VCC pin to a 3.3V or 5V power source and the GND pin to the ground of your circuit.

  2. Reading Joystick Position:

    • The VRx and VRy pins output analog voltages corresponding to the joystick's position along the X and Y axes, respectively.
    • These voltages can be read using the analog input pins of a microcontroller (e.g., Arduino).
  3. Using the Push Button:

    • The SW pin outputs a digital signal. It is HIGH when the button is not pressed and LOW when pressed.
    • Connect this pin to a digital input pin on your microcontroller and use a pull-up resistor if necessary.

Example Arduino UNO Code

Below is an example code snippet for interfacing the SparkFun Thumb Joystick Breakout with an Arduino UNO:

// Define pin connections
const int VRxPin = A0; // X-axis connected to analog pin A0
const int VRyPin = A1; // Y-axis connected to analog pin A1
const int SWPin = 2;   // Push button connected to digital pin 2

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

  // Configure the push button pin as input with internal pull-up resistor
  pinMode(SWPin, INPUT_PULLUP);
}

void loop() {
  // Read the X and Y axis values (0 to 1023)
  int xValue = analogRead(VRxPin);
  int yValue = analogRead(VRyPin);

  // Read the push button state (LOW when pressed, HIGH when released)
  int buttonState = digitalRead(SWPin);

  // Print the joystick values to the Serial Monitor
  Serial.print("X: ");
  Serial.print(xValue);
  Serial.print(" | Y: ");
  Serial.print(yValue);
  Serial.print(" | Button: ");
  Serial.println(buttonState == LOW ? "Pressed" : "Released");

  // Add a small delay for stability
  delay(100);
}

Important Considerations and Best Practices

  • Ensure the power supply voltage matches the module's operating range (3.3V to 5V).
  • Use decoupling capacitors near the power pins to reduce noise in analog readings.
  • Avoid applying excessive force to the joystick to prevent damage.
  • If the joystick readings are noisy, consider adding software filtering or averaging in your code.

Troubleshooting and FAQs

Common Issues and Solutions

  1. No Output from the Joystick:

    • Cause: Incorrect wiring or loose connections.
    • Solution: Double-check all connections, ensuring the VCC and GND pins are properly connected.
  2. Analog Readings Are Unstable:

    • Cause: Electrical noise or insufficient power supply decoupling.
    • Solution: Add a 0.1µF ceramic capacitor between VCC and GND near the module.
  3. Push Button Not Responding:

    • Cause: Missing pull-up resistor or incorrect pin configuration.
    • Solution: Use the INPUT_PULLUP mode in your microcontroller code or add an external pull-up resistor.
  4. Joystick Values Are Not Centered:

    • Cause: Manufacturing tolerances or mechanical wear.
    • Solution: Calibrate the joystick in software by mapping the raw analog values to a centered range.

FAQs

Q1: Can I use this module with a Raspberry Pi?
A1: Yes, the module can be used with a Raspberry Pi. Connect the analog outputs (VRx and VRy) to an external ADC (Analog-to-Digital Converter) since the Raspberry Pi lacks built-in ADC functionality.

Q2: What is the expected analog output range?
A2: The VRx and VRy pins typically output a voltage range from 0V to the supply voltage (3.3V or 5V), depending on the joystick's position.

Q3: Is the push button debounce handled by the module?
A3: No, the module does not include hardware debounce for the push button. You can implement software debounce in your microcontroller code if needed.

Q4: Can I replace the joystick with a different one?
A4: The breakout board is designed for the included joystick. Replacing it may require modifications to the board or connections.

By following this documentation, you can effectively integrate the SparkFun Thumb Joystick Breakout into your projects and troubleshoot common issues with ease.