HOW TO – Make a USB Game pad with tilt-accelerometer mouse


Adxlstick
This project tutorial will show you how you can convert a console game pad into a USB keyboard mouse for playing games on your PC. The USB game pad can be used with nearly any software, such as a MAME emulator, game, simulation software, or for custom user interfaces. We’ll start by turning the buttons of the game pad into keyboard buttons, so that pressing ‘up’ is converted into the ‘U’ key, for example. The firmware is easily adaptable, so you can adjust it for whatever software it will be used with. Then we’ll make the project more interesting by adding an accelerometer. This will allow the game pad to be used as a mouse by tilting it! This tutorial including the original code and Portal video is by Devlin Thyne! Rock!

You’ll need the following in order to build the project:

  • Game pad – We’ll be using an SNES controller
  • Teensy – This is a very small microcontroller board that can act as a keyboard/mouse
  • Triple-axis accellerometer – We’ll be using the nice ADXL335 on a breakout board. You can skip this if you’re not planning to add in the mouse capability
  • USB cable with mini-b connector – to attach to the Teensy for plugging into a computer!
  • Ribbon cable – for all the soldering connections. Rainbow cable is the easiest to work with as its color coded

Pt 2788
If you want to build the entire project, we have a project pack in the shop with all the parts listed above!

You’ll also need some basic hand tools such as screwdrivers, wire strippers, soldering iron, solder, diagonal cutters, vise or third hand tool, etc.

All the code is on GitHub, including some extra sketches we’ve written so be sure to look there!

Read the entire tutorial here!


Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7:30pm ET! To join, head over to YouTube and check out the show’s live chat and our Discord!

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Join over 38,000+ makers on Adafruit’s Discord channels and be part of the community! http://adafru.it/discord

CircuitPython – The easiest way to program microcontrollers – CircuitPython.org


New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — New Products 11/15/2024 Featuring Adafruit bq25185 USB / DC / Solar Charger with 3.3V Buck Board! (Video)

Python for Microcontrollers – Adafruit Daily — Python on Microcontrollers Newsletter: A New Arduino MicroPython Package Manager, How-Tos and Much More! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

EYE on NPI – Adafruit Daily — EYE on NPI Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

Adafruit IoT Monthly — The 2024 Recap Issue!

Maker Business – Adafruit Daily — Apple to build another chip at TSMC Arizona

Electronics – Adafruit Daily — SMT Tip – Stop moving around!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !


5 Comments

  1. this is rad. i’ve been looking for a simple usb keyboard/mouse emulator for a while. nice for installations… looking forward to picking up a teensy.

  2. Yeah this is really cool! I like that you’re using an existing controller and enclosure.

    I’ve been working on similar designs but they are based on PIC controller, and I didn’t settle for any enclosure yet 🙂
    For anyone interested have a look at related the links below:

    http://starlino.com/usb_gamepad.html
    http://starlino.com/usb_thumb_imu.html
    http://starlino.com/usb_gamepad_gyro.html

  3. What a coincidence – I just finished my MAME arcade controller and the heart is a Teensy. I changed my code, because yours was a little better.

    Check out http://make.larsi.org/interfaces/MAME/ for the build log. I will add some more pictures if the final wiring soon.

  4. In the tutorial it says:
    The ADXL335 requires 5V power, so don’t connect it to VCC (5V) instead
    Shouldn’t that be:
    The ADXL335 cannot handle 5V power, so don’t connect it to VCC (5V) instead

  5. typo! fixed 🙂

Sorry, the comment form is closed at this time.