Internal controller not detected
Your system information
- Steam client version: 1702079146
- SteamOS version: 3.5.7
- Opted into Steam client beta?: No
- Opted into SteamOS beta?: No
- Have you checked for updates in Settings > System?: Yes
Please describe your issue in as much detail as possible:
Steam deck internal controller (All buttons: thumbsticks, pads, trigger) not working except power and volume button.
- In steam menu > settings > controller > No controller detected.
- When accessing BIOS, need to plug USB keyboard as internal buttons (dpad, action) not working.
- lsusb.py didn't show the controller hwid.
- journalctl -u jupiter-controller-update failed due to no hwid detected.
Things working:
- Touch screen working.
- Wireless/Bluetooth working.
- USB power and hub working.
- Audio working.
Things already done but didn't fix missing controller:
- Change from stable to beta to preview.
- Sleep, restart, clear BIOS (vol down + ... + power).
- Factory reset the steam deck.
- Use recovery USB and reimage the steam deck.
Is there a way to force reflashing the controller ROM?
Steps for reproducing this issue:
- Update steam deck when playing game.
- Restart steam deck when update finished.
- Relaunch the game and controller suddenly not working anymore.
- Controller firmware update maybe failed to flash the controller ROM?
Same issue since yesterday, i opened the SD to check the ribbon cablesDB<>MB and re-set them (under the MB too), no change.
~Can you both post your lsusb output? It might be stuck in DFU mode, but if it's not there you might have a completely bricked controller :S I hope it's not a bug of the latest firmware tho.~
EDIT: Missed this part: journalctl -u jupiter-controller-update failed due to no hwid detected. Yeah, I'm not sure what you can do besides sending it in for repair if the controller is completely not detected from the host end.
For reference.
lsusb:
(A+)(root@steamdeck ~)# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 13d3:3553 IMC Networks Bluetooth Radio
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
lsusb.py:
(A+)(root@steamdeck ~)# lsusb.py
usb1 1d6b:0002 09 1IF [USB 2.00, 480 Mbps, 0mA] (xhci-hcd 0000:04:00.4) hub
1-5 13d3:3553 e0 2IFs [USB 1.00, 12 Mbps, 500mA] (Realtek Bluetooth Radio 00e04c000001)
usb2 1d6b:0003 09 1IF [USB 3.10, 10000 Mbps, 0mA] (xhci-hcd 0000:04:00.4) hub
Is there any alternative way other than sending it for repair? I'm willing to open the SD and tinker with it's internal.
Replying to https://github.com/ValveSoftware/SteamOS/issues/1308#issuecomment-1856224021
Just for a question that popped up in my mind, can you please try to switch to XHCI from DRD in the BIOS and see if anything change? It shouldn't, since the internal bus should not have this feature and therefore not affected by that, however that's easy to test at least.
If nothing change, the only way is to convince Valve to sell controller boards. Sadly they claim that calibration software is not available and it will never be, so no way to repair it yourself.
If Valve would actually be pro repair, please begin to sell controller boards and the associated software, especially since the shoulder buttons are the weaker part of the Deck LCD and in no way replaceable thanks to this.
Marco.
Valve has accepted my rma request.
Yeap, nothing changed when switching from DRD to XHCI. Still the same output and non usable controller.
I imported the SD as Valve didn't released it in my country so trying to RMA it would be a tough one.
Chnage to XHCI and disable bluetooth USB:
(A+)(root@steamdeck ~)# lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
(A+)(root@steamdeck ~)# lsusb.py
usb1 1d6b:0002 09 1IF [USB 2.00, 480 Mbps, 0mA] (xhci-hcd 0000:04:00.3) hub
usb2 1d6b:0003 09 1IF [USB 3.10, 10000 Mbps, 0mA] (xhci-hcd 0000:04:00.3) hub
usb3 1d6b:0002 09 1IF [USB 2.00, 480 Mbps, 0mA] (xhci-hcd 0000:04:00.4) hub
usb4 1d6b:0003 09 1IF [USB 3.10, 10000 Mbps, 0mA] (xhci-hcd 0000:04:00.4) hub
Besides forcing them to enter a sort of DFU unbrickable hardware mode (usually microcontrollers have a feature like that to recover them from failed flash) I have no other way to get them back. Problem is that the hardware is completely undocumented and no one has tried to reverse engineer it, so unless Valve wants to actively help you there is nothing you can do, sadly (apart from taking up the mantle yourself and do the RE part with your own hands).
Many thanks @RodoMa92 .
I guess my only choice is to pair it with a Bluetooth controller and live with it for now.
I used to run Steam on native arch linux OS. It worked some months ago. Now steamdeck controller isn't detected. If i run SteamOS from SD card it works. So no hardware issue, but something is wrong now in arch linux.
root@steamdeck: ~ # lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 28de:1205 Valve Software Steam Deck Controller
Bus 003 Device 003: ID 13d3:3553 IMC Networks 802.11ac WLAN Adapter
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
root@steamdeck: ~ # lsusb.py
usb1 1d6b:0002 09 1IF [USB 2.00, 480 Mbps, 0mA] (xhci-hcd 0000:04:00.3) hub
usb2 1d6b:0003 09 1IF [USB 3.10, 10000 Mbps, 0mA] (xhci-hcd 0000:04:00.3) hub
usb3 1d6b:0002 09 1IF [USB 2.00, 480 Mbps, 0mA] (xhci-hcd 0000:04:00.4) hub
3-3 28de:1205 00 5IFs [USB 2.00, 12 Mbps, 500mA] (Valve Software Steam Deck Controller MEDA21500708)
3-5 13d3:3553 e0 2IFs [USB 1.00, 12 Mbps, 500mA] (Realtek 802.11ac WLAN Adapter 00e04c000001)
usb4 1d6b:0003 09 1IF [USB 3.10, 10000 Mbps, 0mA] (xhci-hcd 0000:04:00.4) hub
Please help :-(
@DocMAX Hey friend this isn't the right issue for this, as in I don't know if it would fix the OP's specific problem since it seems specific to us, but I found this thread trying to fix my problem. I too put Arch on my Deck and encountered this issue by updating. I reinstalled Steam, then restarted, and voila it worked. Hope that helps.
How was your procedure of "reinstall"? I deleted .local/share/Steam folder and still no controller.
Ok, so i found a workaround by accident. "rmmod usbhid" and then "modprobe usbhid" did steam make the controller recognize. so why is that? what is happening?
Edit: To break it down further, i needed to do: echo "3-3:1.2" > /sys/bus/usb/drivers/usbhid/bind So why isn't "3-3:1.2" loaded at boottime?
Hello?
Hi @DocMAX.
To reinstall your Deck, you could follow the guide from Steam (https://help.steampowered.com/en/faqs/view/1B71-EDF2-EB6D-2BB3). Try "Re-image Steam Deck" to reinstall everything, including reformat the NVMe.
I've tried your method of rmmod and modprobe + force usbhid bind but it doesn't work on my Deck as the controller does not even listed as a USB HID. It was completely gone, not even detected in BIOS.
Ok, i did mention i'm on Arch Linux (so vanilla linux on Steam Deck).
R1 wasn't working well. So i removed the spring and put it back.. i forgot to remove ny sd card when closing the back.. it got broken.. i had to lose the part and removed the stucked sd card. So after everything my controls stopped work.. i was on windows when i did that.. i have reimage the steam deck.. installed all update.. nothing yet.. I'm frustrated.. I'm in Nigeria. Nobody knows about steam deck here & I'm sure this is not hatdware issue
Ok, so i found a workaround by accident. "rmmod usbhid" and then "modprobe usbhid" did steam make the controller recognize. so why is that? what is happening?
Edit: To break it down further, i needed to do: echo "3-3:1.2" > /sys/bus/usb/drivers/usbhid/bind So why isn't "3-3:1.2" loaded at boottime?
Is this the fix?
I'm facing the same issue. Controller doesn't work. Persistent between BIOS flashes, Steam OS and Bazzite installs. Valve Software Steam Controller Bootloader shows in the USB device list but doesn't have a hwid assigned. I also downgraded the hid version to 1.0.5 as indicated in https://github.com/ublue-os/bazzite/issues/1108 which describes a similar issue.
Has anyone been able to find a solution yet? It's been 3 days already I'm facing this and my Steam Deck is a paperweight at this point.
I'm facing the same issue. Controller doesn't work. Persistent between BIOS flashes, Steam OS and Bazzite installs.
Valve Software Steam Controller Bootloadershows in the USB device list but doesn't have a hwid assigned. I also downgraded thehidversion to1.0.5as indicated in https://github.com/ublue-os/bazzite/issues/1108 which describes a similar issue.Has anyone been able to find a solution yet? It's been 3 days already I'm facing this and my Steam Deck is a paperweight at this point.
If you see the bootloader, then your controller do work. You just need to reflash using the script provided by Valve to reenable it back to a working condition. I'll post some instruction on how to do this shortly, but you can see them already on the linked thread from bazzite IIRC.
EDIT: what output do you get from this command?
sudo systemctl status jupiter-controller-update.service
Not sure if it'll help anyone else out but for me it was due to a pre-release decky plugin I had installed, I cant remember exactly which one but I disabled my decky plugins and rebooted which resolved it for me then I just re-added them until I found the broken one and uninstalled.
Replying to https://github.com/ValveSoftware/SteamOS/issues/1308#issuecomment-2194638411
Thanks for the quick response. I'm getting:
Warning: The unit file, source configuration file or drop-ins of jupiter-controller-update.service changed on disk. Run 'systemctl>
○ jupiter-controller-update.service - Jupiter Controller Firmware Update Service
Loaded: loaded (/usr/lib/systemd/system/jupiter-controller-update.service; disabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: inactive (dead)
Replying to https://github.com/ValveSoftware/SteamOS/issues/1308#issuecomment-2194644733
Try to run sudo systemctl start jupiter-controller-update.service, then sudo systemctl status jupiter-controller-update.service again.
ivan@steamdeck:/var/home/ivan/Downloads$ sudo systemctl start jupiter-controller-update.service
[sudo] password for ivan:
Warning: The unit file, source configuration file or drop-ins of jupiter-controller-update.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Job for jupiter-controller-update.service failed because the control process exited with error code.
See "systemctl status jupiter-controller-update.service" and "journalctl -xeu jupiter-controller-update.service" for details.
ivan@steamdeck:/var/home/ivan/Downloads$ sudo systemctl status jupiter-controller-update.service
Warning: The unit file, source configuration file or drop-ins of jupiter-controller-update.service changed on disk. Run 'systemctl>
× jupiter-controller-update.service - Jupiter Controller Firmware Update Service
Loaded: loaded (/usr/lib/systemd/system/jupiter-controller-update.service; disabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: failed (Result: exit-code) since Thu 2024-06-27 16:14:56 EEST; 23s ago
Process: 13391 ExecStart=/usr/bin/jupiter-controller-update (code=exited, status=1/FAILURE)
Main PID: 13391 (code=exited, status=1/FAILURE)
CPU: 1.445s
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: raise DogBootloaderUpdateError()
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: DogBootloaderUpdateError
Jun 27 16:14:51 steamdeck jupiter-controller-update[13391]: FW update failed. Retrying... Count: 3
Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: FW update out of retries
Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: !! Failed to apply firmware update, see above
Jun 27 16:14:56 steamdeck jupiter-controller-update[13420]: SUCCESS
Jun 27 16:14:56 steamdeck systemd[1]: jupiter-controller-update.service: Main process exited, code=exited, status=1/FAILURE
Jun 27 16:14:56 steamdeck systemd[1]: jupiter-controller-update.service: Failed with result 'exit-code'.
Jun 27 16:14:56 steamdeck systemd[1]: Failed to start jupiter-controller-update.service - Jupiter Controller Firmware Update Servi>
Jun 27 16:14:56 steamdeck systemd[1]: jupiter-controller-update.service: Consumed 1.445s CPU time.
ivan@steamdeck:/var/home/ivan/Downloads$ sudo journalctl -xeu jupiter-controller-update.service
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", >
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: self.erase()
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", >
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: self._poll_ack()
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", >
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: raise DogBootloaderUpdateError()
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: DogBootloaderUpdateError
Jun 27 16:14:51 steamdeck jupiter-controller-update[13391]: FW update failed. Retrying... Count: 3
Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: FW update out of retries
Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: !! Failed to apply firmware update, see above
Jun 27 16:14:56 steamdeck jupiter-controller-update[13420]: SUCCESS
Jun 27 16:14:56 steamdeck systemd[1]: jupiter-controller-update.service: Main process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ An ExecStart= process belonging to unit jupiter-controller-update.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 1.
Jun 27 16:14:56 steamdeck systemd[1]: jupiter-controller-update.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ The unit jupiter-controller-update.service has entered the 'failed' state with result 'exit-code'.
Jun 27 16:14:56 steamdeck systemd[1]: Failed to start jupiter-controller-update.service - Jupiter Controller Firmware Update Servi>
░░ Subject: A start job for unit jupiter-controller-update.service has failed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ A start job for unit jupiter-controller-update.service has finished with a failure.
░░
░░ The job identifier is 6428 and the job result is failed.
Jun 27 16:14:56 steamdeck systemd[1]: jupiter-controller-update.service: Consumed 1.445s CPU time.
░░ Subject: Resources consumed by unit runtime
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░
░░ The unit jupiter-controller-update.service completed and consumed the indicated resources.
The actual jupiter-controller-update fails with the following:
ivan@steamdeck:/var/home/ivan/Downloads$ /usr/bin/jupiter-controller-update
PTS: 6112FB7A, STS: 00000000
[
{
"path": "/dev/hidraw0",
"vendor_id": 10462,
"product_id": 4100,
"serial_number": "N/A",
"release_number": 256,
"manufacturer_string": "Valve Software",
"product_string": "Steam Controller Bootloader",
"usage_page": 65280,
"usage": 1,
"interface_number": 0,
"build_timestamp": 1628633978,
"secondary_build_timestamp": 0,
"is_bootloader": true
}
]
Initial firmware update only necessary for galileo hardware
Device is in bootloader mode, update required
Found candidate device, build timestamp 6112FB7A, BL true, BL_Type 1, HYB false
Updating Type 1 System
Erasing: |
Traceback (most recent call last):
File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", line 1220, in <module>
cli()
File "/home/ivan/.local/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ivan/.local/lib/python3.12/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/home/ivan/.local/lib/python3.12/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ivan/.local/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ivan/.local/lib/python3.12/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", line 1004, in program
bootloader.upload_firmware(firmware, verify=verify)
File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", line 932, in upload_firmware
self.erase()
File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", line 864, in erase
self._poll_ack()
File "/usr/share/jupiter_controller_fw_updater/d21bootloader16.py", line 518, in _poll_ack
raise DogBootloaderUpdateError()
DogBootloaderUpdateError
FW update failed. Retrying... Count: 1
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: DogBootloaderUpdateError Jun 27 16:14:51 steamdeck jupiter-controller-update[13391]: FW update failed. Retrying... Count: 3 Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: FW update out of retries Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: !! Failed to apply firmware update, see above Jun 27 16:14:56 steamdeck jupiter-controller-update[13420]: SUCCESS
Seems that the script is failing the erase cycle, so it's not going forward in flashing the firmware, see:
Jun 27 16:14:51 steamdeck jupiter-controller-update[13415]: DogBootloaderUpdateError
Jun 27 16:14:51 steamdeck jupiter-controller-update[13391]: FW update failed. Retrying... Count: 3
Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: FW update out of retries
Jun 27 16:14:54 steamdeck jupiter-controller-update[13391]: !! Failed to apply firmware update, see above
Jun 27 16:14:56 steamdeck jupiter-controller-update[13420]: SUCCESS
You will probably need to ask Valve why it's failing, since it doesn't seem to tell you anything useful besides the chip erase going bad.
The two reports above tho seems identical, what software version are you on? SteamOS Main?
Latest Bazzite. But it's absolutely identical with SteamOS Main and Beta.
Latest Bazzite. But it's absolutely identical with SteamOS Main and Beta.
Odd, it works fine here (I also use bazzite on mine) and the latest time that bazzite has pulled in the controller updater has been from a month ago, so it should still work fine (unless it was from a while that you updated).
If you try to run manually sudo jupiter-controller-update, do you still get the same output back from the program? Can you post it here?
EDIT: Oh, you already did that without sudo. Try with sudo in the from just to be sure (it should be required to flash the controllers firmware IIRC).
Another thing I noticed in the unofficial Valve's changelog (please, Valve, start making your gitlab public by default): https://gitlab.com/evlaV/jupiter-hw-support/-/commit/b5eeda0affe1252764bde4070e64db2293624489
This mentions some regression in all firmwares after march 3. Not sure on what was the problem, since they do not clarify that in the commit log.
I installed Bazzite just yesterday, so it should be latest. Executing with sudo produces absolutely the same result. I'll check the unofficial changelog later when I get back tonight.