GitHub - FossPrime/Steam-Controller-Auto-Charge: Slam the controller into the magnetic puck until it charges · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
FossPrime
Steam-Controller-Auto-Charge
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star<br>98
master
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>3 Commits<br>3 Commits
.github/workflows
.github/workflows
public
public
src
src
.gitignore
.gitignore
AGENTS.md
AGENTS.md
LICENSE
LICENSE
README.md
README.md
controller.png
controller.png
index.html
index.html
package-lock.json
package-lock.json
package.json
package.json
puck.png
puck.png
test_vision.py
test_vision.py
triton_2026_steam_controller_spec.md
triton_2026_steam_controller_spec.md
tsconfig.app.json
tsconfig.app.json
tsconfig.json
tsconfig.json
tsconfig.node.json
tsconfig.node.json
vite.config.ts
vite.config.ts
View all files
Repository files navigation
Triton Auto-Charge Vision Tracker
Triton Auto-Charge Vision Tracker is an open-source web application designed to automatically pilot a Triton (2026 Steam Controller) into its magnetic charging puck using optical flow computer vision and WebHID telemetry.
Features
Optical Flow Tracking: Utilizes OpenCV.js to track user-selected points on the controller and the charging puck via an overhead camera.
WebHID Telemetry & Haptic Navigation: Connects to the Triton Controller natively via WebHID, streaming input and telemetry (Report 67). Navigates the controller towards the puck by firing 70Hz asymmetric haptic pulses through the internal dual Linear Resonant Actuators (LRAs).
Proximity Creep Mode: Automatically cuts haptic pulse frequency by 50% when the controller is within 150 pixels of the puck to ensure a gentle magnetic dock.
Battery Status Polling: Intercepts Report ID 121 (0x79) to confirm successful magnetic charging, and parses Report ID 67 (0x43) to display live battery percentage and battery cell voltage (mV).
Auto-Memory: Leverages localStorage to remember the precise pixel points on your desk for immediate tracking on subsequent launches.
Setup
Position an overhead webcam looking down at your desk.
Ensure you are using a Chromium-based browser supporting the WebHID API.
Install dependencies and run the development server:
npm install<br>npm run dev
Click "Connect Steam Controller" and authorize the device prompt.
Click the physical Charging Puck, the front of the controller, and the back of the controller on the video feed to begin autonomous tracking.
Architecture
App.vue: Vue 3 application logic handling camera streams, UI reactivity, PID tracking loop, and OpenCV.js Lucas-Kanade optical flow (calcOpticalFlowPyrLK).
steamController.ts: WebHID abstraction class mapping standard API calls to the Triton Controller's specific byte payloads for LRA pulses and battery status polling.
License
This project is licensed under the MIT License - see the LICENSE file for details.
About
Slam the controller into the magnetic puck until it charges
fossprime.github.io/Steam-Controller-Auto-Charge/
Resources
Readme
License
MIT license
Uh oh!
There was an error while loading. Please reload this page.
Activity
Stars
98<br>stars
Watchers
watching
Forks
forks
Report repository
Contributors
Uh oh!
There was an error while loading. Please reload this page.
Languages
JavaScript<br>73.3%
Vue<br>14.7%
TypeScript<br>5.3%
CSS<br>4.7%
HTML<br>1.9%
Python<br>0.1%
You can’t perform that action at this time.