WiVRn #
WiVRn wirelessly connects a standalone VR headset to a Linux computer. You can then play PCVR games on the headset while processing is done on the computer.
WiVRn is based on Monado and can be used with OpenComposite to support a majority of titles available for SteamVR. A wide range of standalone headsets are supported.
We recommend using Envision to install and launch WiVRn & OpenComposite. Envision will handle all configuration seamlessly and avoids many of the pitfalls of a manual setup.
Wired WiVRn #
Use WiVRn with a cable instead of Wifi. Use a 5Gbps cable & port at the very least.
WiVRn version: 0.19+
Using Envision:
- Connect the headset via USB
- Click the
Start WiVRn Client (Wired)
button in Envision.- If it’s not there, an Envision update might be necessary.
Manual steps:
- Connect the headset via USB
- If WiVRn is running on the headset, close it now.
- While in the system lobby of the headset, run the following
adb
commands on the PC:adb reverse tcp:9757 tcp:9757 adb shell am start -a android.intent.action.VIEW -d "wivrn+tcp://127.0.0.1" org.meumeu.wivrn
WiVRn + Lighthouse driver #
This section covers using WiVRn with any lighthouse-tracked device: Index/Vive controllers, Vive/Tundra trackers, etc.
WiVRn version: 0.19+
Have SteamVR installed (no need to run it).
In Envision, set WiVRn Profile as such:
- XR Service CMake Flags:
WIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON
- Environment Variables:
WIVRN_USE_STEAMVR_LH=1
LH_DISCOVER_WAIT_MS=6000
Perform a Clean Build after changing the CMake flags!
If not using Envision, simply pass -DWIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON
to cmake and export the env variables before starting wivrn-server
.
Motoc will be used to calibrate the two tracking technologies to work together.
Discovery happens only on first connection, so be sure to have all lighthouse devices powered on and in line of sight of base stations before connecting the headset!
Once a device is discovered, it may be powered off and then back on later.
Once video appears in the headset, check motoc monitor
to make sure your devices all show up.
If one or more devices are missing, try:
- Spread the devices out more; lighthouse devices get discovered quicker if they’re not piled up on each other. Simply strapping them on is good, too.
- Increase
LH_DISCOVER_WAIT_MS
, though this delays the client on first connection.
To re-discover devices, restart WiVRn server.
At this point, your lighthouse devices will be randomly floating about somewhere. To calibrate them, follow the guide in the Motoc README.
[Experimental] WiVRn + SlimeVR trackers #
This section covers using WiVRn with SlimeVR trackers (not via OSC). Tracking fidelity is reported to be similar to what’s achievable with the SteamVR-native solution.
Current state: Fully usable, but with quirks.
In Envision, set WiVRn Profile as such:
- XR Service Branch:
master
- XR Service CMake Flags:
WIVRN_FEATURE_SOLARXR=ON
Perform a Clean Build after changing these!
- Always start SlimeVR server before starting WiVRn.
- Do not quit SlimeVR server mid-session; trackers will not work until WiVRn is restarted.
- Full Reset is sensitive to direction.
- There is a direction that one needs to face towards for the full reset to work properly.
- It will take some trial and error to find this direction.
- Upstream issue: SlimeVR-Server#1159