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

    Gamepads making involuntary movements in Emulation Station

    Scheduled Pinned Locked Moved Help and Support
    gamepadcontroller
    109 Posts 42 Posters 44.6k 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.
    • ClydeC
      Clyde @Rion
      last edited by Clyde

      @rion said in Gamepads making involuntary movements in Emulation Station:

      @brunnis Why don't you test out the controller in the command line using jstest? As long as you ssh client don't disconnect you could clearly see if there are any movements at all.

      Another idea: Stream the input from /dev/js0 (or whatever js device the controller is mapped to) into a file. If the file gets bigger, ghost inputs occurred.

      cat /dev/js0 >ghosttest.txt

      edit: Alternatively, omit the >ghosttest.txt and watch the screen for funny characters to appear.

      1 Reply Last reply Reply Quote 2
      • P
        Pussyfoot
        last edited by

        I just added the capacitor and left it on Kodi settings on the skin setting. If it moves any direction, I'll know.

        1 Reply Last reply Reply Quote 0
        • P
          Pussyfoot @Rion
          last edited by

          @rion I'm trying out

          jstest --event /dev/input/js0

          in a Putty window.

          1 Reply Last reply Reply Quote 1
          • P
            Pussyfoot
            last edited by Pussyfoot

            I haven't had a chance to look at the display, but I'm getting some output from jtest:

            Event: type 2, time 397626870, number 0, value 5742
            Event: type 2, time 397626880, number 0, value 0
            Event: type 2, time 397758600, number 1, value -32767
            Event: type 2, time 397758600, number 1, value 0
            Event: type 2, time 401954150, number 0, value -5406
            Event: type 2, time 401954160, number 0, value 0
            Event: type 2, time 402109800, number 1, value 337
            Event: type 2, time 402109810, number 1, value 0
            Event: type 2, time 402480700, number 1, value 16552
            Event: type 2, time 402480710, number 1, value 0
            Event: type 2, time 403222120, number 1, value 337
            Event: type 2, time 403222130, number 1, value 0
            Event: type 2, time 403485030, number 0, value -16216
            Event: type 2, time 403485030, number 0, value 0
            Event: type 2, time 404585240, number 0, value -5406
            Event: type 2, time 404585250, number 0, value 0
            Event: type 2, time 404633300, number 1, value -16216
            Event: type 2, time 404633310, number 1, value 0
            Event: type 2, time 406905280, number 0, value 337
            Event: type 2, time 406905290, number 0, value 0
            Event: type 2, time 409262200, number 0, value -5406
            Event: type 2, time 409262210, number 0, value 0
            Event: type 2, time 410590300, number 1, value -32767
            Event: type 2, time 410590310, number 1, value 0
            Event: type 2, time 411523080, number 1, value 16552
            Event: type 2, time 411523090, number 1, value 0

            This looks like analog, yes?

            EDIT: I don't see any movement. Unless there was movement, but it ended up back in the same exact spot, I'm going to assume that so far, the controller is working.

            1 Reply Last reply Reply Quote 1
            • B
              Brunnis
              last edited by Brunnis

              Don't know why I didn't use jstest before... I'm running it now. The controller I'm running on has already been connected to the Pi for 44 hours without any button presses (that I've been able to detect in the menu, at least). I'm running jstest through SSH in Cygwin, in parallel with EmulationStation, so I'll be able to observe if any phantom presses registered by jstest show up in ES.

              @Pussyfoot It does look like you've received a couple of full presses (-32767), so I would expect those to have produced a visible effect...

              P 1 Reply Last reply Reply Quote 1
              • P
                Pussyfoot @Brunnis
                last edited by

                @brunnis I know, but the the selection in Kodi was on the same exact spot as I left it. Maybe it's true that it moved off and moved back. I still have it up, so I'll check it later today.

                jonnykeshJ 1 Reply Last reply Reply Quote 0
                • jonnykeshJ
                  jonnykesh @Pussyfoot
                  last edited by jonnykesh

                  @pussyfoot Both of those full inputs were UP presses on the D-Pad.

                  #UP
                  Event: type 2, time 12916484, number 1, value -32767
                  Event: type 2, time 12916556, number 1, value 0
                  
                  #DOWN
                  Event: type 2, time 12917476, number 1, value 32767
                  Event: type 2, time 12917580, number 1, value 0
                  
                  #LEFT
                  Event: type 2, time 12918228, number 0, value -32767
                  Event: type 2, time 12918380, number 0, value 0
                  
                  #RIGHT
                  Event: type 2, time 12919188, number 0, value 32767
                  Event: type 2, time 12919268, number 0, value 0
                  P 1 Reply Last reply Reply Quote 0
                  • P
                    Pussyfoot @jonnykesh
                    last edited by

                    @jonnykesh I just checked again after leaving it another 24 hours on the same screen. There were no movements in any direction. The addition of the missing capacitor fixed the problem for me regardless what jstest is dumping.

                    B 1 Reply Last reply Reply Quote 1
                    • B
                      Brunnis @Pussyfoot
                      last edited by

                      @pussyfoot That's good to hear!

                      I've been running jstest since yesterday (20 hours now) on the sample that originally had the most phantom presses. Still zero button presses registered.

                      P 1 Reply Last reply Reply Quote 0
                      • P
                        Pussyfoot @Brunnis
                        last edited by

                        @brunnis It's been over 48 hours without a peep. To anyone reading this thread, try the missing capacitor first.

                        RionR 1 Reply Last reply Reply Quote 1
                        • RionR
                          Rion @Pussyfoot
                          last edited by

                          @Brunnis @pussyfoot

                          I wonder what the difference will be if you use Capacitors with a tolerance level of 10% instead of 20%?

                          FBNeo rom filtering
                          Mame2003 Arcade Bezels
                          Fba Arcade Bezels
                          Fba NeoGeo Bezels

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

                            @Rion Probably none. It mainly seems that additional capacitance is needed and not an exact value.

                            @Pussyfoot I should mention that before I started modding my controllers, I tried applying a single capacitor at different places while looking for changes in the jittery d-pad movements in Windows' Game Controllers dialog. Just applying the missing cap at position C41 only had a smaller stabilizing effect. The same goes for adding the one closest to the input. It was the cap at C13 that really made a difference. It seems all my controllers are now stable (still undergoing final testing, though), but if I still had issues, the thing I'd really like to try is to increase the capacitance of capacitor C13 further. It's certainly possible that it's just the extra capacitance of the other caps that give the additional stabilizing effect, so a single 47µF cap at C13 might actually be enough.

                            1 Reply Last reply Reply Quote 1
                            • Z
                              Zigurana
                              last edited by

                              You guys have been focusing a lot on adding capacitors at specific places, but did you consider using a ferrous bead around the lead?

                              If tetris has thought me anything, it's that errors pile up and that accomplishments dissappear.

                              B 1 Reply Last reply Reply Quote 0
                              • B
                                Brunnis @Zigurana
                                last edited by

                                @zigurana I did, actually. I searched around at home and at work for one but didn't find any. When I found out that the caps made such a difference, I focused on that instead. But I would definitely have liked to try with a bead.

                                AddisonA 1 Reply Last reply Reply Quote 0
                                • AddisonA
                                  Addison @Brunnis
                                  last edited by

                                  @brunnis Heya. Quick question for you.....

                                  How many USB ports are you using on your Pi when testing this?

                                  B 1 Reply Last reply Reply Quote 0
                                  • B
                                    Brunnis @Addison
                                    last edited by

                                    @addison Just the one for the controller. Out of all the USB ports on my Dell laptop and HP screen, the Pi's is still the most likely to cause phantom presses. So USB power supply might not be where the Pi 3 excels...

                                    I guess its possible that the phantom issue could reappear once you start loading the other ports. However, if that's the case, I'd be more inclined to just conclude that the Pi 3 itself needs better USB power supply/filtering.

                                    AddisonA 1 Reply Last reply Reply Quote 1
                                    • AddisonA
                                      Addison @Brunnis
                                      last edited by

                                      @brunnis Can you test again with at least a secondary controller plugged in, perhaps a USB memory card as well, and whatever else you can think of to shove into those three other ports?

                                      I get that your solution fairs quite well.

                                      I'm just asking if it can still handle it all with other junk in the USB ports.

                                      B 2 Replies Last reply Reply Quote 0
                                      • B
                                        Brunnis @Addison
                                        last edited by

                                        @addison I won't have access to the system over the weekend, but I did already have a SanDisk Extreme 64GB high performance USB thumb drive connected for an hour or two and that didn't produce any issues. Neither did having a keyboard connected. I'll see if I can shove some more stuff into the ports on Monday.

                                        1 Reply Last reply Reply Quote 1
                                        • B
                                          Brunnis @Addison
                                          last edited by

                                          @addison I took the controller that was most unstable before the fix and connected it to my RPi3 together with a mechanical USB HDD (Western Digital 2.5"). Unfortunately, this did provoke a few phantom presses. Nothing huge; two phantom presses over four hours.

                                          I guess the conclusion is that this fix will dratically reduce the risk of phantom presses. However, the combination of a fairly unstable controller and a USB port that provides noisy power can still produce occasional phantom presses. I should point out that I'm using the official power supply for my Pi, so it's not some no-name crappy one. However, since this phantom press issue seems to be very much tied to the quality of the USB power, even just changing to another RPi board could provide different results. This also makes it tricky to verify that a fix is 100% effective.

                                          Although I would have liked for this fix to have completely eliminated the issue, I'm still glad it works as well as it does. I don't doubt that a more elaborate investigation (using an oscilloscope) could provide a better fix (probably involving adding smaller caps as well), but I won't spend any more time on it.

                                          stooS 1 Reply Last reply Reply Quote 2
                                          • stooS
                                            stoo @Brunnis
                                            last edited by

                                            Just in case anyone is wondering, this issue is not solved between board revisions on the Buffalo controllers. I have both a BSGP801GY and a BGSP815GY. The 815 has packaging that advertises Windows 10 compatibility, the 801 is an older one from the Windows 8 era. There are differences, specifically the 815 has 33Ω resistors at R11 and R12 which are unpopulated on the 801.

                                            I don't know why they added these resistors (or omitted them in the 801) but the phantom issue remains in the newer revision. Within a few minutes of plugging in the 815 I got this in jstest:

                                            Event: type 2, time 7408630, number 0, value -32767
                                            Event: type 2, time 7408640, number 0, value 0
                                            Event: type 2, time 7835420, number 1, value 16552
                                            Event: type 2, time 7835430, number 1, value 0

                                            That's a "full" left and a "half" down on the D-PAD.

                                            I may try replacing the caps to see if it makes any difference, but in my mind the Buffalo controllers simply cannot be trusted to perform correctly. I'd kinda like to know what chip they're using but I cba scraping the epoxy off to find out.

                                            1 Reply Last reply Reply Quote 1
                                            • 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.