[GH-ISSUE #97] OpenPuck recognizing the controller but not recognizing any inputs #43

Closed
opened 2026-10-22 05:00:20 +00:00 by roman · 23 comments
Owner

Originally created by @shxv0 on GitHub (Jul 1, 2026).
Original GitHub issue: https://github.com/safijari/openpuck/issues/97

I just bought the PCB and flashed it using the OpenPuck-main-600d208d-standard.uf2 file. At first it connected fine and everything worked. However, 10 minutes later I swapped back to my other pc with the original puck, updated everything and now the OpenPuck doesn't work anymore. It still recognizes the puck and the connection to my controller in the web config, as well as the signal strength in steam. Switching to xbox mode is also recognized and pinging works. However no input is ever registered and the controller just doesnt function anymore.

Edit: The PCB Puck sees the controller as active but in the controller details it doesn't recognize the puck.

Originally created by @shxv0 on GitHub (Jul 1, 2026). Original GitHub issue: https://github.com/safijari/openpuck/issues/97 I just bought the PCB and flashed it using the `OpenPuck-main-600d208d-standard.uf2` file. At first it connected fine and everything worked. However, 10 minutes later I swapped back to my other pc with the original puck, updated everything and now the OpenPuck doesn't work anymore. It still recognizes the puck and the connection to my controller in the web config, as well as the signal strength in steam. Switching to xbox mode is also recognized and pinging works. However no input is ever registered and the controller just doesnt function anymore. Edit: The PCB Puck sees the controller as active but in the controller details it doesn't recognize the puck.
roman closed this issue 2026-10-22 05:00:21 +00:00
Author
Owner

@safijari commented on GitHub (Jul 1, 2026):

Is Steam running? I realized recent commits broke the lizard mode when steam is closed.

Are xbox or switch modes running?

<!-- gh-comment-id:4858666726 --> @safijari commented on GitHub (Jul 1, 2026): Is Steam running? I realized recent commits broke the lizard mode when steam is closed. Are xbox or switch modes running?
Author
Owner

@shxv0 commented on GitHub (Jul 1, 2026):

Is Steam running? I realized recent commits broke the lizard mode when steam is closed.

Are xbox or switch modes running?

Steam is running and unfortunately the controller doesn't work in big picture mode either. I should test the other modes.

<!-- gh-comment-id:4858686801 --> @shxv0 commented on GitHub (Jul 1, 2026): > Is Steam running? I realized recent commits broke the lizard mode when steam is closed. > > Are xbox or switch modes running? Steam is running and unfortunately the controller doesn't work in big picture mode either. I should test the other modes.
Author
Owner

@shxv0 commented on GitHub (Jul 1, 2026):

Odd. I just rolled back to a release from last week (c6d852ba) and it still doesn't seem to work. After pairing it in big picture mode, it just immediately disconnects, connects again and after that no user input seems to be working. I tried it with a spare PCB and factory reset as well. As well as a full pc restart (and restarting steam multiple times).

Edit: Pinging the controller in steam big picture mode still works.

Image It sees the controller as active but the controller does not recognize an active puck even if the signal is still submitting correctly Image

On the webUI:

20:20:55  connected — puck FXB99602412FF (VID 28de iface 0)
20:20:53  device disconnected (mode-switch / watchdog reboot) — auto-reconnecting when it returns
20:20:53  read err: Failed to execute 'transferIn' on 'USBDevice': A transfer error has occurred.
20:20:53  write err: Failed to execute 'transferOut' on 'USBDevice': A transfer error has occurred.
20:20:52  read err: Failed to execute 'transferIn' on 'USBDevice': A transfer error has occurred.
20:20:52  write err: Failed to execute 'transferOut' on 'USBDevice': A transfer error has occurred.
20:20:51  read err: Failed to execute 'transferIn' on 'USBDevice': A transfer error has occurred.
20:20:51  write err: Failed to execute 'transferOut' on 'USBDevice': A transfer error has occurred.
20:20:51  read err: Failed to execute 'transferIn' on 'USBDevice': A transfer error has occurred.
20:19:48  connected — puck FXB99602412FF (VID 28de iface 0)

Switching modes also does not seem to work.

20:25:55  device disconnected (mode-switch / watchdog reboot) — auto-reconnecting when it returns
20:25:55  read err: Failed to execute 'transferIn' on 'USBDevice': A transfer error has occurred.
20:25:55  mode switch requested — device will reboot
20:25:37  ⚠ LOOP STALL @ usbtx (360ms) — watchdog reset imminent
<!-- gh-comment-id:4858717400 --> @shxv0 commented on GitHub (Jul 1, 2026): Odd. I just rolled back to a release from last week (c6d852ba) and it still doesn't seem to work. After pairing it in big picture mode, it just immediately disconnects, connects again and after that no user input seems to be working. I tried it with a spare PCB and factory reset as well. As well as a full pc restart (and restarting steam multiple times). Edit: Pinging the controller in steam big picture mode still works. <img width="2600" height="364" alt="Image" src="https://github.com/user-attachments/assets/590475f8-fd08-40c9-a983-bcc823d1aa11" /> It sees the controller as active but the controller does not recognize an active puck even if the signal is still submitting correctly <img width="2550" height="718" alt="Image" src="https://github.com/user-attachments/assets/576a214d-6835-4b7f-bf70-f435457e1e63" /> On the webUI: ``` 20:20:55 connected — puck FXB99602412FF (VID 28de iface 0) 20:20:53 device disconnected (mode-switch / watchdog reboot) — auto-reconnecting when it returns 20:20:53 read err: Failed to execute 'transferIn' on 'USBDevice': A transfer error has occurred. 20:20:53 write err: Failed to execute 'transferOut' on 'USBDevice': A transfer error has occurred. 20:20:52 read err: Failed to execute 'transferIn' on 'USBDevice': A transfer error has occurred. 20:20:52 write err: Failed to execute 'transferOut' on 'USBDevice': A transfer error has occurred. 20:20:51 read err: Failed to execute 'transferIn' on 'USBDevice': A transfer error has occurred. 20:20:51 write err: Failed to execute 'transferOut' on 'USBDevice': A transfer error has occurred. 20:20:51 read err: Failed to execute 'transferIn' on 'USBDevice': A transfer error has occurred. 20:19:48 connected — puck FXB99602412FF (VID 28de iface 0) ``` Switching modes also does not seem to work. ``` 20:25:55 device disconnected (mode-switch / watchdog reboot) — auto-reconnecting when it returns 20:25:55 read err: Failed to execute 'transferIn' on 'USBDevice': A transfer error has occurred. 20:25:55 mode switch requested — device will reboot 20:25:37 ⚠ LOOP STALL @ usbtx (360ms) — watchdog reset imminent ```
Author
Owner

@shxv0 commented on GitHub (Jul 2, 2026):

I've tried it on my Bazzite machine as well (previously tested it on windows) and it runs into the same problem. Turns out that once I've paired my steam controller with the puck, my steam controller has the same serial number as the puck itself but whenever I go back to wired usb it has the actual serial number of my steam controller again.

<!-- gh-comment-id:4861218658 --> @shxv0 commented on GitHub (Jul 2, 2026): I've tried it on my Bazzite machine as well (previously tested it on windows) and it runs into the same problem. Turns out that once I've paired my steam controller with the puck, my steam controller has the same serial number as the puck itself but whenever I go back to wired usb it has the actual serial number of my steam controller again.
Author
Owner

@samip5 commented on GitHub (Jul 2, 2026):

It does indeed appear that it works on Windows, but not at recognizing any input on Linux despite it seeing the controller as this happens on Steam Deck aka SteamOS as well.

P.S I also updated the controller, not thinking anything of it..

<!-- gh-comment-id:4861437400 --> @samip5 commented on GitHub (Jul 2, 2026): It does indeed appear that it works on Windows, but not at recognizing any input on Linux despite it seeing the controller as this happens on Steam Deck aka SteamOS as well. P.S I also updated the controller, not thinking anything of it..
Author
Owner

@safijari commented on GitHub (Jul 2, 2026):

It does indeed appear that it works on Windows, but not at recognizing any input on Linux despite it seeing the controller as this happens on Steam Deck aka SteamOS as well.

P.S I also updated the controller, not thinking anything of it..

I guess I gotta update my controllers and see what breaks?

This is on the latest build and as you can see it's working on SteamOS for me

https://www.reddit.com/r/SteamController/comments/1ukywhx/openpuck_configs_can_now_be_copy_pasted_sound_on/

<!-- gh-comment-id:4861479140 --> @safijari commented on GitHub (Jul 2, 2026): > It does indeed appear that it works on Windows, but not at recognizing any input on Linux despite it seeing the controller as this happens on Steam Deck aka SteamOS as well. > > P.S I also updated the controller, not thinking anything of it.. I guess I gotta update my controllers and see what breaks? This is on the latest build and as you can see it's working on SteamOS for me https://www.reddit.com/r/SteamController/comments/1ukywhx/openpuck_configs_can_now_be_copy_pasted_sound_on/
Author
Owner

@shxv0 commented on GitHub (Jul 2, 2026):

It does indeed appear that it works on Windows, but not at recognizing any input on Linux despite it seeing the controller as this happens on Steam Deck aka SteamOS as well.
P.S I also updated the controller, not thinking anything of it..

I guess I gotta update my controllers and see what breaks?

This is on the latest build and as you can see it's working on SteamOS for me

https://www.reddit.com/r/SteamController/comments/1ukywhx/openpuck_configs_can_now_be_copy_pasted_sound_on/

I've upgraded my (OG) puck and controller on both the steam main branch as well as the beta branch. This might have broken the connection with openpuck for me. It doesnt work for me on Windows either. I'm curious if the latest SC firmware update might have broken it for you and others too.

<!-- gh-comment-id:4861492997 --> @shxv0 commented on GitHub (Jul 2, 2026): > > It does indeed appear that it works on Windows, but not at recognizing any input on Linux despite it seeing the controller as this happens on Steam Deck aka SteamOS as well. > > P.S I also updated the controller, not thinking anything of it.. > > I guess I gotta update my controllers and see what breaks? > > This is on the latest build and as you can see it's working on SteamOS for me > > https://www.reddit.com/r/SteamController/comments/1ukywhx/openpuck_configs_can_now_be_copy_pasted_sound_on/ I've upgraded my (OG) puck and controller on both the steam main branch as well as the beta branch. This might have broken the connection with openpuck for me. It doesnt work for me on Windows either. I'm curious if the latest SC firmware update might have broken it for you and others too.
Author
Owner

@samip5 commented on GitHub (Jul 2, 2026):

Yup, confirmed mine just now to be broken on Windows too, which worked before the SC2 firmware update.

EDIT: If only had a spare board to flash the sniffer onto.. :) I did order some spares, but yet to come.

<!-- gh-comment-id:4861499189 --> @samip5 commented on GitHub (Jul 2, 2026): Yup, confirmed mine just now to be broken on Windows too, which worked before the SC2 firmware update. EDIT: If only had a spare board to flash the sniffer onto.. :) I did order some spares, but yet to come.
Author
Owner

@safijari commented on GitHub (Jul 2, 2026):

Well that's fun. Ok. I'll update one of my controllers and see what's changed.

<!-- gh-comment-id:4861514841 --> @safijari commented on GitHub (Jul 2, 2026): Well that's fun. Ok. I'll update one of my controllers and see what's changed.
Author
Owner

@safijari commented on GitHub (Jul 2, 2026):

I just did an update on one of my controllers on the stable branch with my steam deck and that didn't break the connection between it and openpuck (current latest commit tho).

Guess lemme go to beta on steamos and see if that update is different.

<!-- gh-comment-id:4861560592 --> @safijari commented on GitHub (Jul 2, 2026): I just did an update on one of my controllers on the stable branch with my steam deck and that didn't break the connection between it and openpuck (current latest commit tho). Guess lemme go to beta on steamos and see if that update is different.
Author
Owner

@samip5 commented on GitHub (Jul 2, 2026):

I'm on SteamOS stable 🤔 and openpuck of 70a80f707d

EDIT: The connection itself works (as in it shows up as connected), input itself doesn't from the controller. Even the test device inputs doesn't worky.

<!-- gh-comment-id:4861568427 --> @samip5 commented on GitHub (Jul 2, 2026): I'm on SteamOS stable 🤔 and openpuck of 70a80f707ddc026045fc7b86a3c6c3f79e29f559 EDIT: The connection itself works (as in it shows up as connected), input itself doesn't from the controller. Even the test device inputs doesn't worky.
Author
Owner

@safijari commented on GitHub (Jul 2, 2026):

Ok confirming. Updating controller on latest SteamOS beta breaks Openpuck.

<!-- gh-comment-id:4861585082 --> @safijari commented on GitHub (Jul 2, 2026): Ok confirming. Updating controller on latest SteamOS beta breaks Openpuck.
Author
Owner

@samip5 commented on GitHub (Jul 2, 2026):

Gotta go double check if my Deck is on beta...

EDIT: It's on SteamOS 3.8.13 (OS build: 20260701.1)

<!-- gh-comment-id:4861587607 --> @samip5 commented on GitHub (Jul 2, 2026): Gotta go double check if my Deck is on beta... EDIT: It's on SteamOS 3.8.13 (OS build: 20260701.1)
Author
Owner

@safijari commented on GitHub (Jul 2, 2026):

Controller connects and reacts to shutdown commands from the webusb panel. Puck does not seem to receive any reports from the controller.

<!-- gh-comment-id:4861607176 --> @safijari commented on GitHub (Jul 2, 2026): Controller connects and reacts to shutdown commands from the webusb panel. Puck does not seem to receive any reports from the controller.
Author
Owner

@shxv0 commented on GitHub (Jul 2, 2026):

For me it broke on main for the first time. I remember updating it from bazzite on the steam deck-stable branch (I'm using it in gamemode). I'm also on openpuck release version github.com/safijari/openpuck@70a80f707d.

I did use the beta channel in the past on Bazzite and this may be a Bazzite related bug but I used my SC on windows without any notification for updates. Perhaps I got steam client beta SC firmware still pushed onto my SC somehow.

Controller connects and reacts to shutdown commands from the webusb panel. Puck does not seem to receive any reports from the controller.

I have the same issue. Everything is working except actual controller inputs. What I've noticed is that in controller details the Serial Number is the one of my puck rather than the controller itself. It also doesnt recognize what puck its attached to

<!-- gh-comment-id:4861642498 --> @shxv0 commented on GitHub (Jul 2, 2026): For me it broke on main for the first time. I remember updating it from bazzite on the steam deck-stable branch (I'm using it in gamemode). I'm also on openpuck release version https://github.com/safijari/openpuck/commit/70a80f707ddc026045fc7b86a3c6c3f79e29f559. I did use the beta channel in the past on Bazzite and this may be a Bazzite related bug but I used my SC on windows without any notification for updates. Perhaps I got steam client beta SC firmware still pushed onto my SC somehow. > Controller connects and reacts to shutdown commands from the webusb panel. Puck does not seem to receive any reports from the controller. I have the same issue. Everything is working except actual controller inputs. What I've noticed is that in controller details the Serial Number is the one of my puck rather than the controller itself. It also doesnt recognize what puck its attached to
Author
Owner

@samip5 commented on GitHub (Jul 2, 2026):

Claude Code has some input:

Root cause, confirmed

  Your controller's firmware update renumbered the embedded input report from 0x45 to 0x42 and appended 8 new trailing bytes (tlen went from 46 → 54). Everything else — sequence byte, buttons, sticks,
  triggers, trackpads, IMU — sits at exactly the same byte offsets as before. This matches your # stat data perfectly: F1=/s (the outer container) was always healthy at full rate with crcfail≈0, while new=/s
  stuck at 0 forever, because the decode's report-id check (rf_link.cpp:371, now line ~374) was gating on the old 0x45 and silently rejecting every reply.

  That one gate feeds both g_in[] (general gamepad input) and the mode-switch chord detector — so both symptoms were one bug.

  What I changed

  OpenPuck/rf_link.cpp, the TLV match inside rfConnTx(): now accepts either 0x45 or 0x42 as the embedded report id, so it works on both the old and the updated controller firmware. No offset/struct changes
  needed — your PROTOCOL.md layout is still accurate for the first 46 bytes.

<!-- gh-comment-id:4861702649 --> @samip5 commented on GitHub (Jul 2, 2026): Claude Code has some input: ``` Root cause, confirmed Your controller's firmware update renumbered the embedded input report from 0x45 to 0x42 and appended 8 new trailing bytes (tlen went from 46 → 54). Everything else — sequence byte, buttons, sticks, triggers, trackpads, IMU — sits at exactly the same byte offsets as before. This matches your # stat data perfectly: F1=/s (the outer container) was always healthy at full rate with crcfail≈0, while new=/s stuck at 0 forever, because the decode's report-id check (rf_link.cpp:371, now line ~374) was gating on the old 0x45 and silently rejecting every reply. That one gate feeds both g_in[] (general gamepad input) and the mode-switch chord detector — so both symptoms were one bug. What I changed OpenPuck/rf_link.cpp, the TLV match inside rfConnTx(): now accepts either 0x45 or 0x42 as the embedded report id, so it works on both the old and the updated controller firmware. No offset/struct changes needed — your PROTOCOL.md layout is still accurate for the first 46 bytes. ```
Author
Owner

@samip5 commented on GitHub (Jul 2, 2026):

I verified that input works on WIndows atm: https://github.com/safijari/openpuck/pull/101

EDIT: Works on Steam Deck again too. :)

<!-- gh-comment-id:4861731700 --> @samip5 commented on GitHub (Jul 2, 2026): I verified that input works on WIndows atm: https://github.com/safijari/openpuck/pull/101 EDIT: Works on Steam Deck again too. :)
Author
Owner

@safijari commented on GitHub (Jul 2, 2026):

Can you test https://github.com/safijari/openpuck/pull/102 please?

<!-- gh-comment-id:4861810614 --> @safijari commented on GitHub (Jul 2, 2026): Can you test https://github.com/safijari/openpuck/pull/102 please?
Author
Owner

@samip5 commented on GitHub (Jul 2, 2026):

Tested that, and Xbox 360 mode as one could guess, doesn't get input, but Switch Pro and Steam mode does on Windows.
Didn't test other modes nor on Steam Deck.

<!-- gh-comment-id:4861891639 --> @samip5 commented on GitHub (Jul 2, 2026): Tested that, and Xbox 360 mode as one could guess, doesn't get input, but Switch Pro and Steam mode does on Windows. Didn't test other modes nor on Steam Deck.
Author
Owner

@safijari commented on GitHub (Jul 2, 2026):

Oh hmm Lizard mode is also not working again. Will fix

<!-- gh-comment-id:4862140784 --> @safijari commented on GitHub (Jul 2, 2026): Oh hmm Lizard mode is also not working again. Will fix
Author
Owner

@shxv0 commented on GitHub (Jul 2, 2026):

I cant do a quick test at the moment as I don't have the tools set up on my pc to spin up a build quickly so I rely on uf2's. Do you think it's possible to deploy a github workflow in the future that produces a uf2 artifact quickly after a new build/PR/commit?

<!-- gh-comment-id:4867708145 --> @shxv0 commented on GitHub (Jul 2, 2026): I cant do a quick test at the moment as I don't have the tools set up on my pc to spin up a build quickly so I rely on uf2's. Do you think it's possible to deploy a github workflow in the future that produces a uf2 artifact quickly after a new build/PR/commit?
Author
Owner

@safijari commented on GitHub (Jul 2, 2026):

It's ok I did testing. I'll merge something later today trying to fix a couple other things too

<!-- gh-comment-id:4870445808 --> @safijari commented on GitHub (Jul 2, 2026): It's ok I did testing. I'll merge something later today trying to fix a couple other things too
Author
Owner

@safijari commented on GitHub (Jul 3, 2026):

#102 solves this and I'll merge it soon.

<!-- gh-comment-id:4872784772 --> @safijari commented on GitHub (Jul 3, 2026): #102 solves this and I'll merge it soon.
Sign in to join this conversation.
No labels
pull-request
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
safijari/openpuck#43
No description provided.