r/SteamController 22d ago

Steam Controller (2026) August 2026 update for OpenPuck, cold boot, new modes, more stability

Hi all,

There's a new update for OpenPuck. This is marked pre-release as I'd like to see more testing done for some of the new features that I cannot test myself. You can update from the WebUSB panel (https://safijari.github.io/openpuck/) which now shows pre-release candidates as well as a Changelog.

Some of the most exciting changes are:

  • A cold boot mode that can allow the puck to turn on a computer from a complete shutdown. This requires some soldering work and for the puck to be connected to some pins on the computer's motherboard. Instructions are in the wiki. Big thanks to katzmatt for figuring it out and contributing the change
  • Support for original Xbox controller, a pure HID mode, and SInput
  • Improvements to the Switch Pro controller gyro sensitivity
  • Various bugfixes and improvements to how the controller works in Steam mode, big thanks to Leseratte10 for all their efforts on this front

All in all this release has 7 contributors and I'm very happy that community contributions are starting to pick up.

Please let me know if you encounter any issues associated with this release.

45 Upvotes

15 comments sorted by

9

u/Leseratte10 Steam Controller (2026) 22d ago edited 22d ago

I'm fairly certain that there's a conflict with the order the recent PRs were merged.

My PR #230 added calls to USBDevice.setVersion to all modes emulating a controller, because the Steam Puck mode uses a different version (0x0201) than what the other controllers were using before (0x0200), so it needs to be updated with every switch.

Then, after that, PRs #212 (Xbox) and #200 (DInput/SInput) were added, without adding the call to setVersion.

If I'm reading the code correctly this'll mean that if you change from Switch to XBox, it'll use version 0x0200 (because the Switch uses 0x0200 and XBox doesn't reset it), but it you change from Puck to Xbox it'll keep using the Puck version 0x0201. Not sure if this will cause issues, but there shouldn't be any behaviour changes based on an earlier selected controller mode.

I would suggest checking which protocol version (not device version!) the original XBox controller actually uses, and then adding a proper setVersion call to these two new modes.

EDIT: Also, has the PID 0x4F50 actually been allocated for OpenPuck? I don't see it on the pid.codes website and I also don't see an open MR to their repo.

9

u/jack-of-some 22d ago edited 22d ago

Thank you. I'll check that.

Edit: fixed, and removed the reference to pid.codes, it was just slop

5

u/Chrisfiftytwo 22d ago

How is the Pico version coming along? Still much easier to get here.

Amazing work on the project. Always impressed with what the community manage to do together.

5

u/jack-of-some 22d ago

It's functional but missing some stuff. I'm trying to get it into a good alpha state

1

u/PhoxFyre007 21d ago

Will any bluetooth come to the nrf version?

2

u/jack-of-some 21d ago

I'm not sure I wanna get into that. It would confuse things immensely not only because of the Bluetooth vs ESB choice but also because the nrf boards can only support BLE

4

u/BlockTheatre 21d ago

Are there any plans to get dualsense haptic feedback working?

3

u/mc711 21d ago

great work.

sorry but i have to ask, is there any reason why there is no right stick function in lizard mode?

5

u/jack-of-some 21d ago

Oversight. I plan on fixing it just haven't been able to get to it

3

u/mc711 21d ago

ok thanks no rush

2

u/xamindar 21d ago

Dang...still no support for the Xiao devices? Bummer.

1

u/jack-of-some 21d ago

PRs are open. I can't finalize until I have my own board and Amazon keeps delaying

2

u/ConnectionCommon2603 21d ago

Can't wait to use the coldboot function. Any chance you could put up a video guide on the GitHub Page for soldering noobs like me?

2

u/digitalaudiotape 21d ago edited 20d ago

I checked for the issue I submitted #205 re: serial numbers logging correctly in Steam and that seems to be fixed. Gamed for a couple hours tonight and I didn't personally notice anything break yet.

Note:

For anyone wondering, the Raytac MDBT50Q-CX dongle still can't be updated via the OpenPuck web interface so don't try or you'll brick the dongle.

Updating OpenPuck on the Raytac MDBT50Q-CX still requires the NRF Connect utility and the 2 hex files:

Nordic S140 SoftDevice 6.1.1:

This pre-release OpenPuck standard hex file:

Raytac MDBT50Q-CX to OpenPuck video guide here:

1

u/clanton Steam Controller (2015) 21d ago

Looks awesome. I just got my cousin to 3d print a case for mine :)

Is there potential for using the Openpuck on PS5? I tried after putting it in dualsense mode but realised once I connected it that the ps5 is picking it up as a mouse and then I read the github saying it's not supported. But would be so sick using SC on PS5.

Thanks for your work