Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installing this breaks Official NS Pro Controller #29

Closed
MrSensemaker opened this issue Aug 29, 2020 · 12 comments
Closed

Installing this breaks Official NS Pro Controller #29

MrSensemaker opened this issue Aug 29, 2020 · 12 comments

Comments

@MrSensemaker
Copy link

MrSensemaker commented Aug 29, 2020

I have no idea what happened... I installed this as described, copied 'atmosphere' folder to the root of SD, booted and then Official Pro controller cannot be recognized. I tried for 15 minutes straight getting it to connect via USB, syncing, pairing, every option I have ever used in the past, and no matter what, the pro controller would never connect with the switch. It's lights would blink back and forth forever, and that's it. A 'paired' notification would pop up on screen when I connected via USB but no input would ever be recognized.

To test if the pro controller was the problem, I paired it with my vanilla switch and it synced up instantly and was able to be used within 5 seconds.

After deleting the missioncontrol files and re-installing fresh atmosphere, the pro controller worked again instantly, just like the vanilla switch, the normal expected behaviour.

I'm running the latest firmware and atmosphere releases.

@ndeadly
Copy link
Owner

ndeadly commented Aug 29, 2020

See #27.

First try wiping your pairing database with your Pro Controller completely disconnected from the console. Then re-pair it via bluetooth.

If you still have issues, your console may be getting hung up trying to send a command to the controller that I don't respond to. Use the debug log build of MissionControl from the issue linked above to log the connection process and post the log here.

@MrSensemaker
Copy link
Author

Following those instructions did not solve the issue.

I will follow the instructions with the debug build later today.

@MrSensemaker
Copy link
Author

Another brief observation. I made sure to update the firmware of my pro controller, no changes to the issue.

I enabled the 'Pro Controller Wired Communication' option and the controller works as normal when connected via USB. Interestingly, after disconnecting from the USB cable, the controller is still paired, connected, and powered on but will not accept any inputs!

There must definitely be a bluetooth communication issue occurring. I will get you that log file within the hour...

@ndeadly
Copy link
Owner

ndeadly commented Aug 29, 2020

Still sounds like the same garbage hardware ID issue from the other thread tbh. The log will reveal all though.

@MrSensemaker
Copy link
Author

MrSensemaker commented Aug 29, 2020

Here is the log file, hopefully you can make use of it. Still no success in connecting.
btdrv-mitm.log

If there are any other steps you need me to follow to generate a better log file for you, please let me know.

@ndeadly
Copy link
Owner

ndeadly commented Aug 29, 2020

Hmm that's very strange, I would expect there to be more in the log there. I'm on mobile at the moment, but at a glance it looks like it's not even completing the pairing process. I've just headed out for the evening, but I'll build you a version with more verbose logging of the pairing process when I'm home or in the morning.

@MrSensemaker
Copy link
Author

MrSensemaker commented Aug 29, 2020

Alright. I will uninstall until then, since I need wireless NS Controller support atm, this implementation is useful for when I visit friends/family.

Please include a step-by-step instruction of what you'd like me to do with the updated version, so that I can get you the best log file for your diagnostics.

EDIT: could this possibly be due to an installed sys-module that is interfering with the bluetooth connection, possibly the one that allows wired controller connection?

@Nihilhem
Copy link

Just wanted to say that I have exactly the same problem. Also, maybe MrSensemaker is right about other sysmodule interfering, because I also have sys-con installed.

@AuroraWright
Copy link

AuroraWright commented Aug 31, 2020

Have you already tried deleting the controllers in Switch settings (from the screen in which you need to hold X), rebooting the console (as a precaution) and then pairing it via the sync button on the "change grip/order" screen? If so, you could also edit the SYSTEM 8000000000000050 save manually (with hekate/ninFS/hactoolnet) to fix the PID/VID but it's quite the involved procedure (I did this myself).

@Nihilhem
Copy link

Nihilhem commented Aug 31, 2020

Have you already tried deleting the controllers in Switch settings (from the screen in which you need to hold X), rebooting the console (as a precaution) and then pairing it via the sync button on the "change grip/order" screen?

Wow, that worked, thank you! Any idea why this happened in the first place?

@ndeadly
Copy link
Owner

ndeadly commented Aug 31, 2020

@Nihilhem as explained in the other threads about similar issues, the issue occurs when the device pairs by another means than Bluetooth, and stores random data in place of the real device hardware ID. This works normally because Nintendo doesn't care about these IDs since all official controllers send the same data formats. In my case however, I need to use these IDs to identify the controller in order to decide how to handle the data it sends. If I can't match your controllers ID to anything, I ignore the packets it sends. This will cause the handshake between the console and controller to fail and as such it will never connect. Deleting the database and re-pairing wirelessly allows the correct ID to be stored to the console.

@MrSensemaker
Copy link
Author

The process outlined by @AuroraWright by having to edit the SYSTEM file solved my issue. For some reason the IDs would not be deleted on my Switch by just using the native Horizon function to unpair all controllers. X1 and NS Pro controller both working exactly as expected now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants