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

    Gamepad not recognized by raspbian/retropie : SOG-WXGP (Shanwan)

    Scheduled Pinned Locked Moved Help and Support
    sog-wxgpjoypadusbhidraspbian
    9 Posts 4 Posters 2.0k 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.
    • T
      touiouf
      last edited by

      Hello :)

      I'm asking for some help about a gamepad. It's a SOG-WXGP (spirit of gamer). It doesn't work at all (jstest gives nothing) on the raspberry pi (running raspbian stretch), but it works perfectly on a desktop computer (running debian stretch).

      Rasperry pi :
      Model 3B+, official power supply (5V 2.5A), OS on the sdcard
      Raspbian stretch installed first (from the official raspbian website), and then Retropie installed from the git repo installer
      Kernel : 4.14.52-v7+
      USB devices connected : USB keyboard / USB hub (not self-powered) / SOG gamepad / Thrustmaster gamepad
      Retropie setup script : 4.4.2
      Retropie version : sorry i don't know, but installed few days ago (basic install)

      I've found some information with dmesg and lsusb, both on the debian dsktop computer and on the raspberry :
      The SOG gamepad (on the raspberry) seems to change his USB vendor id and product id after a short time, from 2563:0575 to 045e:028e, which is a microsoft xbox game controler id... (and the constructor is always Shanwan). On the desktop computer, it's 20bc:5500 (no description)
      lsusb -t says that the driver is xpad on the raspberry and on the desktop computer, it's usbhid.

      I blacklisted xpad and unload the module (and restart the raspberry), but when i plug the joypad, lsusb -t show no driver. usbhid driver is not handeling this pad automatically, but it does for the keyboard and the thrustmaster pad.

      Another strange thing is that the usbhid module doesn't appears on the list from lsmod, but it's loaded

      Do you know how to force usbhid to handle this gamepad, instead of xpad? Because usbhid works on the desktop computer, so...
      I don't really know what to do next :(

      PS : I also tried xboxdrv and hid_dr, but it has done nothing

      Please, you can ask for more information if you want :)

      A 1 Reply Last reply Reply Quote 0
      • T
        touiouf
        last edited by

        I forgot : For information, this is a wired joypad, not a wireless one

        1 Reply Last reply Reply Quote 0
        • DougAD
          DougA
          last edited by

          You mentioned a no-powered USB hub. Are you running the controller through the hub? If so try running it directly from the Pi without the hub. Your power supply may not be enough for the hub, or if you are using a USB hub, it probably won’t work at all. USB 2 hubs work fine, but USB 3 hubs are problematic

          T 1 Reply Last reply Reply Quote 0
          • T
            touiouf @DougA
            last edited by

            Thanks for the answer :)

            It's an USB2 hub (icy box, IB-HUB1409-U3). I tried the SOG with and without the hub, no changes. I tried the trustmaster with and without it, it works in both case. I also tried only with the SOG, directly on the rasperry pi, no trustmaster, still not recognized

            T 1 Reply Last reply Reply Quote 0
            • T
              touiouf @touiouf
              last edited by

              Sorry, the USB hub is USB3 compatible, my bad. But I don't think it's the problem, because it works with the trustmaster joypad, and the SOG-WXGP joypad doesn't work with or without the hub

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

                Usually, controllers supporting several devices have a switch between the connection modes they support (PS3, X-Input, DirectInput, Switch, Android, etc.), but it seems your controller tries to guess which device is connected to and starts in a certain mode.
                You can force a certain driver to handle the gamepad - see https://unix.stackexchange.com/questions/12005/how-to-use-linux-kernel-driver-bind-unbind-interface-for-usb-hid-devices - but that still might not work if the controller 'thinks' it's using a certain connection mode.

                1 Reply Last reply Reply Quote 0
                • A
                  Andrew Przelucki @touiouf
                  last edited by Andrew Przelucki

                  There are drivers for Shanwan hardware on GitHub, but I also can't find one for my specific product ID. I did try one and got rumble to work for a day, but after rebooting I'm still unable to get it working again. I suggest writing to the seller and manufacture with a request to make Linux drivers for their products.

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

                    @Andrew-Przelucki Shanwan is a vendor providing more than a few input devices, I'm not sure the one you have is directly related to the one reported in this topic.

                    I suggest writing to the seller and manufacture with a request to make Linux drivers for their products.

                    The original poster hasn't been here in 5 years. If your request is for them, I'm not sure they'll get the message.

                    You can do the same and write to the manufacturer and let them know your issues with Linux support. Another option is to vote with your wallet instead and buy a Linux compatible device, returning the faulty one.

                    A 1 Reply Last reply Reply Quote 1
                    • A
                      Andrew Przelucki @mitu
                      last edited by

                      @mitu Thanks for the suggestions! First I need to stress that this subject (overall) is still relevant as many people have this manufacturer's hardware. I found several solutions, including a driver and script that modifies the device controller to enable rumble, but all these solutions aren't for my particular hardware ID (2563:0526). I actually did manage to enable rumble on Linux once, I played around with xboxdrv, loaded the custom driver and used the script, and eventually rumble did work - until I did a reboot. So far, I can't get rumble to work again, despite modifying a bit the driver source code. Whatever I did worked, somehow. I had properly working rumble which I tested with fftest and in-game using an emulator. My gamepad is generally supported by the usbhid driver, all axes, buttons and HAT work properly, but not rumble (fftest says functions not implemented). But my successful attempt proved that that the gamepad can be fully supported under Linux, it's just a matter of slight driver modification. It's a good gamepad, better than much more expensive alternatives which claim to have superior design. That being said, I did send an email to the manufacturer (link) and my local seller. There are many posts on the web about this hardware type, I'm searching everywhere. Those who have the product ID matching the script or driver have full hardware support on Linux. So this hardware can be fully working under Linux. Maybe future updates to usbhid will provide rumble.

                      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.