Gamepads making involuntary movements in Emulation Station
-
@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.
-
@brunnis It's been over 48 hours without a peep. To anyone reading this thread, try the missing capacitor first.
-
I wonder what the difference will be if you use Capacitors with a tolerance level of 10% instead of 20%?
-
@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.
-
You guys have been focusing a lot on adding capacitors at specific places, but did you consider using a ferrous bead around the lead?
-
@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.
-
@brunnis Heya. Quick question for you.....
How many USB ports are you using on your Pi when testing this?
-
@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.
-
@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.
-
@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.
-
@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.
-
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 0That'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.
-
Interestingly, the hardware ID of the Buffalo controller is HID\VID_0583&PID_2060&REV_0100.
VendorID 0x583 is a company called Rockfire, which leads us to...
https://rockfire.com.tw/en/products/pc-gameing/gamepad/51-qf-109u-mjolnir.html
So the controller is a rebadge of a Taiwanese controller, which is hardly a surprise.
-
@stoo So, are the older ones just rebranded Rockfire or is this a recent thing? I can't check mine as it died a few months ago.
-
@jonnykesh Both the iBuffalo 801 and the Buffalo 815 have identical hardware IDs. It's almost certainly the same chip in both of them. I'm guessing Buffalo saw a gap in the Japanese market, went out and found an existing manufacturer who made SNES-type controllers of good-enough quality and said "Just put Buffalo on these and we'll sell them under our brand".
-
@stoo Mine was an 801 (BSGP801). Honestly I have never seen the Rockfire for sale in Europe. I checked my local Amazon and they aren't there. Someone is missing a trick and a lot of money. These things went from a tenner up to £20 on Amazon as RetroPie became more and more popular. They probably cost about a dollar a piece to put together.
-
Yeah, they're probably only sold in Asia. You can buy them on Taobao (Chinese eBay type site):
https://item.taobao.com/item.htm?spm=a312a.7700824.w4004-9946732977.8.1834c87dZ8KMVO&id=548548202517
79.80 Chinese Yuan equals £8.79 according to Google which is still expensive for this type of controller. I mean, look at the crap on eBay - you can pick up TWO completely useless, no-brand SNES-type controllers for less than £6.
It's just a shame that the Rockfire/Buffalo controllers have this flaw. Even with this flaw they're among the best of a (very) bad bunch!
-
@stoo They are great (with flaws). I loved mine, was going to replace it until I saw the prices they are going for at the minute. I'm not a tight-ass, but they just aren't worth the price being asked right now, and I'm not a fool. Other options are available!
I think iBuffalo just marketed them really well. I still have the box mine came in because I thought it was kinda cool and high quality packaging. -
Did a little more digging...
Out of interest, I git cloned evhz (https://gitlab.com/iankelling/evhz) to my RPi3 and ran it with the Buffalo controller connected. This is what appeared over the course of around 15 seconds (I couldn't figure out how to make evhz add timestamps). I was not touching the controller at all during this time:
event0: USB,2-axis 8-button gamepad USB,2-axis 8-button gamepad : Latest 125Hz, Average 0Hz USB,2-axis 8-button gamepad : Latest 1Hz, Average 62Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 42Hz USB,2-axis 8-button gamepad : Latest 1Hz, Average 62Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 50Hz USB,2-axis 8-button gamepad : Latest 3Hz, Average 62Hz USB,2-axis 8-button gamepad : Latest 62Hz, Average 54Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 55Hz USB,2-axis 8-button gamepad : Latest 1Hz, Average 63Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 56Hz USB,2-axis 8-button gamepad : Latest 1Hz, Average 63Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 57Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 63Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 67Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 71Hz USB,2-axis 8-button gamepad : Latest 11Hz, Average 74Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 70Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 73Hz USB,2-axis 8-button gamepad : Latest 6Hz, Average 76Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 73Hz USB,2-axis 8-button gamepad : Latest 1Hz, Average 75Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 72Hz USB,2-axis 8-button gamepad : Latest 1Hz, Average 74Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 71Hz USB,2-axis 8-button gamepad : Latest 1Hz, Average 73Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 70Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 72Hz USB,2-axis 8-button gamepad : Latest 2Hz, Average 74Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 72Hz USB,2-axis 8-button gamepad : Latest 6Hz, Average 73Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 71Hz USB,2-axis 8-button gamepad : Latest 1Hz, Average 73Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 71Hz USB,2-axis 8-button gamepad : Latest 3Hz, Average 72Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 70Hz USB,2-axis 8-button gamepad : Latest 1Hz, Average 72Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 70Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 71Hz USB,2-axis 8-button gamepad : Latest 4Hz, Average 73Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 71Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 72Hz USB,2-axis 8-button gamepad : Latest 3Hz, Average 73Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 72Hz USB,2-axis 8-button gamepad : Latest 4Hz, Average 73Hz USB,2-axis 8-button gamepad : Latest 125Hz, Average 71Hz
None of my other controllers spam the USB interface like this. My Wired 360 controller sits quietly until I actually make an input. Same for my crappy iNNEXT controllers. Only the Buffalo controllers seem to do this.
I don't have enough knowledge of electronics to know what this means so I'm probably not going to investigate further. :P
-
@stoo Thanks for testing. Such crappy pieces of hardware, these Buffalo controllers. Although mine seem stable now, after some pretty long testing, I actually only use them as backups now. I replaced them with SNES Classic controllers + Raphnet low-latency USB adapters. Awesome quality and feel, no ghost input and extremely low latency (~1 ms total from pressing a button until the system has read the value). Downside? It's kind of an expensive solution... :-P
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.