USB Controller "Hitches" When Playing Games
-
Pi Model or other hardware: Pi 4 B 8 gb
Power Supply used: 5v 2A usb power adapter + usb to usb c cable
RetroPie Version Used: 4.7.15
USB Devices connected: rockcandy xbox 360 controller, xbox one controllerI use the word hitch because I am at a lack for better words. This issue happens with xbox controllers using xpad or xboxdrv drivers(tried separately), and I also have dualshock 2 controllers with adapters that use the ps3controller drivers which also have this same problem.
When playing a game, at seemingly random times, the controllers will freeze, and the input that the controllers had will stick for a second or two. I monitored jstest through an ssh, and played until this occurred, and the exact values for the controllers are held until the hitch finishes. Any new inputs aren't registered at all, even from a connected keyboard.
It doesn't seem to be a power issue, because at no time have I ever seen the low power warning displayed on the screen, and I made sure to check every time the controllers have hitched
When the hitch occurs, all controllers are locked in their input at the same time, and they return to normal at the same time. Additionally, the game that is being run does not have any performance loss at all. It also seems that the more I have plugged into the usb slots, the more often this hitch happens. -
Hi @Fiddla01 thanks for providing the system information right away and welcome to RetroPie forum. :-)
I would not cross out the power supply too early.
With your power supply you run below the recommended spec for powering a Rpi4. See table at [1]Maybe you can test one of these options and see/report back if it solves your issue:
- If you can find/lend a USB-C power supply (e.g. from a Mac or PC-Laptop) use it and test if the issue persists.
- If you have an powered USB3-Hub (or can lend one), attach it to the pie and power it, attach all USB devices to it you need in minumum. See if it remediates the reported effect while using your current power supply.
If any of these two tests solve your issue, it is a strong indicator you need a more beefy power supply. Easiest and safest bet is to use the official Raspberry Pi4 power supply.
Hope this helps.
[1] https://technologisttips.com/what-the-lightning-bolt-symbol-means-on-a-raspberry-pi/
-
@lolonois Thanks for the advice. Unfortunately I don't have a 3A power supply anywhere handy, or a USB3 hub. I do need to get a new dedicated power supply for this pi eventually, so I went ahead and ordered a proper 5v 3A power supply, and I'll test it tomorrow.
Thanks for the resource too! I hadn't realized this whole time that the pi 4 was specified for a 3 amp power supply (I am more use to using the pi 2). I'm glad that I learned about this before buying a 2A power supply for the thing.
-
*UPDATE *: My new power supply came in this evening, and I was finally able to test it out. The power supply was not the problem, and nothing has changed. The new power supply is 5v 3A, and the controllers freeze just like they did before. Just like before, it seems to happen more often when more controllers are plugged in. With only one controller plugged in, I couldn't manage to make the hitch occur once.
In terms of controller stuff, the only other things that I can think of would be that I have joystick-selection installed (I have tried uninstalling it, and the problem persists). I installed cwiid for wiimote use, but I don't connect any wiimotes when playing (and I disabled the command to look for them anyway). And I don't know if this is unusual or not, but in the retroarch menu setting>input There are 5 ports visible (port 1 controls, port 2 controls, etc). That's all I can think of that effects controllers though.
If anyone has any idea what is going on, I'm willing to try any sort of fix, as I plan to use this machine for multiplayer/competitive games, and this problem makes many games un-fun.
-
@fiddla01 said in USB Controller "Hitches" When Playing Games:
With only one controller plugged in, I couldn't manage to make the hitch occur once.
this sounds like a powered USB hub might help. ie, one that has its own AC adapter. i can't think of another reason why plugging more controllers in would exacerbate the issue.
-
@dankcushions I don't think the issue is power related, since the pi isn't giving me any warnings about power, and because I am now giving it 3A. My best guess is that its a software based problem, probably related to retroarch's method of assigning usb devices to controllers. The problem is that I can't think of any way of diagnosing the problem.
I could try a powered USB hub if I find one for cheap, but I want to try and avoid that because I have already gone over my budget for this pet project of mine.
-
@fiddla01
I honestly don't know if this situation applies but your post reminded me of something I had read about usb polling in
THIS thread
" (add usbhid.jspoll=1 at end of line in /boot/cmdline.txt in Raspbian)" - it's easy to try and easy to reverse if it doesn't help
*copied the following from stack exchange - might be useful??
With the command:/opt/vc/bin/vcgencmd get_throttled
If the answer is:throttled=0x0
You're good with the supplied voltage and SoC temperature.The bits on the returned number mean:
Bit Hex value Meaning
0 1 Under-voltage detected
1 2 Arm frequency capped
2 4 Currently throttled
3 8 Soft temperature limit active
16 10000 Under-voltage has occurred
17 20000 Arm frequency capping has occurred
18 40000 Throttling has occurred
19 80000 Soft temperature limit has occurred
A value of 0x50000 means 16 & 18 -- from the boot moment up to now Under-Voltage has ocurred at some point as well as Throttling has occured. -
@fiddla01 notwithstanding @Lister-of-Smeg ’s suggestion (which could be the fix), i don’t believe usb power issues would be indicated by the lighting symbol, since that is showing power shortage to the CPU, not USB, nor would it necessarily be fixed by better PSU, because pi USB power output is capped and not improved by better PSU.
however my experience is with the pi2/3, where powered hubs were near-mandatory for multiple USB devices. i have not needed one for my pi4, so far.
-
@Lister-of-Smeg Thanks for the resources. Unfortunately, increasing the polling rate for usb didn't make a difference with the problem. Additionally, I ran /opt/vc/bin/vcgencmd get_throttled and at no time (even when the problem was happening at that same time) were there any throttling issues.
I think @dankcushions may be correct that the USB power output simply isn't enough, and a powered usb hub might be the only option. The USB power output stays the same unless I wanted to take a soldering iron to the pcb itself, which I am certainly not willing to do. -
@fiddla01 * UPDATE * I have bought a powered USB hub, and the problem still persists. I bought "Plugable 4 Port Hub with Battery Charging 1.1 Support" (USB2-HUB4BC), which had its own 5V 2.5A power supply. The problem appeared to happen a little less often, but I am testing these by myself so the testing wasn't incredibly extensive. The problem still scales with the amount of controllers used, and all controllers are being plugged into the powered USB hub.
I can nearly conclusively say that the problem is not a power draw issue, as I have ensured that not only the pi has its recommended amount of power, but the USB power draw is also minimal.
If anyone has ideas as to why this problem is occurring, I am still willing to try anything to make the issue go away
-
@fiddla01
do you have a spare sd card that you could flash a fresh image to (just a minimal install for testing with a few games)
could one of the gamepads be to blame?
one other thing to note - dirt/grease/corrosion on usb contacts would increase current draw. A quick clean with some alcohol isn't going to hurt (worth giving the contacts on the sd card a wipe too)
Have a look at '5 usb not working' on this link https://circuitdigest.com/article/top-10-common-issues-while-using-raspberry-pi -
Do you have the sound output to 3.5 jack or Hdmi?
If you have 3.5 jack then try hdmi ,the problem will solved. -
This post is deleted! -
@kounabi22 I think you found the cause of the problem! I actually don't just have the sound output to the 3.5 jack, I am using it as component video output, utilizing a component to rca adapter cable. I plan to have this pi connected to a crt, so this is necessary. In more detail, in /boot/config.txt I have sdtv_mode=0 and enable_tvout=1 uncommented.
I tested to see if switching back to hdmi video and audio would work, and sure enough I could not replicate the problem in the worst conditions. When I have video/audio output through the 3.5mm jack, the audio outputs don't make a difference; the audio and video come out of the component cable all the same, and the problem still persists.
If you know why having sound and/or video output through the 3.5mm jack causes this problem, please let me know. Once again, I consider component output a necessity for my project, so If there's a way to use the 3.5mm jack as well as ensure the usb does not freeze occasionally I will do it.
For those of you that are going to suggest an HDMI to component converter, I know it'll work, but ideally I want to use an output straight from the pi, and also I don't want to spend any more money than I already have.
Thanks kounabi22 for knowing about that problem!
-
Pi Model Pi 4 B 8 gb
Case: ExperimentalPi Piboy DMG
Power Supply used: 5v 2A usb power adapter + usb to usb c cable
RetroPie Version Used: 4.7.1
USB Devices connected: microsoft xbox 360 controller (wireless)@fiddla01
I have got the same problem.
Had no Problems with the Retropie IMG 4.7.1 but after I autoupdates all packages, i got the problem.
I reinstall retroarch... does not help
I reset the controls in Emulationstation, does not help
I installed und reinstalled Xdriv and xboxdrv, does not help.
without any driver.... does not help.
But it is, like you wrote, hickups in controls. Like the gamepad is freezing for some seconds.
I don'nt know where the problem is, but when I take a fresh image without any Updates, everything works fines.
Must be an "error" in one part of softwareupdate. -
when i connect the Piboy via HDMI to the TV and not using the screen, the control problems are away.
<Do you have the sound output to 3.5 jack or Hdmi?
If you have 3.5 jack then try hdmi ,the problem will solved.> from kounabi22like you sad....think the audio changes when you put in the hmdi cabel...
There is no way to use 3.5 jack without this Problems or?
-
@kanz1a It's encouraging to hear that it worked on an older image, which means it is most likely a fixable driver or software bug, rather than a hardware oversight.
I have investigated just about everything related to usb, and controller drivers that I could find, and nothing seems to fix the problem except for diverting all signals away from the 3.5mm jack. I hope there is some solution, and if not I hope a hotfix/patch is possible in the future.
-
Late reply, but confirming...
I wanted and did the same thing with the same result. I switched back to HDMI to composite video and audio converter and the system works well, again.
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.