Steam Controller auto-charge with computer vision tracking

phoronixrly1 pts0 comments

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.

controller json puck auto license steam

Related Articles