Ir al contenido

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.

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.

El DualShock 3 no transmite entrada hasta que se le indica.

  • USB: envía un HID SET_REPORT (Feature), report id 0xF4, payload 42 0C 00 00. El input report 0x01 (49 bytes) luego transmite de forma continua.
  • Bluetooth: escribe la MAC del host en el feature report 0xF5, luego activa con SET_REPORT 0xF4 payload 42 03 00 00. El input llega como report 0x01.

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”.

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.