You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Controller] Steam Controller 2015 - USB wire (Virtual) #1
What happened / what did you expect? (for problems)
InputLab is reporting (no matter what) that the controller is only sending 16Hz of state change information. On the Live preview, you can actually see how sharp are the lines connecting the position points. When rotating the input fast enough, you can almost draw a square.
I've mentioned the result on steam forums: https://steamcommunity.com/app/353370/discussions/0/523897653313164078/
Thanks for the report and the export, that helps a lot.
What InputLab measured is real, but it is probably not your Steam Controller itself:
The run used "All controllers" over Raw Input HID, not your pad. 65 reports/s arrived, but 75 % changed nothing; the state changed about 16 times per second.
The reports come in tight bundles every 63.9 ms. 62.5 ms is exactly 4 ticks of Windows' default 15.6 ms timer: the fingerprint of a program that feeds a virtual controller with a ~50 ms sleep. With Steam, ViGEmBus and HidHide installed, that is most likely Steam Input's virtual pad (InputLab isn't a Steam game, so Steam may treat it as desktop) or another tool feeding a virtual device; HidHide may also hide the physical controller from InputLab.
The run itself was flagged invalid (too few samples, 125 Hz target vs ~16 Hz measured, sticks covered too little of their range).
Could you try:
Pick your controller in the device picker instead of "All controllers" and paste its line here.
Run once with the XInput backend, and once with InputLab added to Steam as a non-Steam game and started from Steam.
Check HidHide's settings and whether another tool (DS4Windows etc.) feeds ViGEm.
If the controller still shows ~16 Hz with Steam's game configuration active, that would point at Steam Input's virtual pad itself.
HidHide is installed, but device hiding is disabled on my machine. The service does not start with OS, so it does not affect InputLab.
I don't know what you mean "Run with XInput backend". The only way I know how to make the Steam controller work with a game, is to use their controller API and for it to work, InputLab has to be added to Steam as a non-Steam game.
I've not noticed that in "Live" view, the Raw / XInput / WGI are buttons. But... changing them only shows different values in the Live view, does not change what the Basic/Advanced reports read
In the advanced test I've ticked "Cross-check with X-Input", but there is no immediate change.
What you picked is Steam's virtual pad, and that is the only controller InputLab can see on your PC. "Valve Steam
Virtual Gamepad" (28DE:11FF) is the Xbox 360 pad Steam Input creates. The Steam Controller itself never appears as a
gamepad to Windows: it shows up as a keyboard, a mouse and a vendor-specific HID interface that only Steam reads. So my
"pick the physical controller" was not possible for you, sorry. "Run with the XInput backend" was wrong wording too:
the measurement always runs on Raw Input HID; the Raw / XInput / WGI chips only switch the live view, exactly as you saw.
The "Cross-check with XInput" box you ticked is the XInput measurement, and it is the interesting part of your export.
Two paths, two very different rates, same run:
HID path of the virtual pad (what the score reads): 666 reports in 10 s, arriving in bundles of 4–5 every 64.0 ms
(very regular: p99 64.03 ms, max 64.05 ms). About one report per bundle carries a change: 15.7 changes/s. That is
the 16 Hz.
XInput path of the same virtual pad (the cross-check): 1,205 state changes in the same run, about 125 per second.
That is the Steam Controller's rate, and it is what an XInput game gets from Steam Input.
InputLab did notice ("HID compatibility collection cadence differs from XInput … ratio 0.02 … does not deliver every
state the XInput driver sees") but kept the HID number as the headline. So: your controller and Steam Input run at
about 125 Hz. The 16 Hz is how Steam's virtual pad behaves on its HID/DirectInput side on your PC: a 64 ms timer in
that path, not your controller. Whether DirectInput games actually see it at 16 Hz I can't tell from here.
My first reply was partly wrong: 63.9 ms is not four Windows timer ticks (that would be 62.5 ms), and nothing feeds
the pad slowly: XInput shows it fed at full rate. The "sticks covered too little of their range" line was wrong as
well: you covered 62 and 64 of 72 angle bins; that gate failed on the share of changed reports, again the 16 Hz path.
Something you can check in ten seconds: on the Live page, click the "XInput" chip above the pad. The stick trace
should turn from the square into a circle.
What changes in InputLab: 1.4.0 refuses to measure a virtual pad and says so, instead of showing a misleading
16 Hz. The honest downside: for a Steam Controller that means no delivery measurement at all, because there is no
physical gamepad for InputLab to read. Measuring the XInput side of a virtual pad, the number that matters for Steam
Input users, is the next thing I'm looking at. I'll leave this issue open until then.
If you post in the Steam thread again, feel free to quote this.
Activity
moneks1106-code commentedon Oct 27, 2026
Thanks for the report and the export, that helps a lot.
What InputLab measured is real, but it is probably not your Steam Controller itself:
Could you try:
If the controller still shows ~16 Hz with Steam's game configuration active, that would point at Steam Input's virtual pad itself.
HighPriest commentedon Oct 28, 2026
HidHide is installed, but device hiding is disabled on my machine. The service does not start with OS, so it does not affect InputLab.
I don't know what you mean "Run with XInput backend". The only way I know how to make the Steam controller work with a game, is to use their controller API and for it to work, InputLab has to be added to Steam as a non-Steam game.
I've not noticed that in "Live" view, the Raw / XInput / WGI are buttons. But... changing them only shows different values in the Live view, does not change what the Basic/Advanced reports read
In the advanced test I've ticked "Cross-check with X-Input", but there is no immediate change.
inputlab_run_20261028_162313.md
.
moneks1106-code commentedon Oct 28, 2026
Thanks for the second run, that one answers it.
What you picked is Steam's virtual pad, and that is the only controller InputLab can see on your PC. "Valve Steam
Virtual Gamepad" (28DE:11FF) is the Xbox 360 pad Steam Input creates. The Steam Controller itself never appears as a
gamepad to Windows: it shows up as a keyboard, a mouse and a vendor-specific HID interface that only Steam reads. So my
"pick the physical controller" was not possible for you, sorry. "Run with the XInput backend" was wrong wording too:
the measurement always runs on Raw Input HID; the Raw / XInput / WGI chips only switch the live view, exactly as you saw.
The "Cross-check with XInput" box you ticked is the XInput measurement, and it is the interesting part of your export.
Two paths, two very different rates, same run:
(very regular: p99 64.03 ms, max 64.05 ms). About one report per bundle carries a change: 15.7 changes/s. That is
the 16 Hz.
That is the Steam Controller's rate, and it is what an XInput game gets from Steam Input.
InputLab did notice ("HID compatibility collection cadence differs from XInput … ratio 0.02 … does not deliver every
state the XInput driver sees") but kept the HID number as the headline. So: your controller and Steam Input run at
about 125 Hz. The 16 Hz is how Steam's virtual pad behaves on its HID/DirectInput side on your PC: a 64 ms timer in
that path, not your controller. Whether DirectInput games actually see it at 16 Hz I can't tell from here.
My first reply was partly wrong: 63.9 ms is not four Windows timer ticks (that would be 62.5 ms), and nothing feeds
the pad slowly: XInput shows it fed at full rate. The "sticks covered too little of their range" line was wrong as
well: you covered 62 and 64 of 72 angle bins; that gate failed on the share of changed reports, again the 16 Hz path.
Something you can check in ten seconds: on the Live page, click the "XInput" chip above the pad. The stick trace
should turn from the square into a circle.
What changes in InputLab: 1.4.0 refuses to measure a virtual pad and says so, instead of showing a misleading
16 Hz. The honest downside: for a Steam Controller that means no delivery measurement at all, because there is no
physical gamepad for InputLab to read. Measuring the XInput side of a virtual pad, the number that matters for Steam
Input users, is the next thing I'm looking at. I'll leave this issue open until then.
If you post in the Steam thread again, feel free to quote this.