what is the best Arcade Spinner for Retropie v.4.8.2 on pi4?
-
@giandeejay Sorry, I cannot help you with the GPIO Question (though i am interested in possible solutions), but out of curiosity - what where those pricy spinner which are in need of a further encoder in the same price league? From the few Arcade Vendors I knew it is mostly the Ultimarc Spin-Trak if it comes down to spinners (and maybe one from Il Lorenzo or was it SlikStik?), all are sold with usb connection included. On behalf of the Spin-Trak that is AFAIK an U-HID Nano with a crippled down for the device (and unflashable) firmware), don't know if the other ones USB connection is build-in, or also a separated CI. As said, just curious!
-
@Ashpool the "spintrack" spinner for example is very expensive if you search on amazon you will find some spinners that cost much less, such as the EGSTARTS one, (initially compatible only with Arcad1up bartops (which are not based on raspberrypi), this EgStarts spinner to make it work with Raspberrypi You need to buy an additional controller card called 12 in 1 spin card, which however costs 25 dollars in America (amazon.com) while in Italy (amazon.it) the same card is sold for 70 euros (about 80 dollars), too expensive therefore... if it were possible to buy an industrial spinner for 10 euros (8 dollars on amazon) and connect the spinner to the GPIO port it would only be a question of defining the GPIO PINs, but I don't know if there is a ready-made software (maybe on github.com ??) driver to show the spinner to retroarch or if instead you have to create a particular script by hand.
-
@giandeejay said in what is the best Arcade Spinner for Retropie v.4.8.2 on pi4?:
You need to buy an additional controller card called 12 in 1 spin card, which however costs 25 dollars in America (amazon.com) while in Italy (amazon.it) the same card is sold for 70 euros (about 80 dollars), too expensive therefore...
WTH.. I see..
Most DIY Spinner Projects I know are either based upon up-cycling a desktop-mouse [1] or by using an arduino [2] as an usb-interface (but i bet that one can substitute the arduino with some Atmel-based DIY CI board (like some DIY digital joystick projects i am aware of [3]). Though my feelings are, that the Arduino is the modern short-cut to soldering you're own PCB+ICSP ;]
I guess , even if such a Project may allready exist for the Raspi, it is rather unknown/hard to dig up, and therefor such a solution is most propably yet to be developed.[1] e.g. the DIY Spinner from our forum here or much older, yet still one I ever wanted to build, the Cheep Spinner which has the advantage of a counter-/flyweight.
[2] e.g. HOMEBUILT USB-HID DUAL ARCADE SPINNER ..., or Let's build an USB spinner controller.
[3] e.g. the CJoy or the Retro-Adapter. -
@Ashpool slowly you are entering in the heart of my problem, my initial question is in fact based on the concept that I don't want to use arduino or other add-on cards, I would like to understand if there is a way to program the raspberry GPIO to make the spinner be recognized as a HID Device ...and behave like a mouse on only one X-axis.
Some cards like the 12 in 1 are based on IPAQ protocols , but I don't Know how IPaq works....
I need help
Because Raspberry GPIO is most powerful of arduino and maybe there is a method to program it better..
But I don't know How to... -
@giandeejay said in what is the best Arcade Spinner for Retropie v.4.8.2 on pi4?:
Because Raspberry GPIO is most powerful of arduino and maybe there is a method to program it better..
Not quite, the RPI GPIO doesn't feature an ADC, which I think it's needed to translate a spinner/analog joystick readings into a HID device.
-
@mitu ok...but what kind of protocol is used by spinner ? In market place there are very cheap adaptor called UART to USB connectors...maybe this hardware can recognise spinner when converted on raspberrypi usb port?
Adaptor UART/IIC/SPI/Ttl/ISP to USB
Or the problem is not so simple to solve as I think ? -
@mitu ok...but what kind of protocol is used by spinner ?
I don't think there's a standard. Some of them just send the potentiometer read value, others may send relative motion read-outs.
In market place there are very cheap adaptor called UART to USB connectors...maybe this hardware can recognise spinner when converted on raspberrypi usb port?
UART is usually serial, I don't think the spinner communicates that way.
-
@mitu said in what is the best Arcade Spinner for Retropie v.4.8.2 on pi4?:
Some of them just send the potentiometer read value,
AFAIK potentiometers would be used for paddles, not spinners (who turns endless left/right) ;>
@giandeejay the links provided within the 3rd one of my previous post seem to be a good start as a research on that topic: wikipedia: Incremental Encoder and the article on SeedStudio about Rotary Encoders.
And maybe there is a way to use a variant of rotary encoders on the raspi: ThePiHut: How to use a rotary encoder with the raspberry pi ... (though that [mechanical stepcount] one used there is with 5 contacts vs. the propably [optical/magnetical (??))] wanted 4 (VCC/GND; Phase A/B) and I am not sure if it would be usable for an arcade-spinner (speed/flyweight to go where?/etc.)).
-
AFAIK potentiometers would be used for paddles, not spinners (who turns endless left/right) ;>
You're right, I got them confused.
-
@giandeejay Sigh :D Maybe it is easier than we have thought, though this may need some more RTFM I think (i.e. what kind of encoders exactly) ... citing the README from /boot/overlays (overlays are added within /boot/config.txt)
Name: rotary-encoder Info: Overlay for GPIO connected rotary encoder. Load: dtoverlay=rotary-encoder,<param>=<val> Params: pin_a GPIO connected to rotary encoder channel A (default 4). pin_b GPIO connected to rotary encoder channel B (default 17). relative_axis register a relative axis rather than an absolute one. Relative axis will only generate +1/-1 events on the input device, hence no steps need to be passed. linux_axis the input subsystem axis to map to this rotary encoder. Defaults to 0 (ABS_X / REL_X) rollover Automatic rollover when the rotary value becomes greater than the specified steps or smaller than 0. For absolute axis only. steps-per-period Number of steps (stable states) per period. The values have the following meaning: 1: Full-period mode (default) 2: Half-period mode 4: Quarter-period mode steps Number of steps in a full turnaround of the encoder. Only relevant for absolute axis. Defaults to 24 which is a typical value for such devices. wakeup Boolean, rotary encoder can wake up the system. encoding String, the method used to encode steps. Supported are "gray" (the default and more common) and "binary".
-
@Ashpool said in what is the best Arcade Spinner for Retropie v.4.8.2 on pi4?:
though this may need some more RTFM I think (i.e. what kind of encoders exactly)
... Ok, to be more precise - maybe not kind of encoder, but specifications of it. ... Whats about VCC? Is it providable via Raspi GPIOs? (24V/12V, etc. / are any resistors or other elements needed in the connection?)?
From a few hits I got on german sides - up to what frequency is it usable, as most use-cases i've found are more on a radio-dial/step-by-step area -> so arkanoid could well be covered, but any game which needs/supports a whack-just turn, turn, turn... high-frequency spinner may be out of reach by what is offered within that overlay/raspi abillities... At least there must be a reason why people switch to arduino or other atmel based solutions as a HID interface... But I am still curious and interested in/towards possible answers ;) -
I am wondering about this spinner. I would like to play some MAME Tempest with it. How would I configure it to work with RetroPie?
-
@appas That's a Controller with USB connection, and as such not related to this topic (even if the threads title may imply it). Read the Docs for mouse like devices and maybe this article about spinner turn counts and if there are any remaining questions, please open a separated topic for it.
-
@Ashpool hi to all, i have finally found a great solution for my Spinner and now I have a great Spinner Working on Retropie v4.8.2.
Hardware used:- 1 Industrial Rotary encoders (7 dollars)
- 1 Alloy Wheel for rotary encoder 6mm
Cost 1 euro ( in Italy). - 1 Arduino Pro Micro Atmega32u4 board 5volt powered (a "clone" version of Arduino Leonardo Board but most powerful than Leonardo and space saving, not a Sparkfun "red board", but a "blue board of Pro Micro" founded on Amazon). Cost 5 dollars
- 1 Raspberry Pi4 on my autocreated Bartop and Arcade Cabinet.
I have programmed this Arduino pro micro board using 2 libraries joystick.h and mouse.h and thanks to CraigB for the rest of source code doing "quadrature" for spinner...and the correct command line to preset spinner over Retropie adding it at /boot/cmdline.txt file.
(a Declaration of Spinner by Vendor ID and Product ID in Hex value, so retropie can recognise it)...
So, my Arduino pro micro board is connected by A/B channel of spinner but controlled by sketch software using interrupt (fastest and very accurate Reading than directly Reading from TXD / RXD pin channels, slow read).
So my industrial rotary encoder (600 point per rotation)is connected (4 Cables at all) on digital PIN 2 (A)and 3 (B) and pin GND and VCC PIN 5volts of Arduino Pro Micro board and Arduino pro micro is also connected to raspberry pi4 with a normal "micro usb cable" on 3rd USB port (others 2 usb ports are connected by 2 joystick and 10 buttons per player, on my Bartop).So i have Programmed the pro micro with sketch by my pc with IDE software and after that i have connected it to raspberry and rotary encoder acting like a "man in the middle" device.
Arduino pro micro is already (natively) an HId device for every other pc/tablet/linux/mac/raspberry/ smart tv/ or everything else...And when my spinner (rotary encoder+pro micro board + usb cable+alloy wheel) was connected To raspberry pi4 With Retropie 4.8.2 i have added it on retroarch like a mouse for player 1 and 2.
I have also enabled "mouse auto detection/connection" option in retroarch...And now my new "ardu- spinner " works very well !
On FBA emulator works very well also with OutRUN and ALL driving games like a good "steering wheel", the spinner works fine also on Arkanoid and similar games and so on...
Also in Mame2010 and Mame2003 my spinner works great.
And also on sega Supermodel3** games my spinner works very well ...The most important thing before play with my "arduino based spinner" is to set the correct mouse index in retroarch> input> user 1 binds, for earlier version of retropie the documentation Is good , mouse index was a number , but from version 4.8.x mouse index is not (only) a number but a name of periphericals, infact my Arduino is viewed by retroarch like a mouse index named "Arduino Leonardo"...and Works very well.
So I have done:
The greatest spinner at lowest price...
Thank you very much**I know normally Segasupermodel 3 was not included in retropie 4.8.2 but i have take a little modification on my retropie 4.8.2 like integration of Sega Supermodel3 (correcting all the bug on its original source code and recompiling it on pi4 without errors) and I also made a New integration of vulkan drivers in some emulators like lr-ppsspp and others thanks also to pikiss tools...
-
@giandeejay Good to find that someone found my github page how to build a spinner and also trackball using an AtMega32U4 MCU (MicroController Unit). I also did some Youtube demos of the devices. Original hack was JoeW but his build diverged from mine since 2019. I did multiple versions of code with and without buttons (joystick or mouse). Even a MiSTeR version with adjustable sensitivity. There were multiple build versions like on thingiverse. I know someone in Europe had multiple language translation of my version howto. I was even so popular the Chinese did a knot-off of my design at retroarcadecrafts and alibabba/aliexpress.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.