Joy-Con 1 / Switch Pro
Status: hardware-validated (Joy-Con L/R y Pro Controller).
Los Joy-Con de primera generación y el Switch Pro Controller comparten un mismo protocolo HID. Se conectan por USB o Bluetooth Classic y exponen un IMU de 6 ejes sin magnetómetro.
Hardware
Sección titulada «Hardware»| Componente | Parte | Rango / escala |
|---|---|---|
| IMU (genuino) | STMicroelectronics LSM6DS3-TR-C | accel ±8 g (4096 LSB/g), gyro ±2000 dps (16.4 LSB/dps) |
| IMU (clones) | InvenSense ICM-20600 o similar | detección automática vía SPI ID; warm-up de bias más lento |
El núcleo MEMS se sondea internamente a unos 740 Hz y se decima a tres muestras frescas por input report (nunca duplicadas). Los clones aparecen con frecuencia en el mercado gris; sus lecturas de calibración por SPI pueden devolver ceros, en cuyo caso la fusión absorbe el bias a lo largo de un warm-up un poco más largo.
Identificación (VID:PID)
Sección titulada «Identificación (VID:PID)»| VID:PID | Dispositivo |
|---|---|
057E:2006 |
Joy-Con L |
057E:2007 |
Joy-Con R |
057E:2009 |
Switch Pro Controller |
057E:200E |
Charging Grip (actúa de proxy para los Joy-Con acoplados; conéctalos por Bluetooth en su lugar) |
Transporte
Sección titulada «Transporte»- USB: HID directo. El Pro Controller requiere un handshake
0x80 0x02antes del tráfico HID; el driver lo realiza en la inicialización. - Bluetooth Classic: HID sobre Bluetooth, emparejado a través del sistema
operativo (Windows Configuración → Dispositivos, o
bluetoothctlen Linux).
Tasa de muestreo
Sección titulada «Tasa de muestreo»El input report 0x30 transporta 3 muestras de IMU por paquete. Las tres se
decodifican - leer solo la primera reduciría a la mitad la tasa efectiva. El
periodo del paquete lo fija el link interval de Bluetooth negociado, no un ODR de
IMU fijo, así que la tasa entregada ronda los 200 Hz y varía con la radio del
host. El timestep de fusión se mide en vivo a partir del periodo real por muestra
en lugar de asumirse.
Calibración de fábrica
Sección titulada «Calibración de fábrica»Se lee por SPI con el subcomando 0x10:
| Fuente | Región | Notas |
|---|---|---|
| Accel de fábrica | 0x6020 |
offsets + escalas |
| Gyro de fábrica | 0x603D |
offsets + escalas |
| Override de usuario | 0x8010 / 0x8028 |
protegido por magic bytes |
El bias en reposo también se estima en el dispositivo tras ~30 s de quietud.
Subcomandos
Sección titulada «Subcomandos»| ID | Propósito |
|---|---|
0x40 |
Habilitar IMU |
0x30 |
LEDs de jugador (bits 3:0 fijos, 7:4 parpadeando) |
0x38 |
Home LED (Joy-Con R + Pro; hasta 15 mini-ciclos) |
0x48 |
Habilitar HD rumble |
0x10 |
Lectura SPI |
Rumble (HD Rumble)
Sección titulada «Rumble (HD Rumble)»La vibración debe habilitarse primero (0x48 0x01) o el rumble se ignora en
silencio. Cada lado toma un frame empaquetado de 4 bytes (bits de alta frecuencia,
amplitud alta, baja frecuencia, amplitud baja); el frame neutro de silencio es
00 01 40 40. Ambos lados deben enviarse incluso cuando se acciona solo uno. El
rango de frecuencia útil es 40-1252 Hz.
Convención de ejes
Sección titulada «Convención de ejes»El body frame es (x, z, -y) de la salida cruda del IMU - la gravedad se lee como
+Z cuando el control descansa boca arriba.
Gestos de reset
Sección titulada «Gestos de reset»| Gesto | Acción |
|---|---|
| Botón Capture | Reset Yaw |
| Home (pulsación corta) | Reset Yaw |
| Home (mantener ≥1 s) | Reset Full |
Peculiaridades
Sección titulada «Peculiaridades»- Tras el bonding, el control puede dormirse; el primer input report puede tardar ~1.5 s. El driver reemite el enable de IMU en el primer timeout.
- Sin magnetómetro, el yaw deriva al rotar el cuerpo - vuelve a hacer re-yaw mirando al frente o usa Reset Mounting.
- NFC, la cámara IR y el Ring-Con se dejan intencionalmente sin usar: consumen ancho de banda que dejaría sin recursos a la tasa del IMU.