protonscr

8BitDo SN30 Pro USB gamepad not working

steamopen General controller / Steam Input
ValveSoftware/steam-for-linux#8231 · opened 2021-11-13 by antoyo · updated 2022-04-12 · 3 comments · github
Aantoyo 2021-11-13 github

Your system information

  • Steam client version (build number or date): Oct 13 2021, at 19:47:24
  • Distribution (e.g. Ubuntu): ArchLinux
  • Opted into Steam client beta?: [Yes/No] No
  • Have you checked for system updates?: [Yes/No] Yes

Please describe your issue in as much detail as possible:

While the controller works in other games/applications, it does not work in Steam.
When I go in the controller settings in Steam Big Picture, I see the controller appears sometimes as a Nintendo Switch Pro and then disappears. Sometimes, it also appears as an Xbox controller, but it also disappears after 1 second.

Here are the console logs of Steam.
It shows that the controller gets disconnected.

udevadm monitor will show stuff happening when Steam starts.

I tried many things like adding some udev rule:

KERNEL=="hidraw*", ATTRS{idVendor}=="20d6", ATTRS{idProduct}=="a711", MODE="0660", TAG+="uaccess"

(I also tried with values adjusted for the my 8BitDo controller.)

I tried hid-nintendo-dkms and game-devices-udev.

I tried blacklisting the Switch "device" of my controller, but Steam logs would show:

   Local Device Found
     type: 045e 028e
     path: sdl://3
     serial_number:  - 0
     Manufacturer:
     Product:      X360 Controller
     Release:      114
     Interface:    -1

   Unable to open local device: sdl://3

The weird thing is that I get this issue on all my computers (different ThinkPads and a desktop) but I don't get it on my friends' computers (using my Steam account or theirs). Using their Steam account on my computer don't fix the issue.

Also weird, I am sometimes able to have the controller working in Steam: the last time, it was by creating a new Linux account on my computer. But it stopped working and I can't make it work again this way.

Steps for reproducing this issue:

  1. Start Steam.
  2. Go in Big Picture.
  3. Notice that the controller doesn't work.
Hhenrik-farre 2021-11-27 github

I'm seeing the same thing, the controller works fine in none steam games, but as soon as I start steam it vibrates like crazy.

udevadm info for 8bitdo sn30 pro usb
dmesg when connecting 8bitdo sn30 pro

I'm running ArchLinux with steam built Nov 22 2021, at 22:12:42.

I have tried:

  • blacklist the xpad driver
  • xboxdrv driver/service
  • game-devices-udev
  • hid-nintendo-dkms
Jjason-oliveira 2022-03-25 github

You don't understand how your controller works.
hid-nintendo (or hidraw if on kernel 5.15 or lower) only works when the gamepad is powered on via Start + Y.
xpad is used when the gamepad is powered on via Start + X.

Blacklisting xpad is a poor decision, because no xbox pads will work, including your SN30 Pro in that mode.

Connecting it to a a computer with kernel 5.15 or lower will work, as hidraw is loaded and steam's /lib/udev/rules.d/60-steam-input.rules makes the controller work. This is probably why your friend's computer is working.

You need to blacklist hid-nintendo until Steam fixes their 60-steam-input.rules file to reflect newer kernels, and initialize your SN30 using Start + Y.

Hhenrik-farre 2022-04-12 github

Ok, blacklisting hid_nintendo and as this is a wired USB controller, holding Y and plugging the controller in, makes it show up as:

Bus 001 Device 009: ID 057e:2009 Nintendo Co., Ltd Switch Pro Controller

The controller now "works" in Steam and Stardew Vally - but only the d-pad and buttons, analog sticks do not.

Holding X and plugging the controller in, makes it show up as

Bus 001 Device 010: ID 045e:028e Microsoft Corp. Xbox360 Controller

And it also works in games.

Just plugging it in without holding any buttons also makes it show up as a Xbox360 controller, except when starting Steam or Stardew Valley it goes into that crazy disconnect/connect, nintendo switch/xbox fubar :)

The manual does not state this (https://download.8bitdo.com/Manual/Controller/SN30pro-USB/SN30-Pro-USB.pdf) and there is no print on the bottom of the controller as there is on the bluetooth version.

@jason-oliveira thanks for the input, holding X and plugging in is a ok workaround for now :)

Nothing extracted yet.