Modder turns controller haptics into stereo speakers
Valve’s second-generation Steam Controller is more than just a piece of input hardware; it’s an open canvas for creativity. By embracing an open approach to its hardware, Valve has opened the door for modders and enthusiasts to push the boundaries of what these controllers can do, turning simple haptic motors into a playground for advanced engineering.
Long before custom projects took hold, tinkerers were already exploring the controller’s capabilities. They experimented with the internal vibration motors, leveraging them not just for tactile feedback but as actuators to move the device across surfaces or even facilitate automatic charging. Some enthusiasts even reverse-engineered the puck design to create open-source controllers that could emulate other platforms like Nintendo and Xbox.
The hardware itself is designed to deliver sensory input, with two linear actuators beneath each trackpad vibrating to provide haptic feedback. This foundation sets the stage for a fascinating evolution: transforming those subtle vibrations into audible sound.
While Valve keeps its secrets close—hinting at an old easter egg involving Wilhelm screams when dropped from certain heights—the true potential lies in treating the motors as pure audio generators. A brilliant project by Pixel1011 has taken this concept further, developing the Steam Haptics Player, a system that converts those internal motors into a stereo speaker capable of playing music.
How does this magic happen? The solution involves diving deep into the controller’s communication protocols. Pixel1011 discovered that the haptic motors can be targeted directly using low-level HID (Human Interface Device) feature commands via HIDAPI. This bypasses standard software like Steam Input, allowing for a direct path from audio data to the physical components.
The process is a masterclass in compression and transmission. To achieve this, the player takes an audio file, processes it through FFmpeg to split the stream into chunks of PCM data, and sends these packets directly to the controller. The motors then translate this raw data into vibrations, producing sound.
Naturally, bandwidth presents a challenge, especially when attempting wireless transmission. Since the puck is not designed to carry audio signals over its radio connection, the audio must be compressed. This places limits on the achievable quality: 8-bit 8kHz (μ-law) for wireless operation, or 16-bit 8kHz PCM for wired connections.
Despite these bandwidth constraints, the resulting audio is surprisingly robust. The 16-bit transmission manages to produce a loud and balanced result that tricks the ear into believing the sound is coming from a proper speaker. While wireless performance inevitably introduces crackles and pops due to the limitations of the limited data stream, the sheer feasibility of this hack remains impressive.
The results speak for themselves. When tested with tracks like Want You Gone from the Portal 2 credits, the setup delivers a genuinely rich low-end that you wouldn’t expect from such a DIY arrangement. While battery life remains an unknown variable, the fact that users can experiment by downloading the archive and running the program shows just how far hardware innovation can push the limits of digital sound.