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.
This project provides:
- The chassis' fabrication models (3D print) and assembly guide.
- The arduino sketch to control the encoder and pass the mouse inputs to the computer.
Table Of Contents
Project Features
- 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
arkanoidstyle games. - Low profile device. Just about 3cm width, 8cm height.
- Easy to use. Just plug and play with minimum MAME configuration.
- Easy to build.
- 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-040rotary encoder, mounted in a PCB. Get it from Amazon (2,04€) - Some wiring cable. I use
dupontwires (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:
| Variable | Value |
|---|---|
| Layer Height | 0.21 |
| Initial Layer Height | 0.32 |
| Wall Thickness | 0.88 |
| Wall Line count | 3 |
| Top/Bottom Thickness | 0.92 |
| top Thickness | 0.92 |
| Top Layers | 5 |
| bottom Thickness | 0.92 |
| bottom Layers | 5 |
| Top/Bottom pattern | lines |
| Horizontal expansion | 0 |
| Infill density | 60>#/td### |
| Infill pattern | grid |
| Printing temperature | 190 |
| Printing temperature initial layer | 195 |
| Build plate temperature | 55 |
| Build plate temperature initial layer | 75 |
| Initial Layer flow | 100 |
| Enable retraction | Checked |
| Retraction Distance | 6.5 |
| Retraction Speed | 50 |
| Print Speed | 50 |
| Infill Speed | 50 |
| Wall speed | 25 |
| Top/Bottom speed | 25 |
| Travel Speed | 150 |
| Initial Layer Print Speed | 15 |
| Initial Layer Travel Speed | 30 |
| Combing mode | All |
| Avoid Supports when travelling | checked |
| Z Hop when retracted | checked |
| Enable Print cooling | checked |
| Fan Speed | 100 |
| Initial Fan Speed | 0 |
| Regular Fan Speed at Height | 0.72 |
| Regular Fan Speed at Layer | 3 |
| Generate Support | Checked |
| Support Placement | Everywhere |
| Support Overhang Angle | 47 |
| Support Pattern | ZigZag |
| Support Density | 20 |
| Support Z Distance | 0.2 |
| Suport X/Y Distance | 0.88 |
| User Towers | unchecked |
| Build plate adhesion type | None |
| Surface mode | Normal |
| Enable Bridge Settings | Checked |
This table resumes the printing times for my Ender-3 configuration:
| part name | cuantity | color | printing time hh:mm |
|---|---|---|---|
| wheel | 1 | black | 03:35 |
| chassis | 1 | green | 00:31 |
| arduino holder | 1 | green | 00:08 |
| spacers | 2 | green | 00:03 |
(I print the wheel in black, alone, and the rest of them...
Read more »
Juan M. Casillas
Just4Fun
jean.perardel
Riccardo Iacob
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.