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

Pairing DualShock 4 (DS4) Controllers does not work reliable #12

Closed jbollacke closed 3 years ago

jbollacke commented 4 years ago

I can't seem to pair my DS4 Controllers. Just got a fresh copy of AMS 0.14.1 and also copied MissionControl. I tried pairing a DS4 V1 and DS4 V2 but no luck. After holding down Share + PS4 btn the controller starts flashing fast but nothing ever happens in the Change Grip screen.

Just to confirm: btdb only shows my two joy-cons.

Firmware is v10.1.0

jbollacke commented 4 years ago

Is there any way to debug what's going wrong?

shyiro commented 4 years ago

when you try to pair him, you press L1 and R1 ? i've no problem for pair my dualshock v2.

jbollacke commented 4 years ago

I just tried L1 + R1 + Share and PS4 btn all at once and it worked like a charm.

So putting the Controller into Pairing mode and pressing L1 + R1 afterwards does not work?

ndeadly commented 4 years ago

L1 + R1 shouldn't be required, but glad you got it working

shyiro commented 4 years ago

i just do like this : Share + PS button for enter pairing mode on the controller, then press L1 + R1 like a switch pro controller.

jbollacke commented 4 years ago

L1 + R1 shouldn't be required, but glad you got it working

Without pressing L1 + R1 it definitely did not work in several attempts. Will try to reproduce it.

jbollacke commented 4 years ago

Reset the controllers and could pair my DS4 v2 fine (without pressing L1 + R1) on first attempt. Now my DS4 v1 won't pair again.

jbollacke commented 4 years ago

You might want to make sure there is no other BT device nearby 8-)

jbollacke commented 4 years ago

You might want to make sure there is no other BT device nearby 8-)

Nope that probably is not the reason either. Pairing definitely does not work on most attempts for me. I also observed the following behaviour:

  1. Go into Change Grip screen
  2. Start pairing mode (hold down Share + PS4) on DS4 v1/v2 => DS4 LED starts flashing fast but wont pair
  3. Press PS4 button again => DS4 LED turns on permanent
  4. Put Switch into Standby => DS4 LED turns off after ~9 seconds

I would have expected the DS4 to abort the pairing mode and LED just turn off after pressing PS4 btn again in Step 3. That is the case when the Switch is in Standby Mode.

ndeadly commented 4 years ago

Can you try this build and post the resulting btdrv-mitm.log from the root of your SD card? You might want to wipe the controller database first. Note that the log gets wiped on reboot.

MissionControl-0.1.0-debug-logging.zip

jbollacke commented 4 years ago

Too bad there is no timestamp in the log but here it is:

Put DS4 into Pairing mode and waited for about 20 seconds while LED was flashing like a heartbeat. Tried to abort Pairing mode by pressing PS4 btn again -> LED turned on permanently btdrv-mitm.log

I am trying to put together a successful pairing log.

jbollacke commented 4 years ago

Shows several failed attempts.

In the end it paired somehow: btdrv-mitm.log

Note that I switched off BT on my TV after previous post, so it does not show up in the log.

ndeadly commented 4 years ago

Hmm that's very strange, I've seen cases where it sometimes takes a few attempts to pair correctly, but yours really seems to be struggling for some reason. You also seem to have a lot more of those HID event 07s than usual. I don't actually fully understand what this event is used for, but it usually gets sent after pairing completes or when the console sleeps/wakes.

As for the behaviour you mentioned previously. I think the solid light can switch on if the controller is actually already paired with the console. There could have been another issue stopping the connection process from actually completing, making it seem like the controller didn't connect.

Now that you've managed to get it paired, does it reconnect to the console when you hit the PS button without issue?

ndeadly commented 4 years ago

See if you have any better luck with this build where I've improved the battery level handling code.

MissionControl-0.1.0-ds4-battery-fix.zip

jbollacke commented 4 years ago

Now that you've managed to get it paired, does it reconnect to the console when you hit the PS button without issue?

Once paired it reconnects fine when I hit the PS button.

See if you have any better luck with this build where I've improved the battery level handling code.

Thank you. Will report back tomorrow.

jbollacke commented 4 years ago

See if you have any better luck with this build where I've improved the battery level handling code.

Nope. Same performance

ndeadly commented 4 years ago

That's unfortunate. I've had a couple of other reports similar to yours where the user has been able to make it pair after multiple attempts. I'm starting to think it might just be some quirk with the v1 controller that's out of my control. As long as it works without issue after you're able to get it paired I think I'll just list this is a known issue for now. I'll leave the issue open in case anyone else is able to chime in with any insight in the future.

Masamune3210 commented 1 year ago

Please don't comment on dead issues.