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
offset 16 → gyro ≈ 0 at rest, accel magnitude ≈ 8090 (≈ 1g), gravity cleanly on one axis
If the in-game verification (sibling issue) still shows side-to-side / wrong orientation with offset=16 correct, then the bug is not in offset/parsing — it is downstream in sensor fusion: per-axis sign convention, axis remapping, or scale that differs between the BT and USB paths. This issue defines that investigation so it's ready to pick up if verification escalates.
Scope
Diff the BT vs USB path from raw IMU → fused quaternion:
In packages/core/src/drivers/playstation-driver.js: how gyro/accel axes (and signs) are emitted for 0x31/0x11 (BT) vs 0x01 (USB). Confirm both transports hand fusion the same axis convention (the report layouts differ by baseOffset, but the decoded x/y/z order + signs must match).
In the fusion consumer (app.js gyro pipeline / fusion module): confirm no transport-conditional axis handling.
If a BT/USB divergence is found, fix it and add a fusion-level assertion using the macOS-BT fixture (see fixture sibling issue): a known tilt produces the expected quaternion on both transports.
Acceptance
Documented BT-vs-USB axis/sign/scale comparison from raw IMU to fused quaternion.
Either: a confirmed divergence + fix + cross-transport fusion test, or a written rule-out (axis mapping is identical; residual symptom lies elsewhere).
No regression for DS4 BT or DualSense USB.
Note
Open this for work only if the in-game verification escalates; otherwise it stands as the documented rule-out path for #83.
Type: Investigation (contingency) · Parent: #83 · Blocked-on: in-game verification sibling issue
Why
Hardware + console testing for #83 (branch
claude/issue-83-macos-bt-imu-offset) shows the DualSense BT0x31IMU is parsed correctly on macOS:event.data.byteLength = 77→ no report-ID-byte shift (the macOS WebHID: DualSense Bluetooth gyro fusion produces wrong orientation (USB-vs-BT report layout) #83 sub-hypothesis is disproven on this hardware)If the in-game verification (sibling issue) still shows side-to-side / wrong orientation with
offset=16correct, then the bug is not in offset/parsing — it is downstream in sensor fusion: per-axis sign convention, axis remapping, or scale that differs between the BT and USB paths. This issue defines that investigation so it's ready to pick up if verification escalates.Scope
packages/core/src/drivers/playstation-driver.js: how gyro/accel axes (and signs) are emitted for0x31/0x11(BT) vs0x01(USB). Confirm both transports hand fusion the same axis convention (the report layouts differ bybaseOffset, but the decoded x/y/z order + signs must match).Acceptance
Note
Open this for work only if the in-game verification escalates; otherwise it stands as the documented rule-out path for #83.