ndeadly / MissionControl

Use controllers from other consoles natively on your Nintendo Switch via Bluetooth. No dongles or other external hardware neccessary.
GNU General Public License v2.0
2.56k stars 141 forks source link

[Bug Report]: Getting weird connectivity with Xbox Elite 2 #494

Closed mattminew closed 2 years ago

mattminew commented 2 years ago

Switch Firmware Version

14.1.1 (Latest)

Atmosphère Version

1.3.2 (Latest)

Mission Control Version

0.7.0 (Latest)

Boot Method

Fusée

Issue Description

I can only connect the Elite 2 controller to my switch by pairing it through change grip/order menu each time, as in it doesn't auto connect after pairing. My controller is downgraded to the correct firmware.

I have a DS4 controller that behaves correctly as well so I'm not too sure what the issue is. Is anyone else getting this issue? Couldn't find much about this problem.

Thanks!

Error Report

No response

Additional Context

No response

ndeadly commented 2 years ago

That's strange. Never heard of anything like this happening before. Have you had it working previously on prior firmware versions to this?

Without knowing too much about what's actually going on, it sounds almost like the controller is successfully pairing but not being stored into the pairing database that the console uses to authenticate with previously paired devices. Try running my btdb tool to see if the controller shows up in the database. It could also be worth clearing this database and re-pairing the controller in case something funky has happened to it.

mattminew commented 2 years ago

It's actually been going on for a while, even after a hard reset and reapplying atmosphere. Running btdb actually crashes my switch so that might be related.

ndeadly commented 2 years ago

Running btdb actually crashes my switch so that might be related

Did you try the version I posted above? I haven't distributed the app via official channels in quite some time (I know places like the hb appstore still bundle it with the new releases for some reason), and an update was required to make it work on firmware 13.0.0 and above.

mattminew commented 2 years ago

Ah, I've been downloading mission control off of the hb appstore. The version you posted works, and I see the xbox elite wireless controller listed on the bluetooth devices, but the issues still there, it's not auto connecting.

ndeadly commented 2 years ago

Did you try deleting the pairings? Just to make sure it's not keeping outdated pairing info for some reason.

Which firmware version did the controller get downgraded to by the way? I noticed some Xbox One controllers seemed to be getting downgraded to a much earlier version rather than the one just prior to the BLE update. Maybe it's reintroduced some pairing bug. I know the XBE2 controller had quite a few Bluetooth issues back in the day. I wonder if it's possible to upgrade to a specific firmware.

In any case, I don't really have much control over this from a software point of view. Mission Control basically serves to trick the console into pairing your controller, and then translating the hid packets between the controller and console. Reconnecting a paired controller is all handled by Nintendo and the Bluetooth stack.

mattminew commented 2 years ago

My controller version is 4.8.1932, though I think I found where the issue comes from.

It gets weird when I connect to my PC, either bluetooth or usb, and then back to the switch. Is that supposed to happen? To get my controller to work normally on the switch I have to reset all the bluetooth devices on btdb and pair the controller again. I don't know if it means anything but I also use rewasd on my computer.

ndeadly commented 2 years ago

There's definitely something strange I seem to remember that happens if you connect an xbox controller to a PC via USB and then attempt to pair via Bluetooth on Switch. But still no automatic reconnecting after re-pairing?

I don't know if it means anything but I also use rewasd on my computer.

Shouldn't make a difference. Apart from the USB confusion mentioned above, there shouldn't really be any side effects from having connected to other devices.

mattminew commented 2 years ago

Sadly it still doesn't automatically reconnect, but that's ok now that I understand the problem. It's been going on for about a year so some conclusion is really relieving. Thanks for helping me understand though, you were a great help!

ndeadly commented 2 years ago

No problem. You can leave this issue open in case anyone else is having similar issues and might have additional insight. Unfortunately, not owning the controller myself means I can't really investigate much further.

I need to update my debugging tools at some point in the near future. I might post something here for you to try in the hope that I can catch something interesting in a log.

mattminew commented 2 years ago

Thanks, I appreciate it

oaktrunks commented 2 years ago

I believe I am having the same issue with my Elite 2 controller after downgrading it to 4.8.1908.0. Every time I turn the controller off and back on I have to pair it to the switch again. Let me know if there's anything I can do to add any additional insight.

ndeadly commented 2 years ago

You're the third person to report this issue now, so it definitely seems to more than an anomaly. In all three cases the controller has been downgraded from the BLE firmware. I'm curious whether it's related to the controller firmware, or whether something changed in the newer switch firmwares. If you are able to spin up a new throwaway emummc and downgrade it to 12.0.0 and/or 13.0.0, clear the database and re-pair the controller, I would be interested to know if that makes any difference to the behaviour.

oaktrunks commented 2 years ago

Okay, so I tried it on 13.0.0 and it still has the same issues. However once you clear the database the controller works properly until you plug it back into the computer. Then it starts acting up again until you clear the database and re-pair the controller. This holds true for 14.1.2 as well. I found this thread on the Microsoft support website, which indicates it's a controller problem, at least on old versions of the controller's firmware.

Basically, any time you plug the controller into your PC and want to use it on the switch afterwards you have to wipe the controller database and re-pair and then it should work properly until the next time you plug it in.

Masamune3210 commented 2 years ago

Maybe connecting it to a computer pairs it in some way to the computer? I know that the console/Xbox app on PC will try to associate a specific gamertag to a controller, but I'm pretty sure that's all either locally stored or server side and shouldn't affect Bluetooth pairing

kakra commented 2 years ago

In all three cases the controller has been downgraded from the BLE firmware. I'm curious whether it's related to the controller firmware, or whether something changed in the newer switch firmwares

The 4.8 firmware of this controller is very unstable, it has all sorts of Bluetooth connection stability problems and depends a lot on quirks of the host Bluetooth stack.

Masamune3210 commented 2 years ago

So its just really buggy controller firmware that happens to be the last one before they switched over to LE?