Skip to content
WhyKnot edited this page May 12, 2026 · 4 revisions

OpenVR-WKInputHealth

Watches every button, trigger, and thumbstick on connected SteamVR controllers for drift and degradation. Learns what "normal" looks like for each input path (rest position, full-travel range, polar coverage across thumbstick angles) and silently corrects deviations -- pulling a drifting thumbstick back to centre, remapping a trigger whose full range has shrunk. The Diagnostics tab shows what the driver is observing per input path so drift is visible before it becomes noticeable.

This repository is the release mirror for the InputHealth module of the OpenVR-Pair umbrella toolset. Every release here is the OpenVR-Pair umbrella build with enable_inputhealth.flag pre-dropped so input drift monitoring and learned compensation activate immediately on install.

Install

  • Zip drop-in: OpenVR-Pair-InputHealth-v<version>.zip from Releases; extract into the SteamVR drivers directory.
  • NSIS installer: OpenVR-Pair-v<version>-Setup.exe from the umbrella repo's Releases.

Restart SteamVR after either path.

Enable / disable

The umbrella overlay's Modules tab toggles the InputHealth row on or off; the change takes effect at the next SteamVR launch. The toggle creates or removes enable_inputhealth.flag in the driver's resources directory (an elevated PowerShell helper handles the admin-only write).

Configuration

Three tabs in the InputHealth feature:

  • Diagnostics (default) -- per-device, per-path table of observed range + a hint (drift +, weak arc?, coverage ok, ...).
  • Settings -- Rest re-center (sticks) to enable learned stick rest-offset correction; Trigger remap to enable learned trigger min / max remapping.
  • Advanced -- Observe only (suppress corrections) (driver records stats but doesn't rewrite inputs; useful when validating detection on a new device), plus two reset actions (Reset stats clears in-memory state but keeps learned curves on disk; Reset stats AND learned compensation wipes everything).

Full per-control reference is on the OpenVR-Pair wiki: Module-InputHealth page.

Troubleshooting

Logs land under %LocalAppDataLow%\OpenVR-Pair\Logs\inputhealth_log.<ts>.txt.

InputHealth driver problem banner means the IPC pipe isn't reachable -- usually SteamVR isn't running or enable_inputhealth.flag is missing. A transient Shmem: <error> line during startup is normal; it clears once the 10 Hz snapshot publisher attaches.

Learned compensation per device lives in %LocalAppDataLow%\OpenVR-Pair\profiles\inputhealth_<serial_hash>.json if you need to back up or transfer settings.

Source

Active development lives in the OpenVR-Pair monorepo at modules/inputhealth/. Pre-migration history is preserved on this repo's archive-source branch.

Open issues and contributions at OpenVR-WKPairDriver/issues.

Clone this wiki locally