Date: 2025-07-13
Device: Rokid Max2
- Device operates in two modes: configuration echo and telemetry
- SET commands (bRequestType 0x41) change device state
- Pattern
00 40 bf 00restores telemetry mode
- Standard telemetry is 64 bytes
- Extended formats support up to 512 bytes
- Extended data contains what appears to be memory addresses/pointers
- Pattern observed:
00 05 00 20,44 05 00 20, etc.
- Command 0x81 returns version: "0.17" (ASCII: 30 2e 31 37)
- This confirms direct hardware query capability
- 0x00: Device info (returns zeros after reset)
- 0x81: Version string "0.17"
- 0x01: Primary IMU telemetry (supports extended format)
- 0x02: Secondary telemetry (also supports extended format)
- 0x10-0x13: Display control (accepted but effect unknown)
- 0x20-0x21: Configuration/features
- 0x30-0x33: Camera range (accepted)
- 0x40-0x41: Tracking range (accepted)
- 0x50: Mode setting (6DOF attempt)
- 0xF0-0xF1: Factory/debug range
When requesting >64 bytes, we get additional data:
Bytes 64-67: 00 00 00 00 (counter incrementing: 00->80->00 01->00 02)
Bytes 68-79: Memory addresses? (00 05 00 20 pattern)
Bytes 80-127: More addresses (44 05 00 20, b4 05 00 20, etc.)
The addresses appear to be ARM memory locations (0x20000500 range).
Successful initialization pattern discovered:
- Reset device: cmd=0xFF with zeros
- Query version: cmd=0x81
- Enable features: cmd=0x20 with 0xFFFF value
- Set mode: cmd=0x50 with 6DOF pattern
- Return to telemetry: cmd=0x01 with
00 40 bf 00
Based on USB exploration:
- ✅ High-rate IMU (220Hz measured)
- ✅ Extended telemetry format available
- ✅ Version query capability
- ✅ Configuration accepted for all subsystems
- ❓ Camera data not yet streaming
- ❓ 6DOF data format unclear
- ❓ Display control effect unknown
-
Decode Extended Format: The memory addresses might point to:
- Camera frame buffers
- 6DOF transformation matrices
- Configuration structures
-
Monitor Physical Changes: Test display commands while watching screen
-
Analyze Memory Patterns: The 0x20000500 range suggests RAM addresses
-
Windows Driver Path:
- Implement initialization sequence
- Parse extended telemetry format
- Map memory addresses to features
The Rokid Max2 has significantly more capability than standard drivers expose. We've found:
- Direct hardware version query
- Extended data formats beyond basic IMU
- Memory address patterns suggesting deeper access
- All commands accept configuration
The device is clearly capable of more than 3DOF tracking, with infrastructure for cameras, 6DOF, and advanced features - just need the right initialization sequence.