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

How to Use Adafruit Arcade Bonnet: Examples, Pinouts, and Specs

Image of Adafruit Arcade Bonnet
Cirkit Designer LogoDesign with Adafruit Arcade Bonnet in Cirkit Designer

Introduction

The Adafruit Arcade Bonnet (Manufacturer Part ID: 3422) is a compact add-on board designed for Raspberry Pi. It simplifies the process of connecting arcade-style controls, such as buttons, joysticks, and displays, making it an ideal solution for retro gaming projects. This board is perfect for hobbyists and developers looking to create custom arcade machines or gaming setups with minimal wiring and configuration.

Explore Projects Built with Adafruit Arcade Bonnet

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino UNO Controlled RGB LED Strip with Interactive Button
Image of Simon Circuit: A project utilizing Adafruit Arcade Bonnet in a practical application
This circuit features an Arduino UNO connected to a WS2812 RGB LED strip, controlled via digital pin D8. An arcade button is interfaced with the Arduino through a resistor and digital pin D3, likely for user input to control the LED strip. Power is supplied through a 2.1mm DC barrel jack, with an electrolytic capacitor for voltage smoothing, and the ground connections are shared among the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Mega 2560-Based Interactive Game with RGB LEDs, LCD Display, and DFPlayer Audio
Image of Game: A project utilizing Adafruit Arcade Bonnet in a practical application
This circuit is a game controller that uses an Arduino Mega 2560 to manage inputs from multiple arcade buttons, control RGB LEDs, display messages on an LCD, and play audio through a DFPlayer module. The system announces the winner based on button presses, lights up the corresponding RGB LED, and displays the winner's name on the LCD.
Cirkit Designer LogoOpen Project in Cirkit Designer
Raspberry Pi 4B-Based Multi-Sensor Interface Hub with GPS and GSM
Image of Rocket: A project utilizing Adafruit Arcade Bonnet in a practical application
This circuit features a Raspberry Pi 4B interfaced with an IMX296 color global shutter camera, a Neo 6M GPS module, an Adafruit BMP388 barometric pressure sensor, an MPU-6050 accelerometer/gyroscope, and a Sim800l GSM module for cellular connectivity. Power management is handled by an MT3608 boost converter, which steps up the voltage from a Lipo battery, with a resettable fuse PTC and a 1N4007 diode for protection. The Adafruit Perma-Proto HAT is used for organizing connections and interfacing the sensors and modules with the Raspberry Pi via I2C and GPIO pins.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO-Based Interactive Basketball Arcade Game with LCD Display
Image of Basketball Arcade: A project utilizing Adafruit Arcade Bonnet in a practical application
This circuit features an Arduino UNO connected to a 16x2 LCD display, two photocells (LDRs), a pushbutton, and multiple resistors. The Arduino monitors the LDRs and pushbutton to track scores and reset the game in a basketball arcade-style game, displaying the scores and game status on the LCD. The code for the Arduino manages the game logic, including scorekeeping, game timing, and displaying an introductory sequence and the winner at the end of the game.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Adafruit Arcade Bonnet

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 Simon Circuit: A project utilizing Adafruit Arcade Bonnet in a practical application
Arduino UNO Controlled RGB LED Strip with Interactive Button
This circuit features an Arduino UNO connected to a WS2812 RGB LED strip, controlled via digital pin D8. An arcade button is interfaced with the Arduino through a resistor and digital pin D3, likely for user input to control the LED strip. Power is supplied through a 2.1mm DC barrel jack, with an electrolytic capacitor for voltage smoothing, and the ground connections are shared among the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Game: A project utilizing Adafruit Arcade Bonnet in a practical application
Arduino Mega 2560-Based Interactive Game with RGB LEDs, LCD Display, and DFPlayer Audio
This circuit is a game controller that uses an Arduino Mega 2560 to manage inputs from multiple arcade buttons, control RGB LEDs, display messages on an LCD, and play audio through a DFPlayer module. The system announces the winner based on button presses, lights up the corresponding RGB LED, and displays the winner's name on the LCD.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Rocket: A project utilizing Adafruit Arcade Bonnet in a practical application
Raspberry Pi 4B-Based Multi-Sensor Interface Hub with GPS and GSM
This circuit features a Raspberry Pi 4B interfaced with an IMX296 color global shutter camera, a Neo 6M GPS module, an Adafruit BMP388 barometric pressure sensor, an MPU-6050 accelerometer/gyroscope, and a Sim800l GSM module for cellular connectivity. Power management is handled by an MT3608 boost converter, which steps up the voltage from a Lipo battery, with a resettable fuse PTC and a 1N4007 diode for protection. The Adafruit Perma-Proto HAT is used for organizing connections and interfacing the sensors and modules with the Raspberry Pi via I2C and GPIO pins.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Basketball Arcade: A project utilizing Adafruit Arcade Bonnet in a practical application
Arduino UNO-Based Interactive Basketball Arcade Game with LCD Display
This circuit features an Arduino UNO connected to a 16x2 LCD display, two photocells (LDRs), a pushbutton, and multiple resistors. The Arduino monitors the LDRs and pushbutton to track scores and reset the game in a basketball arcade-style game, displaying the scores and game status on the LCD. The code for the Arduino manages the game logic, including scorekeeping, game timing, and displaying an introductory sequence and the winner at the end of the game.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Building retro gaming consoles using Raspberry Pi.
  • Creating custom arcade cabinets with joystick and button inputs.
  • Prototyping gaming projects with minimal soldering and wiring.
  • Educational projects to learn about input devices and Raspberry Pi GPIO.

Technical Specifications

The Adafruit Arcade Bonnet is designed to work seamlessly with Raspberry Pi models that have a 40-pin GPIO header. Below are the key technical details:

Key Specifications

Parameter Value
Manufacturer Adafruit
Part ID 3422
Compatible Boards Raspberry Pi (40-pin GPIO models)
Input Voltage 3.3V (via Raspberry Pi GPIO)
Supported Inputs Up to 12 buttons, 1 joystick
Communication Protocol GPIO
Dimensions 65mm x 30mm x 8mm
Mounting Fits directly on Raspberry Pi GPIO header

Pin Configuration and Descriptions

The Arcade Bonnet connects directly to the Raspberry Pi GPIO header. Below is the pin configuration for the button and joystick inputs:

Pin Number GPIO Pin Function Description
1 GPIO 4 Joystick Up Connects to the "Up" direction pin
2 GPIO 17 Joystick Down Connects to the "Down" direction pin
3 GPIO 27 Joystick Left Connects to the "Left" direction pin
4 GPIO 22 Joystick Right Connects to the "Right" direction pin
5 GPIO 5 Button 1 First action button
6 GPIO 6 Button 2 Second action button
7 GPIO 13 Button 3 Third action button
8 GPIO 19 Button 4 Fourth action button
9 GPIO 26 Button 5 Fifth action button
10 GPIO 21 Button 6 Sixth action button

Usage Instructions

How to Use the Adafruit Arcade Bonnet

  1. Hardware Setup:

    • Align the Arcade Bonnet with the 40-pin GPIO header on your Raspberry Pi.
    • Press the Bonnet firmly onto the GPIO header to ensure a secure connection.
    • Connect your arcade buttons and joystick to the labeled screw terminals or JST connectors on the Bonnet.
  2. Software Setup:

    • Install the required software libraries on your Raspberry Pi. Adafruit provides a Python library for configuring and using the Arcade Bonnet.
    • Update your Raspberry Pi's package manager:
      sudo apt update
      sudo apt upgrade
      
    • Install the Adafruit Blinka library (required for GPIO control):
      pip3 install adafruit-blinka
      
    • Clone the Arcade Bonnet configuration repository:
      git clone https://github.com/adafruit/Adafruit_Arcade_Bonnet.git
      cd Adafruit_Arcade_Bonnet
      
  3. Testing the Inputs:

    • Run the provided Python script to test the joystick and button inputs:
      import RPi.GPIO as GPIO
      import time
      
      # Define GPIO pins for joystick directions
      joystick_pins = {
          "up": 4,
          "down": 17,
          "left": 27,
          "right": 22
      }
      
      # Define GPIO pins for buttons
      button_pins = [5, 6, 13, 19, 26, 21]
      
      # Setup GPIO
      GPIO.setmode(GPIO.BCM)
      for pin in joystick_pins.values():
          GPIO.setup(pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
      for pin in button_pins:
          GPIO.setup(pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
      
      print("Press any button or move the joystick...")
      
      try:
          while True:
              for direction, pin in joystick_pins.items():
                  if not GPIO.input(pin):
                      print(f"Joystick moved: {direction}")
              for i, pin in enumerate(button_pins):
                  if not GPIO.input(pin):
                      print(f"Button {i + 1} pressed")
              time.sleep(0.1)
      except KeyboardInterrupt:
          print("Exiting...")
      finally:
          GPIO.cleanup()
      

Important Considerations and Best Practices

  • Ensure that your Raspberry Pi is powered off before attaching or detaching the Arcade Bonnet.
  • Use the correct GPIO pin mappings as per the documentation to avoid misconfigurations.
  • Avoid applying excessive force when connecting the Bonnet to the GPIO header.
  • Use properly rated arcade buttons and joysticks to ensure compatibility and durability.

Troubleshooting and FAQs

Common Issues and Solutions

  1. The Arcade Bonnet is not detected by the Raspberry Pi:

    • Ensure the Bonnet is securely connected to the GPIO header.
    • Verify that the Raspberry Pi is powered on and functioning correctly.
    • Check for any bent or damaged GPIO pins.
  2. Buttons or joystick inputs are not registering:

    • Confirm that the buttons and joystick are properly connected to the Bonnet.
    • Use a multimeter to check for continuity in the button and joystick wiring.
    • Ensure the GPIO pins are configured correctly in your software.
  3. Python script throws an error:

    • Verify that the required libraries (e.g., RPi.GPIO, adafruit-blinka) are installed.
    • Check for typos or incorrect pin mappings in your script.

FAQs

Q: Can I use the Arcade Bonnet with other microcontrollers?
A: The Arcade Bonnet is specifically designed for Raspberry Pi with a 40-pin GPIO header. It is not directly compatible with other microcontrollers like Arduino.

Q: How many buttons can I connect to the Arcade Bonnet?
A: You can connect up to 12 buttons and 1 joystick to the Arcade Bonnet.

Q: Does the Arcade Bonnet support analog joysticks?
A: No, the Arcade Bonnet is designed for digital joysticks with discrete directional inputs.

Q: Can I use the Arcade Bonnet for non-gaming projects?
A: Yes, the Bonnet can be used for any project requiring multiple button inputs, such as control panels or interactive displays.