DIY OpenPuck adds Xbox, Switch and PlayStation modes to Steam Controller

OpenPuck turns an $8 board into a multi-mode Steam Controller receiver

A community developer has reverse-engineered the Steam Controller 2 wireless protocol and released an open-source replacement for Valve’s receiver. OpenPuck runs on a Pro Micro NRF52840 microcontroller board, which is available for around $8.

Once flashed with the custom firmware, the board can pair with the Steam Controller through its proprietary 2.4 GHz connection. The project’s developer says community testing measured latency within 1 ms of Valve’s official puck. Valve does not currently sell the original puck separately.

OpenPuck adds several controller modes

Users can change modes by holding the controller’s four rear buttons and pressing one of the face buttons. The available options include the standard Steam Controller mode, an independent Lizard mode, Xbox 360 emulation and Nintendo Switch Pro Controller emulation with gyro and haptic feedback.

Source: OpenPuck

OpenPuck also supports DualSense and DualShock 4 modes with gyro and trackpad inputs. However, these two modes are currently listed as PC-only. The developer has only confirmed the Switch and PS3 modes on real console hardware, so claims of full Xbox and PlayStation 5 console support remain unverified.

Source: OpenPuck

The receiver handles input translation itself, which allows the controller to operate without Steam Input. This may be useful for Game Pass titles, administrative Windows prompts and other applications where the normal Steam Controller features are unavailable. A browser-based WebUSB configurator can change modes, remap the four rear buttons and transfer settings between multiple OpenPuck receivers.

The DIY version does not include the charging contacts found on Valve’s puck. The controller must instead be charged through its USB-C port. Several 3D-printable enclosures are already available, while charging hardware remains listed as possible future work.

Jack of Some : OpenPuck for Steam Controller 2 Intro 693 views

Source: OpenPuck (Github)