Skip to content
This repository has been archived by the owner on Jun 15, 2023. It is now read-only.

8BitDo controller is only recognized upon first sync #57

Open
jonathansharpe opened this issue Jan 29, 2022 · 11 comments
Open

8BitDo controller is only recognized upon first sync #57

jonathansharpe opened this issue Jan 29, 2022 · 11 comments

Comments

@jonathansharpe
Copy link

I've been using my 8BitDo SN30Pro with Dolphin, using joycond-cemuhook-git, and dkms-hid-nintendo. When I first sync it to my computer as a Bluetooth device, it's recognized fine by both software. However, when I power off the controller and power it back on to reconnect, it's no longer recognized. joycond-cemuhook-git just says "Looking for Nintendo Switch controllers...", and it's also not recognized as a device in Dolphin. I'm assuming this is a driver issue, so I decided to post it here.

OS: Manjaro KDE 5.23

@floydfire
Copy link

I think it's how the controller works, i have the same issue with the pro 2 and this is on both windows and linux, you have to reconnect everytime (for me i just use the reset button) sadly i haven't found a fix. This is if i have it in switch mode, haven't tried on other modes, but i know for certain that in switch mode does that even on windows...

@KastenKlicker
Copy link

I do have the same problem with my Joy Cons on Kubuntu 21.04 and Ubuntu 22.04. Didn't used them for something to this moment, I just connected my right one, powered my laptop off and on. Removing the Joy Con from the Known Devices list and reconnect it does work for me.

@floydfire
Copy link

yea it may be something related to how the nintendo sync? cause i don't think the 8bitdo does the same with xinput or dinput

@nicman23
Copy link
Owner

do you have joycond installed?

@KastenKlicker
Copy link

It doesn't work correctly with or without joycond.

@ali1234
Copy link

ali1234 commented Dec 30, 2022

Steps to reproduce:

  1. Turn off the controller
  2. Hold Y and press start
  3. Press the pairing button on the top of the controller
  4. Start a bluetooth scan on the computer and connect the controller

Result: the controller is detected and the evdevs are created and work:

[1357797.440432] nintendo 0005:057E:2009.006B: unknown main item tag 0x0
[1357797.440686] nintendo 0005:057E:2009.006B: hidraw6: BLUETOOTH HID v80.01 Gamepad [Pro Controller] on 5c:f3:70:6b:90:f0
[1357799.521029] nintendo 0005:057E:2009.006B: using factory cal for left stick
[1357799.554824] nintendo 0005:057E:2009.006B: using factory cal for right stick
[1357799.657311] nintendo 0005:057E:2009.006B: using factory cal for IMU
[1357799.829867] nintendo 0005:057E:2009.006B: controller MAC = E4:17:D8:50:2A:0A
[1357800.373981] nintendo 0005:057E:2009.006B: Failed to set home LED dflt; ret=-110
[1357800.373997] nintendo 0005:057E:2009.006B: Failed to create leds; ret=-110
[1357800.374539] input: Nintendo Switch Pro Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/bluetooth/hci2/hci2:12/0005:057E:2009.006B/input/input185
[1357800.374998] input: Nintendo Switch Pro Controller IMU as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/bluetooth/hci2/hci2:12/0005:057E:2009.006B/input/input186
  1. Turn off the controller
  2. Turn on the controller
  3. It will automatically reconnect, because it is paired

Result: controller is not initialized properly:

[1357847.938690] nintendo 0005:057E:2009.006C: unknown main item tag 0x0
[1357847.939016] nintendo 0005:057E:2009.006C: hidraw6: BLUETOOTH HID v80.01 Gamepad [Pro Controller] on 5c:f3:70:6b:90:f0
[1357852.031882] nintendo 0005:057E:2009.006C: failed reading SPI flash; ret=-110
[1357852.031903] nintendo 0005:057E:2009.006C: using factory cal for left stick
[1357854.079953] nintendo 0005:057E:2009.006C: failed reading SPI flash; ret=-110
[1357854.079968] nintendo 0005:057E:2009.006C: using factory cal for right stick
[1357856.128016] nintendo 0005:057E:2009.006C: failed reading SPI flash; ret=-110
[1357856.128032] nintendo 0005:057E:2009.006C: Failed to read left stick cal, using dflts; e=-110
[1357858.176097] nintendo 0005:057E:2009.006C: failed reading SPI flash; ret=-110
[1357858.176107] nintendo 0005:057E:2009.006C: Failed to read right stick cal, using dflts; e=-110
[1357860.228178] nintendo 0005:057E:2009.006C: failed reading SPI flash; ret=-110
[1357860.228194] nintendo 0005:057E:2009.006C: using factory cal for IMU
[1357862.272248] nintendo 0005:057E:2009.006C: failed reading SPI flash; ret=-110
[1357862.272263] nintendo 0005:057E:2009.006C: Failed to read IMU cal, using defaults; ret=-110
[1357862.272270] nintendo 0005:057E:2009.006C: Unable to read IMU calibration data
[1357864.320324] nintendo 0005:057E:2009.006C: Failed to set report mode; ret=-110
[1357864.320693] nintendo 0005:057E:2009.006C: probe - fail = -110
[1357864.320722] nintendo: probe of 0005:057E:2009.006C failed with error -110

In order to make the controller work again, you have to press the pairing button and re-pair it in the bluetooth manager.

Reproducible with controller firmwares 1.37 and 2.0.

@ali1234
Copy link

ali1234 commented Dec 30, 2022

With the ignore_init_failure option, the evdevs are created but never produce any events.

@ali1234
Copy link

ali1234 commented Dec 30, 2022

I have now tested firmware 1.38 and it behaves identically. I also tested 1.36 and older firmwares, but with these firmwares the controller does not function at all. It won't even turn on. Controller was shipped with 1.38.

@ali1234
Copy link

ali1234 commented Dec 30, 2022

Also note that this problem doesn't happen with hid-generic. The controller works fine after turning it off and on again. All buttons and axes work, but motion controls are not supported.

@Adesin-fr
Copy link

I second this.
I've experienced the same issue !
No fixes found...
I've noticed also that when plugged via USB, it works (reports events)

@Impeta
Copy link

Impeta commented Jan 31, 2023

May or not be related! But my 8bitdo's SN30 Pro+ controller indeed also does not work anymore after the first sync. Per my dmesg output, first sync:

[ 1192.020453] input: Pro Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/bluetooth/hci0/hci0:7/0005:057E:2009.0007/input/input32
[ 1192.022087] hid-generic 0005:057E:2009.0007: input,hidraw2: BLUETOOTH HID v0.01 Gamepad [Pro Controller] on d4:6a:6a:fd:f9:7a
[ 1192.052499] nintendo 0005:057E:2009.0007: unknown main item tag 0x0
[ 1192.053832] nintendo 0005:057E:2009.0007: hidraw2: BLUETOOTH HID v80.01 Gamepad [Pro Controller] on d4:6a:6a:fd:f9:7a
[ 1194.168945] nintendo 0005:057E:2009.0007: using factory cal for left stick
[ 1194.197596] nintendo 0005:057E:2009.0007: using factory cal for right stick
[ 1194.318979] nintendo 0005:057E:2009.0007: using factory cal for IMU
[ 1194.495148] nintendo 0005:057E:2009.0007: controller MAC = E4:17:D8:F9:8B:75
[ 1195.035621] nintendo 0005:057E:2009.0007: Failed to set home LED default, unregistering home LED
[ 1195.547787] leds 0005:057E:2009.0007:blue:player-5: Setting an LED's brightness failed (-110)
[ 1195.548235] input: Nintendo Switch Pro Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/bluetooth/hci0/hci0:7/0005:057E:2009.0007/input/input33
[ 1195.548754] input: Nintendo Switch Pro Controller IMU as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/bluetooth/hci0/hci0:7/0005:057E:2009.0007/input/input34
[ 1203.357254] audit: type=1100 audit(1675201450.775:102): pid=2702 uid=1000 auid=1000 ses=3 msg='op=PAM:authentication grantors=pam_faillock,pam_permit,pam_faillock acct="torto" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'
[ 1203.357477] audit: type=1101 audit(1675201450.775:103): pid=2702 uid=1000 auid=1000 ses=3 msg='op=PAM:accounting grantors=pam_unix,pam_permit,pam_time acct="torto" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'
[ 1203.358353] audit: type=1110 audit(1675201450.776:104): pid=2702 uid=1000 auid=1000 ses=3 msg='op=PAM:setcred grantors=pam_faillock,pam_permit,pam_faillock acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'
[ 1203.358540] audit: type=1105 audit(1675201450.777:105): pid=2702 uid=1000 auid=1000 ses=3 msg='op=PAM:session_open grantors=pam_systemd_home,pam_limits,pam_unix,pam_permit acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'

Yet, turning off and on back the controller after, it technically connects on, yet isn't recognized anymore and my buttons and axes won't work. It can still connect in, in spite spitting out br-connection-create-socket. It reports this:

[ 1393.911429] nintendo 0005:057E:2009.0008: unknown main item tag 0x0
[ 1393.912622] nintendo 0005:057E:2009.0008: hidraw2: BLUETOOTH HID v80.01 Gamepad [Pro Controller] on d4:6a:6a:fd:f9:7a
[ 1398.015680] nintendo 0005:057E:2009.0008: failed reading SPI flash; ret=-110
[ 1398.015692] nintendo 0005:057E:2009.0008: using factory cal for left stick
[ 1400.063662] nintendo 0005:057E:2009.0008: failed reading SPI flash; ret=-110
[ 1400.063673] nintendo 0005:057E:2009.0008: using factory cal for right stick
[ 1402.111602] nintendo 0005:057E:2009.0008: failed reading SPI flash; ret=-110
[ 1402.111617] nintendo 0005:057E:2009.0008: Failed to read left stick cal, using defaults; e=-110
[ 1404.159539] nintendo 0005:057E:2009.0008: failed reading SPI flash; ret=-110
[ 1404.159550] nintendo 0005:057E:2009.0008: Failed to read right stick cal, using defaults; e=-110
[ 1406.207605] nintendo 0005:057E:2009.0008: failed reading SPI flash; ret=-110
[ 1406.207616] nintendo 0005:057E:2009.0008: using factory cal for IMU
[ 1408.255372] nintendo 0005:057E:2009.0008: failed reading SPI flash; ret=-110
[ 1408.255385] nintendo 0005:057E:2009.0008: Failed to read IMU cal, using defaults; ret=-110
[ 1408.255392] nintendo 0005:057E:2009.0008: Unable to read IMU calibration data
[ 1410.303350] nintendo 0005:057E:2009.0008: Failed to set report mode; ret=-110
[ 1410.303722] nintendo 0005:057E:2009.0008: probe - fail = -110
[ 1410.303757] nintendo: probe of 0005:057E:2009.0008 failed with error -110
[ 1460.630693] audit: type=1101 audit(1675201708.055:108): pid=2784 uid=1000 auid=1000 ses=3 msg='op=PAM:accounting grantors=pam_unix,pam_permit,pam_time acct="torto" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'
[ 1460.631687] audit: type=1110 audit(1675201708.056:109): pid=2784 uid=1000 auid=1000 ses=3 msg='op=PAM:setcred grantors=pam_faillock,pam_permit,pam_env,pam_faillock acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'
[ 1460.631864] audit: type=1105 audit(1675201708.057:110): pid=2784 uid=1000 auid=1000 ses=3 msg='op=PAM:session_open grantors=pam_systemd_home,pam_limits,pam_unix,pam_permit acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'

The errors match down to exact details from @ali1234's reports. Switch and DS4 modes are the ones with this issue, though the Dinput and Xinput ones in their turn work fine.

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

No branches or pull requests

7 participants