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

    Unable to get U-HID spinner working with RetroPie image

    Scheduled Pinned Locked Moved Help and Support
    helpu-hidmousespinnerusb
    10 Posts 5 Posters 1.5k 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.
    • M
      msamblanet
      last edited by

      I have a U-HID board driving arcade controls for RetroPie. The buttons work fine BUT the spinner does not seem to be working. I think it is an OS level issue as I cannot get any output from /dev/input/mice from the spinner (but I can get it from other devices). Everything works fine on Windows. I've contacted the U-HID vendor but they did not have much to offer on Linux support. If I can get something more specific to go back with, I will...

      I've searched the threads here and elsewhere but not found anything that seemed quite relevant...hoping somebody may have some ideas on how to troubleshoot this further...

      Pi Model or other hardware: Pi3
      Power Supply used: Pwr+ 3.5a
      RetroPie Version Used: 4.4 (commit cda9ffcb1b3d34f08280026051f0bc0d738b6b39)
      Built From: Downloaded SD Image
      USB Devices connected: U-HID, Logitech combined Kbd/Mouse Receiver
      Controller used: U-HID generated gamepad
      Error messages received: None
      Log found in /dev/shm/runcommand.log (if relevant): N/A
      Guide used: https://retropie.org.uk/docs/Spinners,-Trackballs,-Lightguns,-and-other-Mouse-Devices/
      File: N/A
      Emulator: lr-mame2003
      Attachment of config files: Do not believe any are relevant but can provide if needed
      How to replicate the problem:

      1. Boot to SSH prompt
      2. lsusb -t` to confirm device was detected
      3. cat /dev/input/mice (also tested with individual devices)
        • Move logitech mouse and I get output
        • Move spinner and nothing happens
      4. Remove Logitech receiver and re-test (using SSH) and get same behavior
      5. Boot off random SD card with a Raspbian - logitech mouse works, spinner has no effect on mouse cursor
      6. Plug U-HID into Windows machine, spinner moves mouse cursor on X axis
      pi@retropie:~/RetroPie-Setup $ lsusb
      Bus 001 Device 005: ID 046d:c52e Logitech, Inc. MK260 Wireless Combo Receiver
      Bus 001 Device 004: ID d209:1501 Ultimarc
      Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
      Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
      Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
      
      pi@retropie:~/RetroPie-Setup $ lsusb -t
      /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
          |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
              |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
              |__ Port 2: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
              |__ Port 2: Dev 4, If 3, Class=Human Interface Device, Driver=usbhid, 12M
              |__ Port 2: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
              |__ Port 2: Dev 4, If 2, Class=Human Interface Device, Driver=usbhid, 12M
              |__ Port 3: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 12M
              |__ Port 3: Dev 5, If 1, Class=Human Interface Device, Driver=usbhid, 12M
      
      pi@retropie:~/RetroPie-Setup $ lsusb -v
      
      Bus 001 Device 005: ID 046d:c52e Logitech, Inc. MK260 Wireless Combo Receiver
      Couldn't open device, some information will be missing
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               2.00
        bDeviceClass            0 (Defined at Interface level)
        bDeviceSubClass         0
        bDeviceProtocol         0
        bMaxPacketSize0         8
        idVendor           0x046d Logitech, Inc.
        idProduct          0xc52e MK260 Wireless Combo Receiver
        bcdDevice           23.00
        iManufacturer           1
        iProduct                2
        iSerial                 0
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength           59
          bNumInterfaces          2
          bConfigurationValue     1
          iConfiguration          4
          bmAttributes         0xa0
            (Bus Powered)
            Remote Wakeup
          MaxPower               98mA
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         3 Human Interface Device
            bInterfaceSubClass      1 Boot Interface Subclass
            bInterfaceProtocol      1 Keyboard
            iInterface              0
              HID Device Descriptor:
                bLength                 9
                bDescriptorType        33
                bcdHID               1.11
                bCountryCode            0 Not supported
                bNumDescriptors         1
                bDescriptorType        34 Report
                wDescriptorLength      59
               Report Descriptors:
                 ** UNAVAILABLE **
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0008  1x 8 bytes
              bInterval               8
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        1
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         3 Human Interface Device
            bInterfaceSubClass      1 Boot Interface Subclass
            bInterfaceProtocol      2 Mouse
            iInterface              0
              HID Device Descriptor:
                bLength                 9
                bDescriptorType        33
                bcdHID               1.11
                bCountryCode            0 Not supported
                bNumDescriptors         1
                bDescriptorType        34 Report
                wDescriptorLength     177
               Report Descriptors:
                 ** UNAVAILABLE **
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x82  EP 2 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0014  1x 20 bytes
              bInterval               2
      
      Bus 001 Device 004: ID d209:1501 Ultimarc
      Couldn't open device, some information will be missing
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               2.00
        bDeviceClass            0 (Defined at Interface level)
        bDeviceSubClass         0
        bDeviceProtocol         0
        bMaxPacketSize0         8
        idVendor           0xd209 Ultimarc
        idProduct          0x1501
        bcdDevice            0.39
        iManufacturer           1
        iProduct                1
        iSerial                 5
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength          109
          bNumInterfaces          4
          bConfigurationValue     1
          iConfiguration          1
          bmAttributes         0x80
            (Bus Powered)
          MaxPower              100mA
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         3 Human Interface Device
            bInterfaceSubClass      0 No Subclass
            bInterfaceProtocol      0 None
            iInterface              1
              HID Device Descriptor:
                bLength                 9
                bDescriptorType        33
                bcdHID               1.11
                bCountryCode            0 Not supported
                bNumDescriptors         1
                bDescriptorType        34 Report
                wDescriptorLength      33
               Report Descriptors:
                 ** UNAVAILABLE **
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0008  1x 8 bytes
              bInterval              10
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        1
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         3 Human Interface Device
            bInterfaceSubClass      0 No Subclass
            bInterfaceProtocol      0 None
            iInterface              3
              HID Device Descriptor:
                bLength                 9
                bDescriptorType        33
                bcdHID               1.11
                bCountryCode            0 Not supported
                bNumDescriptors         1
                bDescriptorType        34 Report
                wDescriptorLength      86
               Report Descriptors:
                 ** UNAVAILABLE **
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x82  EP 2 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0015  1x 21 bytes
              bInterval              10
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        2
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         3 Human Interface Device
            bInterfaceSubClass      1 Boot Interface Subclass
            bInterfaceProtocol      1 Keyboard
            iInterface              4
              HID Device Descriptor:
                bLength                 9
                bDescriptorType        33
                bcdHID               1.11
                bCountryCode            0 Not supported
                bNumDescriptors         1
                bDescriptorType        34 Report
                wDescriptorLength      63
               Report Descriptors:
                 ** UNAVAILABLE **
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x83  EP 3 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0010  1x 16 bytes
              bInterval              10
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        3
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         3 Human Interface Device
            bInterfaceSubClass      1 Boot Interface Subclass
            bInterfaceProtocol      2 Mouse
            iInterface              2
              HID Device Descriptor:
                bLength                 9
                bDescriptorType        33
                bcdHID               1.11
                bCountryCode            0 Not supported
                bNumDescriptors         1
                bDescriptorType        34 Report
                wDescriptorLength     112
               Report Descriptors:
                 ** UNAVAILABLE **
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x84  EP 4 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0008  1x 8 bytes
              bInterval              10
      
      Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
      Couldn't open device, some information will be missing
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               2.00
        bDeviceClass          255 Vendor Specific Class
        bDeviceSubClass         0
        bDeviceProtocol         1
        bMaxPacketSize0        64
        idVendor           0x0424 Standard Microsystems Corp.
        idProduct          0xec00 SMSC9512/9514 Fast Ethernet Adapter
        bcdDevice            2.00
        iManufacturer           0
        iProduct                0
        iSerial                 0
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength           39
          bNumInterfaces          1
          bConfigurationValue     1
          iConfiguration          0
          bmAttributes         0xe0
            Self Powered
            Remote Wakeup
          MaxPower                2mA
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           3
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass      0
            bInterfaceProtocol    255
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x02  EP 2 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x83  EP 3 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0010  1x 16 bytes
              bInterval               4
      
      Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
      Couldn't open device, some information will be missing
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               2.00
        bDeviceClass            9 Hub
        bDeviceSubClass         0 Unused
        bDeviceProtocol         2 TT per port
        bMaxPacketSize0        64
        idVendor           0x0424 Standard Microsystems Corp.
        idProduct          0x9514 SMC9514 Hub
        bcdDevice            2.00
        iManufacturer           0
        iProduct                0
        iSerial                 0
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength           41
          bNumInterfaces          1
          bConfigurationValue     1
          iConfiguration          0
          bmAttributes         0xe0
            Self Powered
            Remote Wakeup
          MaxPower                2mA
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         9 Hub
            bInterfaceSubClass      0 Unused
            bInterfaceProtocol      1 Single TT
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0001  1x 1 bytes
              bInterval              12
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       1
            bNumEndpoints           1
            bInterfaceClass         9 Hub
            bInterfaceSubClass      0 Unused
            bInterfaceProtocol      2 TT per port
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0001  1x 1 bytes
              bInterval              12
      
      Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
      Couldn't open device, some information will be missing
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               2.00
        bDeviceClass            9 Hub
        bDeviceSubClass         0 Unused
        bDeviceProtocol         1 Single TT
        bMaxPacketSize0        64
        idVendor           0x1d6b Linux Foundation
        idProduct          0x0002 2.0 root hub
        bcdDevice            4.14
        iManufacturer           3
        iProduct                2
        iSerial                 1
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength           25
          bNumInterfaces          1
          bConfigurationValue     1
          iConfiguration          0
          bmAttributes         0xe0
            Self Powered
            Remote Wakeup
          MaxPower                0mA
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           1
            bInterfaceClass         9 Hub
            bInterfaceSubClass      0 Unused
            bInterfaceProtocol      0 Full speed (or root) hub
            iInterface              0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0004  1x 4 bytes
              bInterval              12
      
      1 Reply Last reply Reply Quote 0
      • T
        treaves
        last edited by

        I have an Ultimarc spinner, and had to do things to be able to use it with EmulationStation.

        • for mame, enable the mouse in the config file
        • the spinner defaults to controlling the Y-axis, I had to change it to the X-axis.

        I'm not sure this is your issue, as I did have output from cat /dev/input/mice . But you could check.

        M F 2 Replies Last reply Reply Quote 0
        • M
          msamblanet @treaves
          last edited by

          @treaves - Thanks for the info - I’ll check but suspect this is not the issue. Which controller are you using with your spinner? The newer ones come with the u-hid nano but ultimarc had other controllers in the past...

          My other next step is to dig through some boxes and find an older spinner controller and see if it works (although I want the u-hid to work as it is a nice small device for everything)...

          1 Reply Last reply Reply Quote 0
          • T
            treaves
            last edited by

            I'm using an iPac Ultimate IO.

            Good luck.

            M 1 Reply Last reply Reply Quote 0
            • M
              msamblanet @treaves
              last edited by

              @treaves Thanks for the info.

              I've mapped a couple buttons to mouse-left-click and mouse-right-click for testing and they work correctly but the cursor won't move when I boot to a flash card with X on it (figure I'd try to ensure it's not RetroPie configuration issues).

              I guess it's down into the deep dark world of the Linux drivers...

              M 1 Reply Last reply Reply Quote 0
              • M
                msamblanet @msamblanet
                last edited by

                So I recorded the event stream from the U-HID using evemu and compared it to the event stream from a working Logitech mouse...the two report a different event. The Logitech reports EV_REL / REL_X (relative motion on X) whereas the U-HID reports EV_REL / REL_RX (relative motion on rotational X axis). When I edit the REL_RX to REL_X and replay the stream it works...

                I've emailed U-HID on the matter and will see what they say. If anybody has any idea if there is a way to get Linux to pickup the RX axis, please let me know...

                evemu exerpt: Working Logitech

                E: 0.000001 0002 0000 0010      # EV_REL / REL_X                10
                E: 0.000001 0002 0001 0004      # EV_REL / REL_Y                4
                E: 0.000001 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +0ms
                E: 0.016037 0002 0000 0023      # EV_REL / REL_X                23
                E: 0.016037 0002 0001 0003      # EV_REL / REL_Y                3
                E: 0.016037 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +16ms
                E: 0.032008 0002 0000 0012      # EV_REL / REL_X                12
                E: 0.032008 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +16ms
                E: 0.047952 0002 0000 0022      # EV_REL / REL_X                22
                E: 0.047952 0002 0001 -002      # EV_REL / REL_Y                -2
                

                evemu exerpt: Not-Working U-HID

                E: 0.000001 0002 0003 0001      # EV_REL / REL_RX               1
                E: 0.000001 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +0ms
                E: 0.015999 0002 0003 0001      # EV_REL / REL_RX               1
                E: 0.015999 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +15ms
                E: 0.031984 0002 0003 0003      # EV_REL / REL_RX               3
                E: 0.031984 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +16ms
                E: 0.047986 0002 0003 0010      # EV_REL / REL_RX               10
                E: 0.047986 0000 0000 0000      # ------------ SYN_REPORT (0) ---------- +16ms
                
                A 1 Reply Last reply Reply Quote 0
                • A
                  arcades @msamblanet
                  last edited by

                  @msamblanet wondering if you heard back from the u-hid vendor? Or found a workaround? As I too am faced with the same issue with my driving cab spinner and u-hid device.

                  Cheers!

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

                    I was able to reach out to U-HID support and confirm that that spinners are not being recognized as mouse devices in Linux, there for this feature on the U-HID device is not available to use in retropie :(

                    All functionality works as expected on Windows platform.

                    1 Reply Last reply Reply Quote 0
                    • T
                      tsl
                      last edited by

                      Hello, @msamblanet and @arcades - FYI- I've been battling for a couple of days on this issue until I found that I have the issue described here if the spinner is connected to J5 pins (the trackball has its own USB connection).

                      However, if I move this to J4 pins (J4 and J5 are the only two pin groups supporting quadrature), it just works - no questions asked...

                      Hope this information might be useful to you and someone else with the same setup!

                      1 Reply Last reply Reply Quote 0
                      • F
                        francis2019 @treaves
                        last edited by

                        @treaves Hello where do you go t swich the spinner defaults controling Y-axis to X-axis. Thanks

                        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.