Skip to content

DIY Arduino MAME Arcade Spinner or Macro Pad

Advertising
Advertising
?
Creation quality: 5.0/5 (1 vote)
Evaluation of members on the printability, utility, level of detail, etc.

  • 1.5k views
  • 1 like
  • 18 downloads

License
3D design format
Folder details Close
  • DIY_MAME_Arcade_Spinner_Bottom.stl
  • DIY_MAME_Arcade_Spinner_Top.stl
  • rotary-encoder-knob-42mm.stl

Learn more about the formats

Publication date 2023-08-15 at 21:48
?
Published to Thingiverse on: 2023-01-05 at 19:54
Design number 1388252

3D printer file info

3D model description

This is a multifunction, 2 player capable, USB spinner controller with a single arcade button. It's extremely cheap, and easy to build, print, and assemble.

It uses a rotary encoder, which means that there is no left or right limit, it can be spun indefinitely. It also means it moves in discrete steps or clicks. This may not be ideal for all games.

I'll use "left and right" to mean "counterclockwise and clockwise" in this description for shorthand.

Features

** Depress the spinner, like pressing L3/R3 on a gamepad, to change modes. **

  • Multifunction: multiple input modes allow you to use this with a wide variety of games, including those not designed for spinners, for example Puzzle Bobble or Tetris-likes:
    • KEYSTROKE MODE: every click left or right inputs a single left or right keyboard press. This is good for games or apps designed for keyboard, but not very useful for MAME.
    • KEYHOLD MODE: while you are spinning left or right, the left or right key is held down on the keyboard. in the default MAME bindings these keys correspond to P1 or P2 joystick left or right. This is the default mode on startup and is best for games that use the joystick left/right.
    • AXIS MODE: the position of the spinner controls the position of the mouse along the X axis (P1) or Y axis (P2). This is best for games that are designed for spinners of some sort.
    • SCROLL WHEEL MODE: clicking the spinner left and right moves the scroll wheel the same amount.
  • Default MAME bindings: out of the box, P1 and P2 bindings match the default joystick Left/Right and B1 buttons
  • 2 Player capable: change the #define P2 while programming the arduino to make the controller dedicated P1 or P2.
  • Plug and play USB operation
  • Can be left or right handed, if you don't care which side the cable comes out. Comment if you'd like a variant that swaps the cable exit side.

Parts

This is a sample shopping list, not endorsements, you can get these parts from many other places.

Code

Arduino code: https://gist.github.com/partlyhuman/287f2556888738432c799bd79690e6f4

Download the "EncoderTool" library.

Change the #define for P2 if desired before programming.

Printing

Make sure to orient flat surfaces to print surface before printing, no supports or adhesion necessary.

Assembly

  • Wire, program, and test before assembly.
  • Wiring: you can change this to your heart's content in the arduino file but without modification, arduino pins:
    • 5V to encoder 5V, GND to encoder GND
    • 2 to encoder S1
    • 3 to encoder S2
    • 4 to encoder KEY
    • GND to pushbutton
    • 9 to pushbutton
  • Test. If the movement is the opposite of what you expect, swap S1 and S2.
  • Pop the pushbutton in from the top until it clicks in place
  • Insert the encoder from the inside. You may need to rotate the threads while you push.
  • There is a tiny notch that keeps it from spinning while you tighten. Align this while inserting.
  • Use the washer then the nut to tighten encoder in place.
  • Press-fit arduino in place. Affix further if desired.
  • Ensure you can get the usb connector fit through the case and everything is aligned.
  • Press the bottom in to cover. I bend the header pins to an angle to save some space, or you can always direct solder without the connectors.
  • The bottom clicks in place.
  • Affix some rubber feet so it can sit in place

MAME setup

This controller is designed for use as:
* Paddle
* Dial

As well as of course joystick. Assign these to the mouse input and map if needed.

If you want to get creative, it can be used for other inputs, anything that maps to keyboard or mouse depending on the mode you use.

Thanks

To user @tsw for their knob customizer, which produced the knob included here!

Advertising


Issue with this design? Report a problem.

Would you like to support Cults?

You like Cults and you want to help us continue the adventure independently? Please note that we are a small team of 3 people, therefore it is very simple to support us to maintain the activity and create future developments. Here are 4 solutions accessible to all:

  • ADVERTISING: Disable your banner blocker (AdBlock, …) and click on our banner ads.

  • AFFILIATION: Make your purchases online by clicking on our affiliate links here Amazon.

  • DONATE: If you want, you can make a donation via Ko-Fi πŸ’œ.

  • WORD OF MOUTH: Invite your friends to come, discover the platform and the magnificent 3D files shared by the community!


Sharing and downloading on Cults3D guarantees that designs remain in makers community hands! And not in the hands of the 3D printing or software giants who own the competing platforms and exploit the designs for their own commercial interests.

Cults3D is an independent, self-financed site that is not accountable to any investor or brand. Almost all of the site's revenues are paid back to the platform's makers. The content published on the site serves only the interests of its authors and not those of 3D printer brands who also wish to control the 3D modeling market.

100% secure payment by credit card, PayPal, Apple Pay, Google Pay, etc.
View all payment options.