mirror of
https://github.com/safijari/openpuck.git
synced 2026-11-03 22:30:22 +00:00
[PR #222] [MERGED] scpair: Bunch of fixes #247
Labels
No labels
pull-request
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
safijari/openpuck#247
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/safijari/openpuck/pull/222
Author: @Leseratte10
Created: 8/8/2026
Status: ✅ Merged
Merged: 8/12/2026
Merged by: @safijari
Base:
main← Head:machine2📝 Commits (3)
4857cbascpair: Steam Machine bugfixes5a1a945Add support for wireless controllers to scpaira429139Cleanup, allow pairing a wireless controller📊 Changes
1 file changed (+419 additions, -113 deletions)
View changed files
📝
ReversePuck/scpair.py(+419 -113)📄 Description
Here's a bunch of new features I added to scpair.py:
Displaying wireless controllers already works, and so does rebooting / powering it off. Pairing and writing to a wireless controller should work, but will probably only be useful once #227 is fixed by #230.
Here's things I noticed / questions I have:
OpenPuck devices claim to use firmware 6A18D053 which is an official (Valve firmware) version number from May 29th. This comes from the
ATTR83array in identity.cpp. This object is a key-value list. One byte for the key (4 = firmware version), then four bytes little endian for the data, then repeat. (#230 also updates that value to the most recent firmware version).And a question regarding OpenPuck: OpenPuck's BCD value gets set to either 0x211, 0x212 or 0x213 in
SteamPuckController::begin(). Is there a reason you picked these values?Both my Steam Controller Puck and my Steam Machine's internal receiver have that set to "2", but the Steam Machine has code to handle receivers with BCD values other than 2 and treats them differently. Is that intended? I had to add a specific check for these values to make the code work with an OpenPuck.
(Please don't merge this yet, I'd like to first solve the "mystery" with the BCD version / get your feedback to my questions and issues above.)
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.