nRF52840 Steam Controller 2 puck reimplementation — WebUSB. Chrome/Edge only.
If nothing appears in the device picker, OpenPuck may be busy, already claimed by another app, or needs a replug. This page also works when published through GitHub Pages because WebUSB only requires a secure context.
Switching reboots OpenPuck and re-enumerates USB (~2 s). The RF link reconnects automatically.
Microseconds between RF polls (×100). Lower = poll harder = more fresh reports/s (peaks ~60/s near 700 µs). Too aggressive can collapse the reply rate during heavy trackpad use — watch the “New reports” stat and trackpad feel as you tune.
We were sending ~400 stale-repeat reports/s on top of ~100 real ones — Steam's trackpad smoothing stair-steps on the duplicates. ON = dedupe (puck-like). Toggle OFF to compare the old jittery behavior.
Candidates {18,46,76,22,68}. Conservative (hops at most every ~2s) to avoid blip-storms; each hop has a brief ~0.5–1s re-sync blip. A/B it during heavy trackpad — watch crcfail and the feel.
Sensitivity is a divisor — lower = faster pointer. Glide = how long the cursor coasts after a flick.
Interpolation alpha. 100 = off (raw 46 Hz capsense), lower = smoother but slightly laggier.
Back-paddle → button, applied in Xbox mode.