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

    Issue configuring PowerA Fusion wired XBox One controller

    Scheduled Pinned Locked Moved Help and Support
    controller confxbox oneemulationstatio
    44 Posts 8 Posters 9.3k 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.
    • simonsterS
      simonster
      last edited by

      Pi Model or other hardware: Pi3B+
      Power Supply used: (If using a Pi): Raspberry Pi Official 2.5Amp 5.2Volt PSU
      RetroPie Version Used (eg 3.6, 3.8.1, 4.1 - do not write latest): 4.4.1 (917e7ab5)
      Built From: (Pre made SD Image on RetroPie website, Berryboot, or on top of existing OS etc.. - please provide the filename of any image used): RetroPie 4.4 from the website
      Controller used: PowerA Fusion USB XBox One wired controller (x 2)

      I have been using these PowerA Fusion controllers for a while without issue, but I thought I'd start again from scratch on a new SD card and play around with my setup.

      I went through the usual process of setting up Retropie and updating the scripts, applications and kernel packages through Retropie Setup.

      When I configured the controller in EmulationStation, I kept having issues with the left/right triggers. It would register the left then after a few seconds skip the right trigger, then continue as usual.

      Not being at all new to this I started playing around and realised that the way the triggers are being handled has changed. I ran a JStest against the pad and found that where they used to be a single shared axis where the left trigger was -32767 at its fullest extent and the right trigger 32767 with 0 being when both triggers were off, they now have individual axes so Axis 2 is the left trigger and starts at -32767 and goes to 32767 when fully pressed, Axis 5 is the same for the right trigger.

      I believe this is somehow confusing the calibration in ES as the trigger passes the 0 point in both directions and therefore it thinks that something is being held down to skip the configuration of the second trigger.

      So, I suppose what I'm asking is can I change the range of the triggers to report 0 to 32767 or is there a way to get ES to allow me to configure the controller?

      Thanks for any help

      Si

      1 Reply Last reply Reply Quote 0
      • simonsterS
        simonster
        last edited by

        I've just been searching the forums and realised this sounds the same as https://retropie.org.uk/forum/topic/18356/xbox-one-controller-triggers-not-working-during-configuration

        Has there been a change to the way Xbox controller triggers are handled?

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

          @simonster There's been a recent change in the - upstream - xpad driver, mabybe that's causing the wonkiness. Have updated the xpad driver from source, during your updates ?

          simonsterS 1 Reply Last reply Reply Quote 0
          • simonsterS
            simonster @mitu
            last edited by

            @mitu

            I haven't installed any drivers at all on this image, it is with whatever is stock on the RP4.4 image.

            1 Reply Last reply Reply Quote 0
            • ?
              A Former User
              last edited by A Former User

              I'm having a similar issue here. I have updated the Retropie-Setup script, then updated xpad from source, but it's still not working.

              Edit: oh whoops, you already linked my issue.

              Edit 2: I also setup a RetroPie on my friend's RPi with wired Xbox 360 controllers, and the triggers setup just fine. I didn't update the xpad driver, so either the updated xpad driver doesn't work (which isn't likely since @simonster is having the issue with a fresh copy of 4.4 or (more likely) Xbox One controllers, uniquely, are mapped with positive/negative trigger values in both xpad and xboxdrv.

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

                Since neither of you updated to the latest xpad, I'd say it's unlikely this is causing the trouble. One thing though, if you update the kernel, this will overwrite the xpad driver distributed by RetroPie.
                So @simonster , can you try updating the xpad driver from source - from the RetroPie-Setup menu ?

                simonsterS 1 Reply Last reply Reply Quote 0
                • simonsterS
                  simonster @mitu
                  last edited by

                  @mitu said in Issue configuring PowerA Fusion wired XBox One controller:

                  So @simonster , can you try updating the xpad driver from source - from the RetroPie-Setup menu ?

                  Hi @mitu

                  Just updated this from source, but no joy I'm afraid (after a reboot).

                  Just in case I hadn't made it clear from my description, below is the output from jstest when I press each shoulder trigger.

                  0_1530044844388_jstest.png

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

                    @simonster Normally, the xpad driver should take of this with the triggers_to_buttons driver option [1]. The behavior you're seeing is the opposite, if I'm not mistaken. The xpad package automatically adds this option to the driver. You can check the option is configured by default by checking /etc/modprobe.d/xpad.conf, it should have a line with

                    options xpad triggers_to_buttons=1 
                    

                    Can you run dmesg | tail right after plugging in the controller and post the output ?

                    [1] https://www.spinics.net/lists/linux-input/msg00820.html

                    1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User
                      last edited by

                      This is what I get immediately after I plug in the controller.

                      [   37.991519] usb 1-1.5: new full-speed USB device number 4 using dwc_otg
                      [   38.125060] usb 1-1.5: New USB device found, idVendor=045e, idProduct=02ea
                      [   38.125075] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
                      [   38.125084] usb 1-1.5: Product: Controller
                      [   38.125093] usb 1-1.5: Manufacturer: Microsoft
                      [   38.125102] usb 1-1.5: SerialNumber: 3032363030323737353233373435
                      [   38.178909] input: Microsoft X-Box One S pad as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/input/input2
                      [   38.179907] usbcore: registered new interface driver xpad
                      [   40.820164] random: crng init done
                      [   43.671563] Voltage normalised (0x00000000)
                      
                      mituM 1 Reply Last reply Reply Quote 0
                      • mituM
                        mitu Global Moderator @A Former User
                        last edited by mitu

                        @aditkrator Do you get the same behaviour as @simonster when testing the buttons with jstest ?

                        ? 1 Reply Last reply Reply Quote 0
                        • simonsterS
                          simonster
                          last edited by

                          It doesn't look like my controller is using xpad at all:

                          [ 1401.392278] usb 1-1.1.2: New USB device found, idVendor=24c6, idProduct=561a
                          [ 1401.392292] usb 1-1.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
                          [ 1401.392300] usb 1-1.1.2: Product: Controller
                          [ 1401.392309] usb 1-1.1.2: Manufacturer: PowerA
                          [ 1401.392317] usb 1-1.1.2: SerialNumber: 0000BE512D3F0D75
                          [ 1401.393476] input: PowerA FUSION Controller as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.0/input/input2
                          
                          simonsterS 1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User @mitu
                            last edited by

                            @mitu

                            Yes, my axis 2 still ranges from -32767 when released to 32767 when pressed and same with axis 5.

                            mituM 1 Reply Last reply Reply Quote 0
                            • simonsterS
                              simonster @simonster
                              last edited by

                              I'm going to try rewriting the original image to the card and check before I update the RetroPie script or any of the modules.

                              1 Reply Last reply Reply Quote 0
                              • mituM
                                mitu Global Moderator @A Former User
                                last edited by

                                @aditkrator FWIW, I get the a similar behavior when running jstest and disabling the triggers_to_buttons option. With this option on (which should be the default), the triggers register as buttons (on/off).
                                Can you check if /etc/modprobe.d/xpad.conf exists and has the line I mentioned a couple of posts ago ?

                                simonsterS ? 3 Replies Last reply Reply Quote 0
                                • simonsterS
                                  simonster @mitu
                                  last edited by simonster

                                  @mitu

                                  I can confirm mine was set with triggers to buttons. But as I said above, it doesn't look like my controller uses xpad at all.

                                  1 Reply Last reply Reply Quote 0
                                  • ?
                                    A Former User @mitu
                                    last edited by

                                    @mitu Mine also has options xpad triggers_to_buttons=1.

                                    1 Reply Last reply Reply Quote 0
                                    • simonsterS
                                      simonster
                                      last edited by

                                      I can confirm that after reimaging the card, the triggers show up as buttons, but dmesg | tail still doesn't suggest xpad is involved.

                                      I'm going to try updating the RetroPie packages (without the kernel updates) and see if it still works.

                                      1 Reply Last reply Reply Quote 0
                                      • ?
                                        A Former User
                                        last edited by A Former User

                                        I'm also going to try to reflash the SD card and run dmesg | tail and jstest to see if this issue persists.

                                        Edit 1: Here are the results of dmesg | tail

                                        [   32.995080] usb 1-1.5: New USB device found, idVendor=045e, idProduct=02ea
                                        [   32.995094] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
                                        [   32.995105] usb 1-1.5: Product: Controller
                                        [   32.995113] usb 1-1.5: Manufacturer: Microsoft
                                        [   32.995124] usb 1-1.5: SerialNumber: 3032363030323737353233373435
                                        [   33.043410] xpad: loading out-of-tree module taints kernel.
                                        [   33.043422] xpad: loading out-of-tree module taints kernel.
                                        [   33.046448] input: Microsoft X-Box One S pad as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/input/input0
                                        [   33.046920] usbcore: registered new interface driver xpad
                                        [   33.271690] Under-voltage detected! (0x00050005)
                                        

                                        Edit 2: I can confirm jstest now treats the triggers as buttons. I also think I may have misspoken in an earlier message:

                                        @aditkrator said in Issue configuring PowerA Fusion wired XBox One controller:

                                        Edit 2: I also setup a RetroPie on my friend's RPi with wired Xbox 360 controllers, and the triggers setup just fine. I didn't update the xpad driver, so either the updated xpad driver doesn't work (which isn't likely since @simonster is having the issue with a fresh copy of 4.4 or (more likely) Xbox One controllers, uniquely, are mapped with positive/negative trigger values in both xpad and xboxdrv.

                                        I actually did update xpad -- I honestly was too tired writing that.

                                        1 Reply Last reply Reply Quote 0
                                        • simonsterS
                                          simonster @mitu
                                          last edited by simonster

                                          @mitu

                                          So, after writing RP4.4 image to SD card and starting it, the pad worked correctly (triggers as buttons), but after updating RetroPie Setup Script and running update installed modules (and selecting not to update OS packages) and rebooting, the controller now has the 2 additional axis listed.

                                          I did eventually find that it is using xpad. Because I'd already had the device plugged in before trying it, it wasn't listing the driver in dmesg | tail. The option is still set in /etc/modprobed/xpad.conf so it must be an issue with the xpad driver in use? The install script stated it was installing version 0.4

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

                                            @simonster said in Issue configuring PowerA Fusion wired XBox One controller:

                                            The install script stated it was installing version 0.4

                                            I think it's the same version set there for a long time, I'm not sure if it's relevant. So the updated driver has some new unwanted features.

                                            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.