[GH-ISSUE #93] Device clone mechanism #41

Closed
opened 2026-10-22 05:00:12 +00:00 by roman · 4 comments
Owner

Originally created by @costaconrado on GitHub (Jun 29, 2026).
Original GitHub issue: https://github.com/safijari/openpuck/issues/93

Currently the Steam Controller can pair with 2 pucks on L1+Steam+A and R1+Steam+A slots.
It would be really cool if we could have a easy way to clone OpenPuck paired in one of the slots so the controller can pair with any of them that is on (e.g. turn on Switch 2 it pairs with the NRF52840 connected to it, turn off switch 2 and turn on XBox it connects to the other NRF52840, press btn sequence for slot one, it changes for the PC/SteamMachine with the original puck, no usb plug required)

Originally created by @costaconrado on GitHub (Jun 29, 2026). Original GitHub issue: https://github.com/safijari/openpuck/issues/93 Currently the Steam Controller can pair with 2 pucks on L1+Steam+A and R1+Steam+A slots. It would be really cool if we could have a easy way to clone OpenPuck paired in one of the slots so the controller can pair with any of them that is on (e.g. turn on Switch 2 it pairs with the NRF52840 connected to it, turn off switch 2 and turn on XBox it connects to the other NRF52840, press btn sequence for slot one, it changes for the PC/SteamMachine with the original puck, no usb plug required)
roman closed this issue 2026-10-22 05:00:13 +00:00
Author
Owner

@safijari commented on GitHub (Jun 30, 2026):

Working on this today

<!-- gh-comment-id:4842991525 --> @safijari commented on GitHub (Jun 30, 2026): Working on this today
Author
Owner

@safijari commented on GitHub (Jun 30, 2026):

https://github.com/safijari/openpuck/pull/94 has a backup and restore that I just tested. You can export a json config which you can then import into a new device through a new panel in the webusb. Note that if two pucks are using the exact same config are both powered on and a controller powers on, it'll connect to one at random and stay connected to that one.

<!-- gh-comment-id:4844436774 --> @safijari commented on GitHub (Jun 30, 2026): https://github.com/safijari/openpuck/pull/94 has a backup and restore that I just tested. You can export a json config which you can then import into a new device through a new panel in the webusb. Note that if two pucks are using the exact same config are both powered on and a controller powers on, it'll connect to one at random and stay connected to that one.
Author
Owner

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

This is merged now.

<!-- gh-comment-id:4858412635 --> @safijari commented on GitHub (Jul 1, 2026): This is merged now.
Author
Owner

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

I was wondering if it was possible to extract that needed pairing information from an existing paired controller and/or original Valve Puck?

I'd love to be able to have the controller paired simultaneously both to the original Puck and to an OpenPuck (on the same slot), instead of just to two different OpenPucks.

(Or maybe, in the future, if possible, to two different Steam Pucks in the same slot, if it's possible to manipulate the original puck that way).

I've seen from the JSON backup and the source code that the pairing information is an 8-byte key and then the 16-byte serial number of the controller. Is there a way, with the Steam Controller paired to the original Steam Puck, to figure out the 8-bit key for that pairing? That way one could clone a Steam Puck's pairings onto an OpenPuck.

<!-- gh-comment-id:4873794142 --> @Leseratte10 commented on GitHub (Jul 3, 2026): I was wondering if it was possible to extract that needed pairing information from an existing paired controller and/or original Valve Puck? I'd love to be able to have the controller paired simultaneously both to the original Puck and to an OpenPuck (on the same slot), instead of just to two different OpenPucks. (Or maybe, in the future, if possible, to two different Steam Pucks in the same slot, if it's possible to manipulate the original puck that way). I've seen from the JSON backup and the source code that the pairing information is an 8-byte key and then the 16-byte serial number of the controller. Is there a way, with the Steam Controller paired to the original Steam Puck, to figure out the 8-bit key for that pairing? That way one could clone a Steam Puck's pairings onto an OpenPuck.
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#41
No description provided.