Enthusiast reverse-engineers Steam Controller 2 puck, creates DIY 'OpenPuck' that works without Steam Input — custom firmware can emulate Nintendo, PlayStation, and Xbox controllers
Turn your Steam Controller into something much more powerful.
Valve's new Steam Controller lacks native XInput support, but you can still emulate it as long as Steam is running in the background. An enthusiast named Safijari has just engineered a more seamless solution, creating his own DIY "OpenPuck" that lets the Steam Controller emulate other gamepads on the fly. It can emulate Xbox, PlayStation, and even Nintendo layouts, and do so away from your PC.
OpenPuck serves as open-source firmware for a microcontroller, allowing you to easily flash and convert that dev board into a DIY Steam Controller puck. The firmware intercepts raw data from the Steam Controller and translates it on-device, enabling fully-fledged, real-time emulation without the need for Steam Input.
There are other options out there, but the creator used a Pro Micro NRF52480 from Amazon that has the appropriate Bluetooth and 2.4 GHz radios. Once primed in DFU mode, all you need to do is plug the board into your computer via USB-C, drag and drop the Arduino sketch onto it, and the microcontroller turns into an OpenPuck right away. You can 3D print a case to make the assembly look more polished, too.
The sketch is available on the project's GitHub page. Once you've flashed your controller, head to the configurator to manage the puck. It's a simple website that uses the WebUSB API to manage the controller, allowing you to switch between the different modes, which include Switch Pro, Xbox, DualSense (PS5), and DualShock 4 (PS4). The project description claims the puck only has a 1ms latency.
The Switch mode works natively on a Switch console with gyro and haptics support, but you can also emulate a Hori Pad that disables those extra features. The PlayStation modes only work on PC, but there's a special DualShock 3 mode that can work natively on a PlayStation 3 console as well, with gyro and haptics (Sixaxis). Of course, the default Steam Controller mode is also there.
You can switch between some of these different controller modes by pressing all four back buttons together and hitting either A, B, X, or Y, but the PlayStation modes require you to use the web configurator. Once everything is set up, however, the Steam Controller runs just like an official Switch, Xbox, or PlayStation controller without Steam even being open in the background.
There's even a bonus "ReversePuck" sub-project that allows a Steam Deck to act as an external controller, supporting all of the Steam Controller's features (except grip). If you flash a second NRF52840 Pro Micro and plug it into a Steam Deck, you can stream the Steam Deck's built-in controls across the room over 2.4GHz to your OpenPuck-equipped PC, giving you access to essentially another Steam Controller.
Get Tom's Hardware's best news and in-depth reviews, straight to your inbox.
Follow Tom's Hardware on Google News, or add us as a preferred source, to get our latest news, analysis, & reviews in your feeds.

Hassam Nasir is a die-hard hardware enthusiast with years of experience as a tech editor and writer, focusing on detailed CPU comparisons and general hardware news. When he’s not working, you’ll find him bending tubes for his ever-evolving custom water-loop gaming rig or benchmarking the latest CPUs and GPUs just for fun.
-
edzieba That's great! Having a peripheral device's operation tied to a shop application is unacceptable, no matter which corporation owns the shop.Reply -
mcmx77 Reply
They made it, they get to choose what to do with it.edzieba said:That's great! Having a peripheral device's operation tied to a shop application is unacceptable, no matter which corporation owns the shop. -
sarge1892 Reply
The reason it's not compatible is steam input is not some random controller spec it's specifically built for pc games and calls on hooks direct into the game that only steam input can make use ofedzieba said:That's great! Having a peripheral device's operation tied to a shop application is unacceptable, no matter which corporation owns the shop.
Xinput meanwhile from ms only sends forward controller input and leaves the game to handle what that does
Steam input sends game controll instructions and it manages how the controller hooks into those
Finally whilst cool a steam controller on any other system is kinda useless all of the custom inputs like touchpads and capacitive sensors are not supported by anything
It's cool it can be done but this wasn't like Sony making up a custom spec just to be proprietary
Valve created the spec because it fundamentally works different than how every other controller ever works -
thestryker Reply
You wrote an awful lot of words while ignoring a very simple fact: Literally nothing stopped Valve from implementing an Xinput fallback mode other than choosing not to. This choice doesn't benefit anyone except for Valve.sarge1892 said:Valve created the spec because it fundamentally works different than how every other controller ever works -
edzieba Reply
That makes it worse, not better. Tying something as fundamental as input handling to a shop is utterly ludicrous.sarge1892 said:The reason it's not compatible is steam input is not some random controller spec it's specifically built for pc games and calls on hooks direct into the game that only steam input can make use of
USB HID is universal (and already supports the pedestrian selection of input devices on the Steam Controller). DirectInput is universal under Windows (albeit legacy), and OpenXR is universal across OSes, and its input API can be implemented independently of any display output - and if you for some reason want to configure input mapping in some third application rather than in game you can do that with OpenXR.
If Valve chose to implement SteamInput in addition to one of the many choices of open standard, that would be one thing. But instead they choose to be proprietary-only.