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
Tracking the technical hurdle for getting the 2026 Steam Controller working in the lab. Valve's official integration path is Steam Input, but we want raw WebHID access so the controller works in the overlay without requiring Steam to be running.
What we know
Valve USB vendor ID: 0x28de
2026 Steam Controller product ID: TBD — needs capture from a real device. Original 2015 Steam Controller was 0x1102 (USB) / 0x1142 (wireless dongle); Steam Deck's embedded controller is 0x1205. The 2026 device is likely a new pid.
Driver stub already in repo: packages/core/src/drivers/steam-controller-driver.js — currently identity-only, no protocol parsing.
Pending DEVICES entry: PENDING_DEVICES['Steam Controller 2026'] in devices.js waits for the captured pid to be promoted to DEVICES.
What we don't know
Whether the controller is exposed to WebHID at all when Steam is running (Steam Input typically grabs exclusive HID access).
Whether the new device speaks Valve's Steam Input HID protocol (custom binary, well-documented for the 2015 Steam Controller) or something else.
Whether the Gamepad API sees it natively in any mode (without Steam Input, Chromium probably doesn't have a built-in mapping for the Valve layout).
The product-id under each operating mode (the controller may have multiple modes — Steam Input mode, BLE mode, dongle, etc.).
Approach options
Field a Test Report capture (current ask): open the overlay with the controller plugged in, run the Test Report wizard if it triggers, or capture the raw HID input reports via a one-off DevTools console probe. Goal: learn the vid:pid + report shape.
Reuse the 2015 Steam Controller HID protocol as a starting point if the 2026 device shares the layout. Linux kernel has hid-steam.c as a reference; community documentation at https://gitlab.com/open-source-devices/steam-controller.
Steam-running compatibility: document whether the user needs to kill Steam / disable Steam Input gamepad detection for the lab to see the device. May not be solvable from our side.
BLE mode: 2026 device supports Bluetooth — BLE-GATT exposure may differ from USB HID; needs separate investigation.
Acceptance criteria
Captured a Test Report (or raw HID dump) for the Steam Controller in a real plug-in scenario
vid:pid documented in PENDING_DEVICES comment + promoted to DEVICES once verified
SteamControllerDriver stub extended with at least button/stick parsing from the 2015-style protocol (if applicable) or a documented "identity-only, Gamepad-API for everything" decision
Docs note in ADDING-A-CONTROLLER.md covering the Steam Input coexistence story
Tracking the technical hurdle for getting the 2026 Steam Controller working in the lab. Valve's official integration path is Steam Input, but we want raw WebHID access so the controller works in the overlay without requiring Steam to be running.
What we know
0x28de0x1102(USB) /0x1142(wireless dongle); Steam Deck's embedded controller is0x1205. The 2026 device is likely a new pid.gitlab.steamos.cloud/SteamHardware/SteamController(CC BY-NC-SA 4.0). GLB conversion + visualizer profile shipped in PR Steam Controller 2026 visualizer (Valve CAD → optimized GLB) #6 (steam-controller.glb, body-only).packages/core/src/drivers/steam-controller-driver.js— currently identity-only, no protocol parsing.PENDING_DEVICES['Steam Controller 2026']indevices.jswaits for the captured pid to be promoted toDEVICES.What we don't know
Approach options
hid-steam.cas a reference; community documentation at https://gitlab.com/open-source-devices/steam-controller.Acceptance criteria
PENDING_DEVICEScomment + promoted toDEVICESonce verifiedSteamControllerDriverstub extended with at least button/stick parsing from the 2015-style protocol (if applicable) or a documented "identity-only, Gamepad-API for everything" decisionADDING-A-CONTROLLER.mdcovering the Steam Input coexistence story