Steam Controller Puck vs. Ubuntu and USB

Just got my shiny new Steam Controller. I like the feel of it so far. However, the setup on Ubuntu 26 was less than smooth. On MacOS, it “just worked” as you would expect. On linux, it could have “just worked”, but didn’t. The problem was that I had it plugged in to a USB 2.0 port. And to make it even harder to troubleshoot, the controller itself works just fine on that port. There is zero indication of this in Steam or in KDE.

All the forum advice said not to use the snap version of Steam (I wasn’t), and to make sure the steam-devices package was installed and up to date (it was). Lots of people talked about UDEV issues, so I ran udevadm monitor to see what was happening. It showed the puck connecting, and getting assigned to ttyAMA0. Which is a serial port. As I suspected, when searched on that, I found that it starts up in that mode to check to see if a firmware update is available. However, for whatever reason, it stopped there.

I now had a wookie in the system.

The Wookie Defense

I dug a little further, and finally tried dmesg to see if there was anything listed there. Turns out there was:

[ 2182.244418] usb 1-10.1: new full-speed USB device number 23 using xhci_hcd
[ 2182.335196] usb 1-10.1: New USB device found, idVendor=28de, idProduct=1304, bcdDevice= 0.02
[ 2182.335199] usb 1-10.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2182.335200] usb 1-10.1: Product: Steam Controller Puck
[ 2182.335201] usb 1-10.1: Manufacturer: Valve Software
[ 2182.335202] usb 1-10.1: SerialNumber: FXB0000000000
[ 2182.335681] usb 1-10.1: Not enough bandwidth for new device state.
[ 2182.335691] usb 1-10.1: can't set config #1, error -28

It was silently failing because it couldn’t get enough bandwidth. This should be prominently mentioned on the setup pages. I did not find any mention of it. Plugging it into a USB-C port, of course, would work. But they ship the controller with a USB-A to USB-C cable (why this is still the norm is crazy). It is a controller. I did not expect it to require a USB 3 port to function. And, of course, to make it more confusing, as I stated before, the controller itself works fine on a USB 2.0 connection. Why would its puck need more? Maybe because it can drive 2 controllers? But a clear indication of a port speed problem would be nice instead of the controller just powering up, and then powering back down.

Leave a Comment