How to fix disconnects of Xbox 360 Controller on Windows
tl;dr: disabling vibrations
The Xbox 360 Controller is still a good way to enjoy games. I’ve been using mine since I owned a Xbox 360. It works great for PC games as well. I have been using the play & charge cable and the Microsoft wireless adapter to play games on my Windows computer.
Unfortunately, I’ve had some problems where the controller would seemingly randomly disconnect for a few seconds. As you can imagine this can be quite annoying if playing games which require fast reaction times. I could not see a pattern as I played a couple of games without issues.
Recently, I hit a point where this frustrated me enough to stop trying to ignore this. I’m a software engineer by profession so I can’t let these things slide so easily. In my daily job I often have to debug issues, trying to find the root cause. Here’s a quote I strongly resonate with when it comes to debugging issues:
“Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth.” — Arthur Conan Doyle
Finding the root cause
My debugging process looked something like this:
- Does the controller itself not work reliably (e.g. battery, cable)? ❌
- Does it seem to happen in all games? ❌
- Does it happen when I don’t do anything? ❌
- Does it happen with all actions? ❌
- Does it happen when I do a specific action? ✅ Sometimes!
Now that I could reliably reproduce I began searching on the internet. Fortunately, I discovered an old forum post where one user suggested to turn off the controller vibration. The reason suggested by this user: vibrations could cause the controller to loosen the connection between the controller and the cable which is plugged in the PC. Sounds weird at first (vibrations are usually enabled by default) but it does not sound impossible — why not give it a try?
Turns out that the controller vibration was the culprit in my case! A game I am currently playing had three different vibration modes: normal, light and none. I switched from normal to light and the problem has not occurred anymore at all.
I love it when developers (software and games) provide options to improve the UX and accessibility. Too many options and customizations can be a burden as well as you as a developer need to account for a lot of cases. But if some can be life-savers for a few people then it is probably worth to include such options.
Conclusion
Thanks for reading this short blog post. This is a bit unusual topic as I typically only write about software engineering related topics. Even though I used the Xbox 360 controller this could also apply to other wired game controllers. I hope this was helpful to a few of you. Let me know in the comments.