2.1 KiB
2.1 KiB
Logitech G29 USB Protocol
- 12 bytes per event
- Little-endian (= smaller value bytes first)
1
0 1 2 3 4 5 6 7 8 9 0 1
+---+---+---+---+---+---+---+---+---+---+---+---+
| Buttons | Rot |Gas|Brk|Clt|GrX|GrY|GrZ|
+---+---+---+---+---+---+---+---+---+---+---+---+
Buttons: Bitmask of pressed buttons (mask values are in big endian).0x00000001- ?0x0000000E- Arrow keys0x00000000- Up0x00000002- Right0x00000004- Down0x00000006- Left0x00000008- No arrow key pressed
0x00000010- X0x00000020- Square0x00000040- Circle0x00000080- Triangle0x00000100- R10x00000200- L10x00000400- R20x00000800- L20x00001000- Share0x00002000- Option0x00004000- R30x00008000- L30x00010000- Gear 10x00020000- Gear 20x00040000- Gear 30x00080000- Gear 40x00100000- Gear 50x00200000- Gear 60x00400000- Gear reverse0x00800000- Plus0x01000000- Minus0x02000000- Red rotation clockwise0x04000000- Red rotation counterclockwise0x08000000- Return0xF0000000- ?
Rot: Wheel rotation (little-endian).0x0000(leftmost) -0xFFFF(rightmost).Gas: Gas pedal.0xFF(up, default) -0x00(down).Brk: Brake pedal.0xFF(up, default) -0x00(down).Clt: Clutch pedal.0xFF(up, default) -0x00(down).GrX: Gearshift X axis. ~0x30(gear 1+2), ~0x80(gear 3+4), ~0xB0(gear 5+6+reverse).GrY: Gearshift Y axis. ~0xD0(gear 1+3+5), ~0x40(gear 2+4+6+reverse).GrZ: Gearshift Z axis. ~0x9C(neutral), ~0xDC(pressed down).
Sample event
Sample event:
08 00 00 00 00 80 ff ff ff 81 80 9c
- No buttons pressed / no gear engaged
- Wheel rotation at
0x8000~ center - Gas pedal up
- Brake pedal up
- Clutch pedal up
- Gearshift neutral