DualSense / DualSense Edge IMU Dashboard

WebHID controller telemetry • raw and processed 6-axis motion data
Not connected

Controller

Model
VID:PID
Transport
Input rate
0 Hz

JoyShockMapper configuration

Config
Not loaded
Gyro sensitivity
Threshold range
Acceleration
RWC / In-game sens
GYRO_OFF
Not configured
Load a JoyShockMapper config to apply its gyro sensitivity curve and acceleration modifiers to the live IMU stream.

FPS-perspective gyro turn heatmap

GYRO ON
Turn angle distribution
0 completed turns
No completed turns yet.

Each completed gyro camera movement is integrated into an in-game turn and counted here. Distance from the center is the in-game turn angle (degrees); direction shows FPS camera movement direction. JoyShockMapper REAL_WORLD_CALIBRATION and IN_GAME_SENS are applied through the mouse-to-camera conversion. The default radial scale is 0–100° and expands dynamically in 50° steps when a larger turn is recorded. The distribution uses 5° bins below 50° (0–5°, 5–10°, …, 45–50°), then progressively wider bins for larger angle ranges. GYRO_OFF movements are excluded.

Raw vs JoyShockMapper-processed angular velocity

Angular acceleration magnitude

Time spent at each effective sensitivity

This histogram is time-weighted: each IMU sample contributes its elapsed time to the effective sensitivity bucket, so it shows where the player actually spends time rather than simply counting samples.

Effective sensitivity over time

Aiming profile

Completed turns
0
Median turn
0.0°
90th percentile turn
0.0°
95th percentile turn
0.0°
Maximum turn
0.0°
Left / right
0.0% / 0.0%
Median angular velocity
0.0 °/s
90th percentile velocity
0.0 °/s
95th percentile velocity
0.0 °/s
Peak velocity
0.0 °/s
Median effective sensitivity
1.00×
90th percentile sensitivity
1.00×

Play a session to build an aiming profile. GYRO_OFF samples are excluded from the velocity/sensitivity statistics and completed-turn analysis.

Raw gyro

X
0.00
deg/s
Y
0.00
deg/s
Z
0.00
deg/s

Processed gyro

X
0.00
deg/s
Y
0.00
deg/s
Z
0.00
deg/s

Angular motion

Velocity magnitude
0.00
deg/s
Angular acceleration
0.00
deg/s²
Peak velocity
0.00
deg/s
Peak acceleration
0.00
deg/s²

Accelerometer

X
0.000
g
Y
0.000
g
Z
0.000
g
Magnitude
0.000
g

Orientation from gravity

Pitch
0.00
deg
Roll
0.00
deg

Session

Samples
0
Last dt
0.0
ms
CSV rows
0
Calibrated
No
Debug: DualSense initialization & factory calibration

DualSense initialization & factory calibration

Feature 0x05
Not read
Calibration bytes
Firmware 0x20
Not read
Update version
Gyro X scale
Gyro Y scale
Gyro Z scale
Accel ranges
The app reads feature report 0x05 and applies its factory gyro/accelerometer normalization to the live stream. Feature report 0x20 is also read for the controller update version.
AxisGyro biasGyro +Gyro −Gyro denominatorAccel +Accel −Accel biasAccel range
Connect a controller to read its factory calibration.
Debug: HID report analyzer

HID report analyzer

Last report ID
Payload length
Report rate
0 Hz
Captured reports
0
BT CRC32
Observed report IDs
The analyzer examines the actual WebHID payload delivered by the browser. It reports byte offsets, signed 16-bit LE activity, and likely motion fields.
Latest HID payload (WebHID report ID is shown separately)
Connect a controller to see raw reports.
Most active signed-16-bit little-endian fields
OffsetMeanMinMaxΔ RMSRangeAs °/s @1024Action
Move the controller after connecting. Candidate fields will appear here.
Active gyro offset
standard
Active accel offset
standard
Gyro scale
1024 counts/°/s
Accel scale
8192 counts/g

A candidate is only a statistical hint: acceleration, buttons, timestamps and other HID fields can also move. Use the analyzer while physically rotating the controller and compare the three adjacent 16-bit fields. “Use as gyro” changes the live parser for testing and can be reset.

Processing settings

The controller's raw IMU values are decoded from the DualSense HID reports. Factory sensor calibration from feature report 0x05 is applied before user deadzone/filter/JoyShockMapper processing; “Calibrate gyro” adds a user bias offset while the controller is stationary. A JoyShockMapper config can be loaded locally; the parser understands GYRO_SENS, MIN/MAX_GYRO_SENS, MIN/MAX_GYRO_THRESHOLD, GYRO_CUTOFF_SPEED, GYRO_AXIS_X/Y, MOUSE_X/Y_FROM_GYRO_AXIS and common GYRO_* acceleration modifier keys. JoyShockMapper sensitivity is a multiplier, so processed camera velocity is raw angular velocity multiplied by the effective sensitivity.

Timestamped circular history buffer

TimeGXGYGZ|ω||α|AXAYAZPitchRoll

WebHID requirements

This controller mode requires a Chromium browser with WebHID support and a secure context such as HTTPS or localhost. USB is recommended for initial testing. Pair the controller with the operating system first when using Bluetooth, then press Connect DualSense. The app requests Sony DualSense (054C:0CE6) and DualSense Edge (054C:0DF2).