Breakdown of the PlayStation VR communication protocols for programmers.
This Wiki is hosted on the web at dylanmckay.io/psvr-protocol/. This site automatically tracks the master branch.
This wiki is an attempt to collect all available and useful information for developing programs that interact with the PSVR.
As the protocol itself is not officially documented, all information collected is the result of reverse engineering.
This means that much of the terminology used will vary across sources, such as the names of commands and fields.
The goal of this project is to be the canonical reference for all things related to PSVR hacking.
Contributions and modifications to this repository are strongly encouraged! Information for contributors can be found here.
OpenHMD, A C library for interfacing with PSVR, Vive, and Oculus headsets, among others. The library extracts away details about the specific headset. Has bindings for many languages. The code for PSVR driver lives here.
The PSVR comes with two main components - the actual headset, and a small processing unit that handles most of the logic. These two parts are required - the headset cannot function without the box.
This device sits in-between the headset and the computer.
Credit to Agustín Bernad on GitHub for calculating the lens properties here.
There are two connections that need to be established.
First, a USB connection must be made with the PSVR processing unit. The processing unit itself acts as a USB HID device to the host computer.
The PSVR will not display any video unless the correct initialisation commands are sent via USB.
Secondly, an HDMI connection must be established with the processing unit. Depending on the display mode, barrel distortion may need to be applied to the image in order to correct for the curvature of the lens.