DualShock 3 / SIXAXIS
Status: experimental, USB-first. No recomendado como tracker serio.
El DualShock 3 lleva un acelerómetro de 3 ejes pero solo un giroscopio de un eje (yaw) y sin magnetómetro. Con un solo eje de gyro no hay forma de integrar la orientación 3D completa - el pitch y el roll vienen únicamente del ruidoso vector de gravedad, y el yaw no tiene referencia libre de deriva. Es equivalente en fusión a un Wii Remote pelado: orientación por gravedad del acelerómetro más un yaw de un solo eje en el mejor de los casos.
Identificación (VID:PID)
Sección titulada «Identificación (VID:PID)»054C:0268. El acelerómetro es una parte de 3 ejes clase Kionix; el gyro es una
parte de un solo eje yaw; no hay magnetómetro.
Transporte y activación
Sección titulada «Transporte y activación»El DualShock 3 no transmite entrada hasta que se le indica.
- USB: envía un HID SET_REPORT (Feature), report id
0xF4, payload42 0C 00 00. El input report0x01(49 bytes) luego transmite de forma continua. - Bluetooth: escribe la MAC del host en el feature report
0xF5, luego activa con SET_REPORT0xF4payload42 03 00 00. El input llega como report0x01.
Input report 0x01 (USB, 49 bytes)
Sección titulada «Input report 0x01 (USB, 49 bytes)»Los offsets son dentro del report incluyendo el id inicial 0x01. Las cuatro palabras
de movimiento llegan MSB-first (big-endian), 10-bit - haz byte-swap antes de usarlas.
| Offset | Tamaño | Campo |
|---|---|---|
0x00 |
1 | Report id 0x01 |
0x02-0x04 |
3 | Botones |
0x06 |
2 | Stick izquierdo X/Y |
0x08 |
2 | Stick derecho X/Y |
0x0E-0x19 |
12 | Presión por botón |
0x29 |
2 | Accel X (u16 BE, 10-bit) |
0x2B |
2 | Accel Y |
0x2D |
2 | Accel Z |
0x2F |
2 | Gyro Z (el único eje de gyro) |
Escala (aproximada - necesita confirmación en hardware)
Sección titulada «Escala (aproximada - necesita confirmación en hardware)»- Accel: cero ≈
512, ≈ 113 LSB/g →g = (raw − 512) / 113, luego × 9.80665. - Gyro (solo yaw): centrado ≈
512; la escala está mal especificada y depende de la revisión (~123 LSB por rad/s como estimación inicial), así que debe calibrarse por unidad o dejarse en el mejor de los casos.
Alimenta a la fusión el accel de 3 ejes más el único eje de gyro yaw, con los otros dos ejes de gyro en cero. Espera deriva de yaw sin restricción; recentra con frecuencia con Reset Yaw (botón PS). La UI muestra una advertencia clara de “experimental, espera deriva”.
Gestos de reset
Sección titulada «Gestos de reset»| Gesto | Acción |
|---|---|
| Botón PS (corto) | Reset Yaw |
| Botón PS (mantener ≥1 s) | Reset Full |
- En Windows el driver de fábrica puede no exponer la interfaz HID en crudo; a veces se necesita un driver de filtro/libusb.
- La escala del gyro depende de la revisión - ninguna constante única se trata como verdad.