mirror of
https://github.com/safijari/openpuck.git
synced 2026-11-03 22:30:22 +00:00
[GH-ISSUE #214] Missing features with haptics #95
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#95
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?
Originally created by @xamindar on GitHub (Aug 4, 2026).
Original GitHub issue: https://github.com/safijari/openpuck/issues/214
There is a new project that can play music through the haptics in the controller. But it only works with the official puck. Is it possible to add whatever is missing on openpuck to fully support these features?
https://github.com/Pixel1011/SteamHapticsPlayer
@Fletchett commented on GitHub (Aug 4, 2026):
To add to this, there's also issues with the haptics when running the "Steam Controller RC" site. It's a site that uses the haptics to move the Steam Controller around on a table.
With the original puck, it works as intended. The haptics fire when the button is pressed and stops when let go. With the OpenPuck however, haptics fail immediately and just doesn't stop once started.
@safijari commented on GitHub (Aug 22, 2026):
Can you check if this is now fixed in .49 ?
@Leseratte10 commented on GitHub (Aug 24, 2026):
The RC car website to drive the controller around is now working with the latest firmware, the music player still isn't. I'll take a look at that software when I have time.
@Leseratte10 commented on GitHub (Aug 24, 2026):
I can get the music player to "work" (emit something that vaguely represents sounds) by editing the handleSet function in puck_hid.cpp and change the if statement guarding the relayEnqueue call to allow for rid values between 0x80 and 0x89 (instead of previously between 0x80 and 0x86).
0x80 through 0x86 is haptics calls, while 0x87/0x88/0x89 is apparently audio playback, all through the haptic protocol (relay type 5 instead of type 1).
It sounds way worse than with the original Puck, though, like there is some odd background noise. I believe there's some trickery going on with the payload length that makes OpenPuck either send too few or too many bytes for some reason.
I'll try to get a sniffer set up again to compare OpenPuck's behaviour with the behaviour of the original Puck.