PlayStation (DualSense / DualShock 4)
Status: hardware-validated - DualSense sobre USB y Bluetooth, DualShock 4 sobre USB y Bluetooth en Windows. El DualSense Edge comparte el layout, pendiente de validación en vivo.
DualSense, DualSense Edge y DualShock 4 comparten un mismo driver. Los tres son dispositivos HID tanto por USB como por Bluetooth (el Bluetooth es HID sobre Bluetooth Classic, no BLE). Ninguno tiene magnetómetro, así que la fusión es de 6 ejes con deriva de yaw.
Hardware
Sección titulada «Hardware»| Control | IMU | Escala |
|---|---|---|
| DualSense / Edge | Bosch BMI270-class | gyro ±2000 dps (raw × 2000/32767), accel ±4 g (8192 LSB/g) |
| DualShock 4 v1/v2 | Bosch BMI055 | escala expuesta por firmware idéntica |
La identidad del chip para el DualSense es plausible según la comunidad pero no está confirmada por teardown; lo que sí es seguro es la interfaz expuesta por firmware - ±2000 dps, ±4 g, 8192 LSB/g, 16-bit con signo - en la que se apoya el driver.
Identificación (VID:PID)
Sección titulada «Identificación (VID:PID)»| VID:PID | Dispositivo |
|---|---|
054C:0CE6 |
DualSense |
054C:0DF2 |
DualSense Edge |
054C:05C4 |
DualShock 4 v1 |
054C:09CC |
DualShock 4 v2 |
Transporte y report IDs
Sección titulada «Transporte y report IDs»El driver distingue USB de Bluetooth por la longitud del input report.
| Control | USB report | Bluetooth report |
|---|---|---|
| DualSense / Edge | 0x01 (64 bytes) |
0x31 (78+ bytes, trailer CRC32) |
| DualShock 4 | 0x01 (64 bytes) |
0x11 |
Sobre Bluetooth el payload se desplaza porque el report lleva un tag byte inicial. Las escrituras de salida por Bluetooth (rumble / lightbar) deben adjuntar un CRC32 final o el control las rechaza en silencio.
Byte offsets del IMU
Sección titulada «Byte offsets del IMU»| Control / transporte | Gyro | Accel | Notas |
|---|---|---|---|
DualSense USB (0x01) |
16 | 22 | HW timestamp u32 LE en 28; botones PS/Mute en 10 |
DualSense BT (0x31) |
17 | 23 | un solo sequence-tag byte en buf[1] → USB+1; PS/Mute en 11 |
DualShock 4 USB (0x01) |
13 | 19 | byte de temperatura precede al gyro |
DualShock 4 BT (0x11) |
15 | 21 | Windows lo entrega con padding más allá de 78 bytes, así que el parser acepta cualquier longitud ≥ 78 |
Tasa de muestreo y timestamp
Sección titulada «Tasa de muestreo y timestamp»- DualSense: 250 Hz (USB y Bluetooth). Un hardware sensor timestamp de libre ejecución (u32 en el offset USB 28, incrementando a 1/3 µs) impulsa el timestep de fusión con precisión, inmune al jitter de Bluetooth.
- DualSense Edge: 1000 Hz sobre USB (sondeo más rápido del mismo paquete).
- DualShock 4: 250 Hz; sobre Bluetooth el host puede fijar el intervalo de sondeo vía el output report (hasta 1 ms). No se decodifica ningún hardware timestamp, así que la estimación de tasa de entrega impulsa el timestep.
Calibración
Sección titulada «Calibración»Los offsets/escalas de gyro y accel por unidad vienen de un HID feature report, y se aplican antes de la fusión:
- DualSense: feature report
0x05(41 bytes). - DualShock 4: según el transporte -
0x02sobre USB,0x05sobre Bluetooth.
Características
Sección titulada «Características»Gyro / accel / batería, recentrado con el botón PS y el lightbar RGB están cableados. El DualSense Edge comparte el layout de report del DualSense y se detecta como un tipo distinto por PID.
Gestos de reset
Sección titulada «Gestos de reset»El botón PS (con los botones Mute/Create en el mismo byte) dispara el recentrado.
Peculiaridades
Sección titulada «Peculiaridades»- Steam Input puede tomar un DualSense en exclusiva. Cierra Steam o desactiva Steam Input / el soporte de controles PlayStation para el pad, o el bridge no puede abrirlo.
- Sin magnetómetro, el yaw deriva - vuelve a hacer re-yaw mirando al frente o usa Reset Mounting.
- Un warm-up estacionario de ~200 ms deja que el estimador de rest-bias converja sobre el gyro BMI270-class antes de que el tracking se estabilice.