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

    Playstation 3 controller not connecting wired on new Pi4 RetroPie build

    Scheduled Pinned Locked Moved Help and Support
    ps3 controllerps3 driverps3 wired
    20 Posts 11 Posters 4.7k 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
      Maksim @doug
      last edited by

      @doug said in Playstation 3 controller not connecting wired on new Pi4 RetroPie build:

      #define SIXAXIS_REPORT_0xF2_SIZE 64
      #define SIXAXIS_REPORT_0xF5_SIZE 64

      I join the question. Where do I need to enter the cherished lines?

      b3nB 1 Reply Last reply Reply Quote 0
      • b3nB
        b3n @Maksim
        last edited by

        @maksim I believe those 2 lines should end up here.

        1 Reply Last reply Reply Quote 1
        • b3nB
          b3n
          last edited by b3n

          I've 2 type of third-party controller.
          And one has apparently the same issue on 2 different version of the Pi:

          • Raspberry Pi 3 Model B Plus Rev 1.3 - kernel 5.10.17-v7+
          • Raspberry Pi 4 Model B Rev 1.4 - kernel 5.4.83-v7l+

          One is working:

          [ 1924.940819] usb 1-1.1.2: new full-speed USB device number 18 using dwc_otg
          [ 1925.074303] usb 1-1.1.2: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 1.00
          [ 1925.074321] usb 1-1.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
          [ 1925.074332] usb 1-1.1.2: Product: PS3 GamePad
          [ 1925.074339] usb 1-1.1.2: Manufacturer: SHANWAN
          [ 1925.083996] input: SHANWAN PS3 GamePad Motion Sensors as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.0/0003:054C:0268.0009/input/input11
          [ 1925.161004] input: SHANWAN PS3 GamePad as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.0/0003:054C:0268.0009/input/input10
          [ 1925.161595] sony 0003:054C:0268.0009: input,hiddev97,hidraw2: USB HID v81.10 Joystick [SHANWAN PS3 GamePad] on usb-3f980000.usb-1.1.2/input0
          
          Bus 001 Device 018: ID 054c:0268 Sony Corp. Batoh Device / PlayStation 3 Controller
          Device Descriptor:
            bLength                18
            bDescriptorType         1
            bcdUSB               1.10
            bDeviceClass            0 
            bDeviceSubClass         0 
            bDeviceProtocol         0 
            bMaxPacketSize0        64
            idVendor           0x054c Sony Corp.
            idProduct          0x0268 Batoh Device / PlayStation 3 Controller
            bcdDevice            1.00
            iManufacturer           1 
            iProduct                2 
            iSerial                 0 
            bNumConfigurations      1
            Configuration Descriptor:
              bLength                 9
              bDescriptorType         2
              wTotalLength       0x0029
              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         3 Human Interface Device
                bInterfaceSubClass      0 
                bInterfaceProtocol      0 
                iInterface              0 
                  HID Device Descriptor:
                    bLength                 9
                    bDescriptorType        33
                    bcdHID               1.10
                    bCountryCode            0 Not supported
                    bNumDescriptors         1
                    bDescriptorType        34 Report
                    wDescriptorLength     148
                   Report Descriptors: 
                     ** UNAVAILABLE **
                Endpoint Descriptor:
                  bLength                 7
                  bDescriptorType         5
                  bEndpointAddress     0x02  EP 2 OUT
                  bmAttributes            3
                    Transfer Type            Interrupt
                    Synch Type               None
                    Usage Type               Data
                  wMaxPacketSize     0x0040  1x 64 bytes
                  bInterval               1
                Endpoint Descriptor:
                  bLength                 7
                  bDescriptorType         5
                  bEndpointAddress     0x81  EP 1 IN
                  bmAttributes            3
                    Transfer Type            Interrupt
                    Synch Type               None
                    Usage Type               Data
                  wMaxPacketSize     0x0040  1x 64 bytes
                  bInterval               1
          

          And the other not:

          [ 1473.303339] usb 1-1.1.2: new full-speed USB device number 17 using dwc_otg
          [ 1473.442361] usb 1-1.1.2: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 5.72
          [ 1473.442380] usb 1-1.1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
          [ 1473.442390] usb 1-1.1.2: Product: PS3 Controller
          [ 1473.450851] sony 0003:054C:0268.0008: failed to retrieve feature report 0xf2 with the Sixaxis MAC address
          [ 1473.451312] sony 0003:054C:0268.0008: hiddev97,hidraw2: USB HID v81.11 Joystick [PS3 Controller] on usb-3f980000.usb-1.1.2/input0
          [ 1473.451328] sony 0003:054C:0268.0008: failed to claim input
          
          Bus 001 Device 017: ID 054c:0268 Sony Corp. Batoh Device / PlayStation 3 Controller
          Device Descriptor:
            bLength                18
            bDescriptorType         1
            bcdUSB               2.00
            bDeviceClass            0 
            bDeviceSubClass         0 
            bDeviceProtocol         0 
            bMaxPacketSize0        64
            idVendor           0x054c Sony Corp.
            idProduct          0x0268 Batoh Device / PlayStation 3 Controller
            bcdDevice            5.72
            iManufacturer           0 
            iProduct                2 
            iSerial                 0 
            bNumConfigurations      1
            Configuration Descriptor:
              bLength                 9
              bDescriptorType         2
              wTotalLength       0x0029
              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         3 Human Interface Device
                bInterfaceSubClass      0 
                bInterfaceProtocol      0 
                iInterface              0 
                  HID Device Descriptor:
                    bLength                 9
                    bDescriptorType        33
                    bcdHID               1.11
                    bCountryCode            0 Not supported
                    bNumDescriptors         1
                    bDescriptorType        34 Report
                    wDescriptorLength     148
                   Report Descriptors: 
                     ** UNAVAILABLE **
                Endpoint Descriptor:
                  bLength                 7
                  bDescriptorType         5
                  bEndpointAddress     0x02  EP 2 OUT
                  bmAttributes            3
                    Transfer Type            Interrupt
                    Synch Type               None
                    Usage Type               Data
                  wMaxPacketSize     0x0040  1x 64 bytes
                  bInterval               1
                Endpoint Descriptor:
                  bLength                 7
                  bDescriptorType         5
                  bEndpointAddress     0x82  EP 2 IN
                  bmAttributes            3
                    Transfer Type            Interrupt
                    Synch Type               None
                    Usage Type               Data
                  wMaxPacketSize     0x0040  1x 64 bytes
                  bInterval               1
          

          I've no clue how to go from there, but I've noticed this diff from the USB listing:

          <   bcdUSB               1.10
          ---
          >   bcdUSB               2.00
          12,13c12,13
          <   bcdDevice            1.00
          <   iManufacturer           1 
          ---
          >   bcdDevice            5.72
          >   iManufacturer           0 
          40c40
          <           bcdHID               1.10
          ---
          >           bcdHID               1.11
          60c60
          <         bEndpointAddress     0x81  EP 1 IN
          ---
          >         bEndpointAddress     0x82  EP 2 IN
          

          I'm willing to test some patched hid_sony module, but I'll need some guidance to compile...

          1 Reply Last reply Reply Quote 1
          • b3nB
            b3n
            last edited by

            Following this document, I've managed to compile the hid-sony module with the defined values as proposed by @doug. And the related error is indeed gone.

            Here is the output I have now:

            [10679.024496] usb 2-1.1: new full-speed USB device number 10 using ehci-pci
            [10679.137551] usb 2-1.1: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 0.01
            [10679.137560] usb 2-1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
            [10679.137564] usb 2-1.1: Product: PS3 Controller
            [10679.139987] usbhid 2-1.1:1.0: can't add hid device: -32
            [10679.140029] usbhid: probe of 2-1.1:1.0 failed with error -32
            [10679.350272] usb 2-1.1: USB disconnect, device number 10
            [10679.644500] usb 2-1.1: new full-speed USB device number 11 using ehci-pci
            [10679.761543] usb 2-1.1: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 5.72
            [10679.761551] usb 2-1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
            [10679.761555] usb 2-1.1: Product: PS3 Controller
            [10679.770223] input: PS3 Controller Motion Sensors as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/0003:054C:0268.000B/input/input60
            [10679.828566] input: PS3 Controller as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/0003:054C:0268.000B/input/input59
            [10679.828908] sony 0003:054C:0268.000B: input,hiddev1,hidraw5: USB HID v81.11 Joystick [PS3 Controller] on usb-0000:00:1d.0-1.1/input0
            

            I'll upload my little contribution in Github later, in case someone else want to try.

            b3nB 1 Reply Last reply Reply Quote 1
            • b3nB
              b3n @b3n
              last edited by

              @b3n Here is the modest repo.

              M 1 Reply Last reply Reply Quote 1
              • M
                Maksim @b3n
                last edited by

                @b3n said in Playstation 3 controller not connecting wired on new Pi4 RetroPie build:

                Here is the modest repo.

                Thank you very much for your participation and your response!
                @doug wrote that the values should be
                #define SIXAXIS_REPORT_0xF2_SIZE 64
                #define SIXAXIS_REPORT_0xF5_SIZE 64
                And you write that
                #define SIXAXIS_REPORT_0xF2_SIZE 17
                #define SIXAXIS_REPORT_0xF5_SIZE 8
                What does this difference depend on?
                May I have other values that differ from both yours and @doug?

                b3nB 1 Reply Last reply Reply Quote 0
                • b3nB
                  b3n @Maksim
                  last edited by b3n

                  @maksim Sorry for the confusion: I've kept the original code in the main branch and set the ones from @doug in the devel branch.
                  It's just the way I'm used to work, most people work directly in the main branch...
                  And this particular case, I guess I should keep an uptreambranch inline with the current code from the linux kernel repo.

                  Anyway: once you've cloned the repo, you can checkout the devel branch with git checkout devel.

                  I'd like to make the change proposed by @doug a bit more 'smart' before merging it the main branch because this single change is likely breaking the use of other PS3 controller (I'll test this later).
                  We may find a way to add some logic to handle both cases...

                  In addition, if the USB part works in the devel branch, the Bluetooth is still not working...

                  1 Reply Last reply Reply Quote 0
                  • b3nB
                    b3n
                    last edited by

                    I've never worked on Linux module before, but I suspect one needs to make the hid-sony more smart about those 3rd party controller by altering the logic of sixaxis_set_operational_usb().
                    Likely to try first the original defined values (17 and 8), then the alternative (64,64) in case the first have failed!?
                    It seems to me that is already what the authors are doing by using the second report (0xF5) or even later for the SHANWAN_PAD.

                    What I miss the most in this code is some debug log (only hid_err and hid_info are used here).
                    Maybe because it is a bad idea to debug too much in such piece of code...

                    Nevertheless, I've found some other functions I'll try to use in this repo:

                    #define hid_err(hid, fmt, ...)				\
                    	dev_err(&(hid)->dev, fmt, ##__VA_ARGS__)
                    #define hid_notice(hid, fmt, ...)			\
                    	dev_notice(&(hid)->dev, fmt, ##__VA_ARGS__)
                    #define hid_warn(hid, fmt, ...)				\
                    	dev_warn(&(hid)->dev, fmt, ##__VA_ARGS__)
                    #define hid_info(hid, fmt, ...)				\
                    	dev_info(&(hid)->dev, fmt, ##__VA_ARGS__)
                    #define hid_dbg(hid, fmt, ...)				\
                    	dev_dbg(&(hid)->dev, fmt, ##__VA_ARGS__)
                    
                    1 Reply Last reply Reply Quote 0
                    • F
                      Flautert
                      last edited by

                      Hello guys

                      Anyone has a solution for this issue?

                      I've been digging a lot into internet, but couldn't make any progress :(

                      Aug 6 20:39:56 retropie kernel: [ 1261.102497] usb 1-1.3: new full-speed USB device number 9 using xhci_hcd
                      Aug 6 20:39:56 retropie kernel: [ 1261.240776] usb 1-1.3: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 5.72
                      Aug 6 20:39:56 retropie kernel: [ 1261.240796] usb 1-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
                      Aug 6 20:39:56 retropie kernel: [ 1261.240813] usb 1-1.3: Product: PS3 Controller
                      Aug 6 20:39:56 retropie kernel: [ 1261.252296] sony 0003:054C:0268.0004: hiddev96,hidraw1: USB HID v81.11 Joystick [PS3 Controller] on usb-0000:01:00.0-1.3/input0
                      Aug 6 20:39:56 retropie mtp-probe: checking bus 1, device 9: "/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3"
                      Aug 6 20:39:56 retropie mtp-probe: bus: 1, device: 9 was not an MTP device
                      Aug 6 20:39:56 retropie mtp-probe: checking bus 1, device 9: "/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3"
                      Aug 6 20:39:56 retropie mtp-probe: bus: 1, device: 9 was not an MTP device

                      Regards

                      1 Reply Last reply Reply Quote 0
                      • K
                        KanuX
                        last edited by KanuX

                        Reading the replies from @doug and @b3n, I've managed to implement the fix by giving a change to the report when the controller is connected.

                        [48361.273580] usb 1-2.4: USB disconnect, device number 25
                        [48366.681972] usb 1-2.4: new full-speed USB device number 26 using xhci_hcd
                        [48366.883070] usb 1-2.4: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 0.01
                        [48366.883092] usb 1-2.4: New USB device strings: Mfr=0, Product=2, SerialNumber=0
                        [48366.883102] usb 1-2.4: Product: PS3 Controller
                        [48366.890323] usbhid 1-2.4:1.0: can't add hid device: -32
                        [48366.890366] usbhid: probe of 1-2.4:1.0 failed with error -32
                        [48366.905149] usb 1-2.4: USB disconnect, device number 26
                        [48367.449946] usb 1-2.4: new full-speed USB device number 27 using xhci_hcd
                        [48367.643118] usb 1-2.4: New USB device found, idVendor=054c, idProduct=0268, bcdDevice= 5.72
                        [48367.643141] usb 1-2.4: New USB device strings: Mfr=0, Product=2, SerialNumber=0
                        [48367.643150] usb 1-2.4: Product: PS3 Controller
                        [48367.654388] input: PS3 Controller Motion Sensors as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.4/1-2.4:1.0/0003:054C:0268.0014/input/input47
                        [48367.706730] input: PS3 Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.4/1-2.4:1.0/0003:054C:0268.0014/input/input46
                        [48367.707515] sony 0003:054C:0268.0014: input,hiddev98,hidraw6: USB HID v81.11 Joystick [PS3 Controller] on usb-0000:00:14.0-2.4/input0
                        

                        Good: The driver works even with the latest driver available. It just change the report of the given controller, so, other controllers will remain functional.

                        Bad: The controller only works with the cable and the player's count LEDs turn on in a weird way.

                        TODO: I still want to make this driver actually doable. Any help will be very welcome.

                        GitHub: https://github.com/KanuX-14/GeneriKit

                        Edit: The original driver will be kept. It can be enabled again by deleting the line 'blacklist hid-sony' in /etc/modprobe.d/generikit.conf.

                        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.