DIY Paddle and Spinner controller using arduino and rotary encoder.
This is a fork from A2600 Paddles/Spinners USB Adapter by Alexey Melnikov (sorgelig).
- Two devices using a single arduino
- Outputs in a way that MiSTer's sees it as a spinner and paddle combo
- Added a second button
- Added [mode] and [config] buttons
- Added button debounce
- Added RetroZord's negCon mode (RZordPsWheel)
- Added mouse mode
- Added oled display
- Added mouse/spinner speed multiplier (1x, 4x, 7x, 10x)
- Added mouse axis inversion
Mode | Serial ID | Buttons | MiSTer notes |
---|---|---|---|
MiSTer-S1 | MiSTer-S1 Spinner | 1 | Spinner and Paddle |
NeGcon | RZordPsWheel | 2 | Wheel and Paddle |
Mouse | RZordSpinnerMouse | 2 |
Mode selection during boot by holding buttons:
- [Mode] high and [Config] high: MiSTer-S1 (2x) (falls to
DEVICEMODE_DEFAULT
) - [Mode] high and [Config] low: NeGcon (2x)
- [Mode] low and [Config] high: Mouse (2x) as X
- [Mode] low and [Config] low: Mouse (1x), paddle 1 as X, paddle 2 as Y
Changing [Mode] button state during runtime will trigger a hardware reset (after 1 second).
Can be used to change the output mode without requiring to disconnect/connect the usb cable.
Pressing [Config] mode during runtime enters config mode (shows Config
on the oled display).
While in this mode, main button press on each pad will change mouse/spinner multiplier value.
Secondary button will toggle mouse value inversion.
Press [Config] again to exit config mode.
Inverted mouse was added to play Tempest on MiSTer's psx core.
I recommend to set multiplier at 10 for this game.
Original code from sorgelig.
DigitalIO and SSD1306Ascii from greiman.
SoftWire from felias-fogg.
Bugtton from sakabug
Special thanks to my father helping with the hardware.