Close
0%
0%

ArduSpinner

A simple dial (aka spinner) input control using arduino and a rotary encoder. The dial is shown
in the computer as a mouse with X movement.

Similar projects worth following
A simple dial (aka spinner) input control using arduino and a rotary encoder. The dial is shown
in the computer as a mouse with X movement. The movement has been tuned to be "accelerated" so
if you do small movements, you have precision, but if you move it kickly, it runs faster.

ArduSpinner

A simple dial (aka spinner) input control using arduino and a rotary encoder. The dial is shown in the computer as a mouse with X movement. The movement has been tuned to be "accelerated" so if you do small movements, you have precision, but if you move it kickly, it runs faster. Use a modified version of ClickEncoder library. See below for more details.

Demo video on YouTube

This project provides:

  1. The chassis' fabrication models (3D print) and assembly guide.
  2. The arduino sketch to control the encoder and pass the mouse inputs to the computer.

Table Of Contents

  1. Project Features
  2. Part List
  3. 3D Printing and Assembly
    1. Parts
      1. Wheel
      2. Chassis
      3. Arduino Holder
      4. Spacers
    2. Assembly
    3. Arcade Installation
  4. Electronics
    1. Encoder Mod
    2. Wiring
  5. Software
    1. Install
      1. TimerOne
      2. ClickEncoder
      3. ArduSpinner
    2. Tests
    3. Binary
    4. Mame

Project Features

  1. Complete implementation for a dial (aka spinner) input control. Just print the files, wire it, download the sketch and play in MAME. The main motivation was to create a low profile, MAME compatible (in fact, it works in all computers that accept a USB mouse as input) input device to play arkanoid style games.
  2. Low profile device. Just about 3cm width, 8cm height.
  3. Easy to use. Just plug and play with minimum MAME configuration.
  4. Easy to build.
  5. Cheap.

Part List

To build ArduSpinner you need the following things:

  • Arduino Micro or similar, with the ATmega32U4 processor, so we can program the USB interface. Try to build the original one Arduino Micro (18 €) to support Arduino, or, if you're in budget, try this clone from Amazon (4.6 €), but you have to solder.
  • Rotary encoder. I use the KY-040 rotary encoder, mounted in a PCB. Get it from Amazon (2,04€)
  • Some wiring cable. I use dupont wires (female-female. You need 4 of them), again, a pack from Amazon (6,19€, lots).
  • A simple Micro USB cable (DATA, no the stripped version for charge). Just like these Amazon (7,99 €)
  • Two small (3mm x 5mm or similar) screws if you want to mount the arduino holder in the back.
  • Total: 34,22 € if you buy the "original" kit.
  • Total: 6,64 € if you have some dupont cables and the micro USB cable. (just buy the arduino and the rotary encoder)
  • Also, you need a 3D Printer, of course, if you plan to print the parts.

3D Printing and assembly

There are 4 parts that you have to print. The STL are ready positioned in the "right" way to be printed, so just print them as is. I use a Ender-3 Pro with Marlin Firwmare, and PLA, and get good results. I use CURA for slicing with the following major configuration settings:

VariableValue
Layer Height0.21
Initial Layer Height0.32
Wall Thickness0.88
Wall Line count3
Top/Bottom Thickness0.92
top Thickness0.92
Top Layers5
bottom Thickness0.92
bottom Layers5
Top/Bottom patternlines
Horizontal expansion0
Infill density60>#/td###
Infill patterngrid
Printing temperature190
Printing temperature initial layer195
Build plate temperature55
Build plate temperature initial layer75
Initial Layer flow100
Enable retractionChecked
Retraction Distance6.5
Retraction Speed50
Print Speed50
Infill Speed50
Wall speed25
Top/Bottom speed25
Travel Speed150
Initial Layer Print Speed15
Initial Layer Travel Speed30
Combing modeAll
Avoid Supports when travellingchecked
Z Hop when retractedchecked
Enable Print coolingchecked
Fan Speed100
Initial Fan Speed0
Regular Fan Speed at Height0.72
Regular Fan Speed at Layer3
Generate SupportChecked
Support PlacementEverywhere
Support Overhang Angle47
Support PatternZigZag
Support Density20
Support Z Distance0.2
Suport X/Y Distance0.88
User Towersunchecked
Build plate adhesion typeNone
Surface modeNormal
Enable Bridge SettingsChecked

This table resumes the printing times for my Ender-3 configuration:

part namecuantitycolorprinting time hh:mm
wheel1black03:35
chassis1green00:31
arduino holder1green00:08
spacers2green00:03

(I print the wheel in black, alone, and the rest of them...

Read more »

  • 1
    Follow the README.md

    See README.md for all the info

View all instructions

Enjoy this project?

Share

Discussions

Dan Maloney wrote 09/17/2019 at 15:18 point

Something like this would be good for a radio tuning knob. It might be nice to figure out a way to get some weight in the rim of the wheel for a nice smooth flywheel effect.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates