First step is to list each type of input for all of the desired controls:
Happ mechanical rotary joystick
- 4 microswitch inputs
- rotary encoder inputs
8-way "flight stick" with trigger and thumb buttons
- 6 or 7 microswitch inputs
buttons (6 player buttons + Coin + Start + Exit + Pause?)
- 10 microswitch inputs
push/pull spinner
- 2 microswitch inputs for push/pull
- 5v, ground, and 2 data lines for the spinner
---------------
Totals:
23 microswitch inputs
1 set of optical inputs
1 set of rotary inputs
----------------
If you want a single encoder board that can handle all of those inputs, check out the Ultimarc
U-HID.
There is an "
App Note AN1001" PDF mentioned
here and in the U-HID manual that is supposed to show how to connect the rotary joystick inputs, but the link is 404.
(Just PM'd Andy to let him know that link is broken)
Another option is to use two encoders and an un-powered hub.
Rotary and microswitch inputs:
- A Leonardo Micro Arduino running the KADE miniArcade 2.0 firmware (configure as a keyboard-style encoder)
- GGG
GP-Wiz40 (gamepad-style encoder)
Optical inputs:
- A Leonardo Pro Micro Arduino running StefanBurger's Illuminated spinner firmware
- GGG
Opti-Wiz orAnother possible two-encoder combination is an IPac for microswitches/optical and a Leonardo Pro Micro Arduino running the KADE miniArcade 2.0 firmware for rotary.
Regardless of the encoder(s)/hub you select, you can use a Neutrik NAUSB-W-B feedthru for single cable connection from the controller to the RasPi3.
- Turn the feedthru barrel so the A connector for the U-HID or hub is on the inside.
- That puts the B connector on the outside allowing you to use a single USB A-B cable to connect the controller to the RasPi3.
Scott