giovedì 6 novembre 2025

Lettura valori volante Logitech G920

In questo post ho voluto provare a leggere i valori in uscita da un Logitech G920 Racing Wheel  


 

il volante si presenta in USB con ID 046d:c262  ed e' un dispositivo HID

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 1199:9079 Sierra Wireless, Inc. EM7455
Bus 001 Device 003: ID 8087:0a2b Intel Corp. Bluetooth wireless interface
Bus 001 Device 004: ID 04ca:7066 Lite-On Technology Corp. Integrated Camera
Bus 001 Device 006: ID 046d:c262 Logitech, Inc. G920 Driving Force Racing Wheel
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Per leggere i messaggi HID si puo' semplicemente lancia

luca@nemo:~$ sudo usbhid-dump -d 046d:c262 -e all  

CC001:012:000:DESCRIPTOR         1762351342.982709
 05 01 09 04 A1 01 A1 02 85 01 15 00 25 07 35 00
 46 3B 01 65 14 09 39 75 04 95 01 81 42 65 00 25
 01 45 01 05 09 19 01 29 12 75 01 95 12 81 02 95
 02 81 01 27 FF FF 00 00 47 FF FF 00 00 05 01 09
 30 75 10 95 01 81 02 26 FF 00 46 FF 00 09 31 09
 32 09 35 75 08 95 03 81 02 25 01 45 01 06 09 FF
 19 01 29 03 75 01 95 03 81 02 95 05 81 01 C0 C0
 06 43 FF 0A 02 06 A1 01 85 11 75 08 95 13 15 00
 26 FF 00 09 02 81 00 09 02 91 00 C0 06 43 FF 0A
 04 06 A1 01 85 12 75 08 95 3F 15 00 26 FF 00 09
 04 81 00 09 04 91 00 C0

001:012:000:STREAM             1762351342.991209
 01 0F 00 00 11 80 FF FF FF 07

001:012:000:STREAM             1762351344.926453
 01 0F 00 00 11 80 F1 FF FF 07

001:012:000:STREAM             1762351344.936386
 01 0F 00 00 11 80 DD FF FF 07

001:012:000:STREAM             1762351344.946409
 01 0F 00 00 11 80 C5 FF FF 07

come si vede i messaggi hanno 10 byte (almeno nella versione PC/XBox che possiedo)

i valori della rotazione del volante sono nei byte 5 e 6 sono big endian e vanno da 0 con il volante tutto a sinistra (rotazione di 450 gradi a sinistra) a 65535 con il volante tutto a destra (rotazione di 450 gradi a destra). La posizione neutra e'  32789 (almeno nella mia calibrazione)

echo $(( 0x$f6 * 256 + 0x$f5 )) 

il valore dell'acceleratore sul byte 7 con valore FF a pedale rialzato

il valore del freno e' sul byte 8 con valore FF a freno rilasciato

 

Nessun commento:

Posta un commento

Algoritmo Reed Solomon

 Sto progettando una trasmissione radio di immagini ed uno dei vincoli e' che non e' garantita la perfetta qualita' della trasmi...