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
    107 Posts 41 Posters 43.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.
    • B
      Brunnis @matchaman
      last edited by

      @matchaman Yup, I also have a couple of Cirka S91 USB controllers that have no such ghosting issues (despite the d-pad being detected as an analog x/y axis). Unfortunately, the Cirka is not really close to the feel of the Buffalo. The Cirka's d-pad is kind of squeaky and the a/b/x/y buttons have a nasty hollow click to them and too long travel. The Cirka is decent compared to pretty much all other SNES replicas, but compared to the Buffalo and 8bitdo it's lacking.

      I'm still looking into fixing the Buffalo, but I'm sort of fumbling in the dark without an oscilloscope. I have almost managed to stabilize the controller by replacing the two 4.7µF barrel caps with 22µF ones, but I have few stray ghost inputs left (~1 per hour, maybe less). I'm running a test now with an additional 4.7µF cap connected between the chip and the last ferrite bead. There is already one cap there, but it's a small SMD one.

      The root cause is still eluding me (why does one controller need larger caps to work than another?), but my best guess right now is that tolerances in other components and/or the microcontroller itself means the difference between stable and unstable operation. The solder job is not exactly stellar, but at least it seems all components make contact with their pads.

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

        Okay, so something strange happened last night.

        I watched a three hour movie in Kodi with my iBuffalo controller still plugged in the whole time.

        It was about an 8 GB ripped DVD movie that I have stored on my computer, so I was streaming this film.

        During the entire movie, there wasn't one single phantom signal that either did a fast forward or a rewind while watching it.

        Normally, that would occur about once every 5 to 10 minutes or so.

        So for three straight hours, something must be different.

        I thought for a moment, and the only thing that I changed was I removed a 32 GB micro SDHC card from the Pi earlier.

        Usually, I always have that in one of the USB ports.

        Could using more than just one USB port at a time be a cause for these ghost signals?

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

          Okay, so below is my attempt at fixing the phantom input (ghosting) on the iBuffalo/Buffalo SNES replica controllers. I've let RetroPie sit in the ES menu since yesterday (16 hours) and the menu selection is still where I left it. It's of course possible that it has moved away and then back to the starting position between checks, but I have checked the screen pretty frequently during these 16 hours and haven't seen any changes.

          Please note: YMMV. This phantom input issue probably varies in severity between controllers. My controller was pretty severe and it now seems to be fixed, but there's still no guarantee that it will remove all phantom inputs on all controllers.

          The fix consists of replacing the two 4.7µF through-hole mounted electrolytic capacitors that are visible from the PCB back side with 22µF ones. I've also added an extra 10µF electrolytic capacitor close to the microcontroller input. I've used the following caps:

          Nichicon UMA1C220MDD1TP (22µF, 16V)
          Nichicon UMA1C100MDD1TP (10µF, 16V)

          The photos below show the three caps installed on the PCB:

          0_1511797081731_Buffalo SNES ghosting fix back.jpg

          0_1511797090889_Buffalo SNES ghosting fix front.jpg

          Please note: It's possible that other cap values or setups (for example omitting the extra cap that was added and beefing up the other one) would work. I didn't have time to go crazy with the details/testing. This is what worked for me and probably will for you as well, but feel free to experiment.

          It would be great to hear back from anyone else who tries this. If the procedure looks daunting, I'd just start with adding a 22µF cap in parallel with the left one in the first photo above (the one marked C13). That way, you don't have to remove the old cap and it's possible that this is enough to fix the issue on your particular controller.

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

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

            Could using more than just one USB port at a time be a cause for these ghost signals?

            Yes, that's certainly possible. The issue seems to be caused by the controller's inability to suppress noise on the voltage supply line. Adding more USB peripherals could affect the noise level on the supply line, therefore changing the behavior.

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

              @brunnis The USB adapter thingy that I use with the SDHC card has a red light indicator.

              When in use, it stays red, when sending or receiving data, it begins to flash the red light off and on.

              I'm guessing that this might possibly cause some instability with my Pi.

              I was really happy though when it finally went three plus hours without a single improper input signal.

              That had never happened before until yesterday.

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

                @brunnis Excellent work! Here's a tip for anyone else attempting this: Instead of desoldering the original capacitors, cut the heads off at the top of the capacitors so the existing leads remain. Trim the leads to the new capacitors and solder the new cap's leads to the existing ones poking out of the board. I suggest taking a picture of the board with the original capacitors BEFORE you start. Why? You may forget how the polarity went. Electrolytic capacitors have a positive and negative side.

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

                  @Pussyfoot Thanks!

                  Please see further updates in my Reddit post: https://www.reddit.com/r/emulation/comments/7g2d0n/howto_fix_phantomghost_input_on_ibuffalobuffalo/

                  P 1 Reply Last reply Reply Quote 0
                  • ClydeC
                    Clyde @megafacehead
                    last edited by

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

                    To get around the problem i've been using the mayflash wii u pro controller wireless dongle.Google it.Simply sync your pro controller to the dongle, then the dongle tells the pi the wii u pro controller is actually a wireless xbox 360 controller and is detected as such in es when assigning buttons and i can say with 100% certainty there is no ghost input while using this adaptor.

                    Thanks for the hint. I already owned the Mayflash Wii U Pro adapter, but used it only with my PC that has no bluetooth itself. I never tried it with my Raspi.
                    The adapter seems to have fixed the ghost inputs from my two Qumox Wii U Pro controllers. I'll have to test them for longer periods to tell for sure, but first tests look promising.

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

                      @brunnis I just did mine tonight and am testing it out. I take back the tip I said. there's not enough leads to do my trick. Just desolder it and solder the new one in. Also the polarity is printed on the board, which is nice. Make sure you leave enough leads to bend it down after you solder it. In fact, bend it BEFORE you solder it.

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

                        @pussyfoot Great to hear! Looking forward to hearing about your results.

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

                          @brunnis I didn't do the 10uF capacitor. Just the two 22uF ones. I left it on overnight and Emulation Station is exactly where I left it.

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

                            Nice! What was the average frequency of phantom presses before the mod?

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

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

                              Nice! What was the average frequency of phantom presses before the mod?

                              It wasn't too bad. I noticed it when watching a movie through Kodi. The movie would stop all of a sudden. I didn't notice it in Emulation Station for a while. Probably since only left-right motions would be picked up.

                              I saw a spurious left move got triggered this morning since the menu option changed. I put in the 10uF capacitor now and I'm going to keep testing. I went into Kodi's settings and put it in the middle of the options page. That way I can tell if a move up/down/left/right was triggered.

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

                                Okay, I just noticed an up movement. I wouldn't have detected that had I not been in kodi. I still get movements even with all the capacitors.

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

                                  @pussyfoot I noticed a similar thing now as well. I was testing the most unstable of my controllers after having applied the fix. I had actually run a 16 hour test on this one before, but I thought I’d do a 24 hour one like I’m doing on the others. Turns out it still seems to generate a phantom press on average every 8 hours or so. It’s an enormous improvement compared to before the fix (phantom presses every few minutes), but obviously a bummer that it doesn’t completely fix all controllers. It does seem to completely have fixed another one of my more stable controllers, though.

                                  I took apart this controller again tonight and installed the missing cap at the input and also resoldered all components in the power supply path. Running a new test over the weekend. If that doesn’t completely solve the issue, I will just use the controllers anyway. A phantom press every 8 hours isn’t much of an issue.

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

                                    Good news! As I wrote in my last post, I made another attempt at fully stabilizing this controller: I populated the position marked as C41 with a 22µF cap. This position is unpopulated out of the box (which is because the manufacturer has deemed it unnecessary).

                                    I also resoldered the SMD components in the power supply path (both 5V and 2.5V) by quickly dipping the soldering iron on each side of the components, melting the solder. This has to be done very quickly, or you risk damaging the component or desoldering it completely.

                                    The result: I left RetroPie sitting in the ES menu on Friday afternoon and when I came back today it was still in the same place. That's 69 hours without any phantom presses! Well, I guess there's a very minute risk of it having moved and gone back to the same place, but it's significantly more likely that it just hasn't moved.

                                    So, for anyone still having issues after applying the fix in the original post, I'd suggest first adding the 22µF cap at position C41. If that doesn't work, perform the mentioned resolder.

                                    EDIT: I'll be back with final test results of all controllers later this week.

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

                                      @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.

                                      By the way great job finding out what seems to be the root of the problem!

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

                                      ClydeC P 2 Replies Last reply Reply Quote 0
                                      • 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
                                            • 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.