RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    what is the best Arcade Spinner for Retropie v.4.8.2 on pi4?

    Scheduled Pinned Locked Moved Help and Support
    arcade spinner
    16 Posts 6 Posters 1.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • AshpoolA
      Ashpool @giandeejay
      last edited by

      @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!

      giandeejayG 1 Reply Last reply Reply Quote 0
      • giandeejayG
        giandeejay @Ashpool
        last edited by

        @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.

        AshpoolA 1 Reply Last reply Reply Quote 0
        • AshpoolA
          Ashpool @giandeejay
          last edited by Ashpool

          @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.

          giandeejayG 1 Reply Last reply Reply Quote 0
          • giandeejayG
            giandeejay @Ashpool
            last edited by giandeejay

            @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...

            mituM 1 Reply Last reply Reply Quote 0
            • mituM
              mitu Global Moderator @giandeejay
              last edited by

              @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.

              giandeejayG 1 Reply Last reply Reply Quote 0
              • giandeejayG
                giandeejay @mitu
                last edited by

                @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 ?

                AshpoolA 1 Reply Last reply Reply Quote 0
                • mituM
                  mitu Global Moderator
                  last edited by

                  @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.

                  AshpoolA 1 Reply Last reply Reply Quote 0
                  • AshpoolA
                    Ashpool @mitu
                    last edited by Ashpool

                    @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.)).

                    mituM 1 Reply Last reply Reply Quote 1
                    • mituM
                      mitu Global Moderator @Ashpool
                      last edited by

                      AFAIK potentiometers would be used for paddles, not spinners (who turns endless left/right) ;>

                      You're right, I got them confused.

                      1 Reply Last reply Reply Quote 0
                      • AshpoolA
                        Ashpool @giandeejay
                        last edited by

                        @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".
                        
                        
                        AshpoolA 1 Reply Last reply Reply Quote 0
                        • AshpoolA
                          Ashpool @Ashpool
                          last edited by Ashpool

                          @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 ;)

                          A 1 Reply Last reply Reply Quote 0
                          • A
                            appas @Ashpool
                            last edited by appas

                            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?

                            AshpoolA 1 Reply Last reply Reply Quote 0
                            • AshpoolA
                              Ashpool @appas
                              last edited by

                              @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.

                              giandeejayG 1 Reply Last reply Reply Quote 0
                              • giandeejayG
                                giandeejay @Ashpool
                                last edited by giandeejay

                                @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...

                                D 1 Reply Last reply Reply Quote 1
                                • D
                                  DIY-CraigB @giandeejay
                                  last edited by

                                  @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.

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  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.