[GH-ISSUE #214] Missing features with haptics #95

Open
opened 2026-10-22 05:03:38 +00:00 by roman · 4 comments
Owner

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

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
Author
Owner

@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.

<!-- gh-comment-id:5185360942 --> @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.
Author
Owner

@safijari commented on GitHub (Aug 22, 2026):

Can you check if this is now fixed in .49 ?

<!-- gh-comment-id:5379240059 --> @safijari commented on GitHub (Aug 22, 2026): Can you check if this is now fixed in .49 ?
Author
Owner

@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.

<!-- gh-comment-id:5392250883 --> @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.
Author
Owner

@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.

<!-- gh-comment-id:5399123746 --> @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.
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#95
No description provided.