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 suddenly not found on RPi3B+ w/ wired USB Piranha PC/PS2/PS3 (Clone) controller

    Scheduled Pinned Locked Moved Help and Support
    ps3usbcontrollerpiranhajoypad
    23 Posts 4 Posters 4.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.
    • R
      Raspburger
      last edited by Raspburger

      I'm at my wits' end here. I've tried blacklisting the device to prevent it being grabbed by usbhidby creating

      /etc/modprobe.d/blacklist.conf
      and adding to it : blacklist usbhid

      No dice.

      I've tried creating:

      /etc/udev/rules.d/99-disable-usb-hid.rules

      and adding to it:
      SUBSYSTEMS=="usb", DRIVERS=="usbhid", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="028e", ACTION=="add", ATTR{authorized}="0"

      No dice.

      Before that, tried adding an /etc/udev/rules.d/ ruleset with:

      SUBSYSTEM=="usb",ATTRS{idVendor}=="045e", ATTRS{idProduct}=="028e", MODE="666", GROUP+="plugdev"

      No dice.

      The end result is always the same, reboot after reboot. I've tried looking at other conf files in /etc/udev/rules.d/to see that there are no conflicts.

      I have two identical controllers at my disposal I've tried plugging them in one at a time. Adding to that, I've tried this with FOUR identical controllers, all of which work 100% plug'n'play in Windows 7.

      The controller's analog LED light lights up for a few seconds and then shuts off.

      Here's what lsusb -v -s 001:009 shows :

      pi@retropie:~ $ lsusb -v -s 001:009
      
      Bus 001 Device 009: ID 045e:028e Microsoft Corp. Xbox360 Controller
      Couldn't open device, some information will be missing
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               2.00
        bDeviceClass          255 Vendor Specific Class
        bDeviceSubClass       255 Vendor Specific Subclass
        bDeviceProtocol       255 Vendor Specific Protocol
        bMaxPacketSize0        64
        idVendor           0x045e Microsoft Corp.
        idProduct          0x028e Xbox360 Controller
        bcdDevice            1.10
        iManufacturer           1
        iProduct                2
        iSerial                 0
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength           48
          bNumInterfaces          1
          bConfigurationValue     1
          iConfiguration          0
          bmAttributes         0x80
            (Bus Powered)
          MaxPower              500mA
          Interface Descriptor:
            bLength                 9
            bDescriptorType         4
            bInterfaceNumber        0
            bAlternateSetting       0
            bNumEndpoints           2
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceSubClass     93
            bInterfaceProtocol      1
            iInterface              0
            ** UNRECOGNIZED:  10 21 10 01 01 24 81 14 03 00 03 13 02 00 03 00
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x81  EP 1 IN
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0020  1x 32 bytes
              bInterval               4
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x02  EP 2 OUT
              bmAttributes            3
                Transfer Type            Interrupt
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0020  1x 32 bytes
              bInterval               8
      pi@retropie:~ $
      

      All help appreciated. This is especially infuriating as I already got this thing to work once with one controller, tried to get it working with two controllers of the same kind, and it all went to hell. * one huge sigh *

      Am I completely on a wrong track here if I'm thinking that perhaps the device ID should be added into the boot config file or somewhere alike as separately blacklisted or as an USB HID exception? Or, does the actual problem run deeper somewhere on the Raspbian/Linux kernel level? That's what a lot of my attempts to search further into the USB HID device issues w/ Linux altogether would suggest.

      One plausible culprit might also be that since the controller ( http://piranha-gamer.com/product/piranha-pc-ps2-ps3-controller/ ) is listed as a "PC/PS2/PS3" controller, it might auto-select its operating mode accordingly between PC and PS mode upon being plugged to an USB port. Then again, that doesn't explain how it has worked earlier from time to time (or, should I say, from RetroPie update to RetroPie update) without any problems whatsoever.

      1 Reply Last reply Reply Quote 0
      • B
        bis0n
        last edited by

        Hi Raspburger,

        I have been trying the same Piranha controller with both my PC and Ubuntu and a Raspberry Pi 3B with a full Raspbian and had exactly the same problem as you describe. I have seen in this topic that you mentioned a hotkey that could switch the controller between PS3 and XBOX modes and after a few minutes trying I found that holding "Analog" button for 5-10 seconds actually forced the controller to initialize as PS3, and it works out of the box now on both my Ubuntu and Raspberry Pi/Raspbian.

        Hope this helps.

        1 Reply Last reply Reply Quote 0
        • A
          AJenbo
          last edited by

          I have the same awful controller. It tries to detect the device that it's connected to and select mode based on that. If the system is running Windows it will switch to Xbox mode.

          I'm still not sure how exactly to switch mode, but last I got I working by holding select+analog. But I also found this on a sellers website:
          "press the "home" button for 7 seconds, you can freely switch the mode."

          Linux actually seams able to use the gamepad in all 3 modes (it also has an Android mode), but the device sometimes won't fully register before switching the mode a couple of times.

          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.