September 11, 2018
Description
Originally posted on the Build Your Own Arcade Controls (BYOAC) forums.
http://forum.arcadecontrols.com/index.php/topic,158253.0.html
The photos above are in the same order as the text below.
Do you want the look and feel of an LS-30 handle for your Happ Rotary Joystick?
(01-Replacement handle installed.jpg)
If so, this is the thread for you. :)
All 3D printed parts in this project are easy to customise by changing the related variable(s) in OpenSCAD.
The code is extensively commented to make it easy to understand, modify, and reuse.
Original LS-30 handle next to the printed version.
(02-Handles side-by-side.jpg)
Special thanks to 8BitMonk for loaning me an LS-30 handle. :cheers
Tools:
Hardware:
10mm shaft (~105-125mm per stick, depending on panel thickness)
https://www.amazon.com/500mm-Cylinder-Linear-Optical-Accuracy/dp/B01N7RXCOQ/
20x10x10 shaft collar
https://www.amazon.com/SC45CS10-Carbon-Steel-Collars-Outsize/dp/B074BV3GYH/
5mm-0.80 x 10mm metric setscrew
https://www.menards.com/main/tools-hardware/fasteners-fastener-accessories/screws/specialty-screws-accessories/5mm-0-80-x-10mm-metric-socket-set-screws-1-pcs/p-1444440045536-c-8938.htm
3D print-coating epoxy (optional)
https://www.amazon.com/gp/product/B00PFXK4JY/
Threaded inserts for mounting the joystick in a wood panel
http://groovygamegear.com/webstore/index.php?main_page=product_info&cPath=70&products_id=317
Software:
OpenSCAD
http://www.openscad.org/
Inkscape (optional)
https://inkscape.org/en/
Inkscape to OpenSCAD converter plugin (optional)
https://www.thingiverse.com/thing:24808
LS-30 handle measurements
8BitMonk provided the clearance measurements and panel thickness from his Ikari Warriors cab. :applaud: :notworthy:
Most of the remaining handle measurements were straight-forward.
The difficult part was measuring the tiny curve on the vertical edges of the octagon.
Most fillet gauges are designed to measure a curve where the faces are at 90 degrees.
(03-Fillet gauge right angle.jpg)
To measure the curve on an octagon where the faces are at 135 degrees, I designed some small octagonal fillet gauges.
https://www.thingiverse.com/thing:2924356
(04-Fillet Gauge X-Small.png)
Happ Rotary measurements
Once again, the measurements were pretty straight-forward.
(05-Happ Rotary Parts.jpg)
The 38mm distance from the actuator/coupler (P/N 96-1012-00) setscrew hole to the base of the pivot cone (P/N 96-1302-00) is a critical distance to ensure that the actuator is at the right height to engage the microswitches and keep the right tension on the centering spring.
To match that distance, the replacement handle and shaft cover has to stop the pivot cone where the shoulder on the original shaft (P/N 95-1274-00) did.
(06-Original and replacement shafts.jpg)
The top of the pivot cone is 2.5mm below the top of the joystick body.
(07-LS-30 Handle Measurements.jpg)
Fabricating the shaft
One way to do that is to paint part of the shaft with a Sharpie, set your calipers to 4.2 mm, barely rest one jaw on the end, and roll the shaft so the tip of the other jaw leaves a scratch.
(08-Sharpie and Scratch 1.JPG) (09-Sharpie and Scratch 2.JPG)
Drill a 4mm hole, 4mm deep, 4.2mm from the end of the shaft.
That distance = 55mm + the estimated shaft cover height from this list:
-- 19.7mm shaft cover for a metal panel
(15.6mm above + 1.6mm panel + 2.5mm under)
-- 37.2mm shaft cover for 3/4" MDF
(15.6mm above + 19.1mm panel + 2.5mm under)
-- 34mm for a 5/8" wood panel
-- 30.8mm for a 1/2" wood panel
If you plan on using threaded inserts like the ones from GGG to mount your joystick, you may want to add an extra mm for the flange.
For a 3/4" MDF panel with GGG-style threaded inserts, there should be 93.2mm (55mm + 37.2mm + 1mm) between the centers of the holes.
(10-Drilled shaft.jpg)
(11-Fabricating the Shaft.jpg)
Test print for hardware fit
LS30_Test_Print.scad allows you to check if your Shaft Collar, Set Screw, and Shaft will work with the following variables:
-- ShaftDiameter
-- ShaftCollarHeight
-- ShaftCollarOuterDiameter
-- SetScrewDiameter
Open the file in OpenSCAD.
Make any desired changes to the variables on lines 17 thru 22.
Preview
(toolbar icon or F5)
Render
(toolbar icon or F6)
Export as STL
(toolbar icon or File -- Export -- Export as STL . . .)
Print the .STL file
Print parts:
Like before, open the .scad file, change variables as desired, preview, render, export as .STL, and print the .STL file.
(12-Printed parts.jpg)
Assemble the handle:
(13-Setscrew inside.jpg)
(14-Shaft collar aligned.jpg)
(15-Setscrew cover test-fit.jpg)
(16-Handle assembly.jpg)
Rotary encoder options:
KADE miniArcade 2.0 firmware (rotary + keyboard buttons, two sticks)
http://forum.arcadecontrols.com/index.php/topic,154126.0.html
-- Runs on your choice of 32u4 AVRs
--- MattairTech MT-DB-U4
--- Arduino Leonardo Micro
--- Arduino Leonardo Pro Micro has some pins/ports not connected so it can only handle one joystick
GGG GP-Wiz40 (rotary + gamepad buttons, two sticks)
Ultimarc Rotary encoder board (rotary only, you'll need a separate encoder for the buttons and joystick microswitches, fixed keystroke outputs, two sticks)
Ultimarc U-HID (rotary + keyboard or gamepad buttons)
-- Need to wire 4 diodes to convert the 12-position rotary switch into a quadrature (mouse) waveform.
KADE miniArcade firmware (original)
-- Minimus AVRs are hard to find
Mechanical Rotary Joystick Games:
Battle Field (Japanese version of Time Soldiers)
Bermuda Triangle
Dogou Souken a.k.a. Dogosoken (Japanese version of Victory Road)
Downtown
Gondomania
Guerilla War
Guevara (Japanese version of Guerrilla War)
Heavy Barrel
Ikari III - The Rescue (This is the only rotary game that uses three player buttons.)
Ikari Warriors
Jackal (Japanese version of Top Gunner)
Makyou Senshi (Japanese version of Gondomania)
Midnight Resistance
SAR - Search And Rescue
T.N.K. III
Time Soldiers
Top Gunner (bootleg)
Victory Road
World Wars
MAME Settings for Mechanical Rotary Joysticks
For mechanical rotary games:
Input (this Game) menu
Positional Analog to none
Analog Control menu
Positional Digital Speed = 0
Positional Sensitivity = 100
Scott
License:
Creative Commons - Attribution