Logitech wheels support improvements

In a previous post I explained that I built a cross-platform (GNU/Linux and Windows) HID communication layer with asynchronous read and write capabilities. On GNU/Linux, it uses the libusb, which sadly can’t be used at the same time as the HID input driver. Fortunately, the UHID driver allows to pipe the HID input reports from libusb (userspace) to the HID input driver (kernelspace). One issue that arises when using UHID is that the generic HID input driver applies deadzones to all axes, which is a questionable choice… Anyway, this complicates the setup as this requires to calibrate the wheel. I realized that modifying all the Joystick and Gamepad usages to the Multiaxis Controller usage in the HID report descriptor makes the kernel not to apply undesired deadzones. This removes the need for a calibration step!

When using Logitech wheels in both GNU/Linux and Windows, the pedals axes are translated by the operating system from an absolute range (e.g. [0..255] with 255 the rest value) to a relative range ([-32767..32767] with 32767 the rest value). The existing GIMX axis translation parameters (dead zone, sensitivity, acceleration) do not allow to translate the pedal axes back to an absolute range. To fix this, I added joystick correction parameters to the configuration files, that can be configured in a new “Joystick corrections” panel of the existing “Overall” panel (in gimx-config). The default configuration files for the Momo Racing, the DFGT and the G27 contain these new parameters. These files can be downloaded using the “Help>Download Configs” menu item (in gimx-launcher).

When connecting a Logitech wheel to the Raspberry Pi running Raspbian Jessie, the wheel remains in compatibility mode (making the wheel behave as a Driving Force wheel for example). This makes the default configurations unusable. One work-around to this is to use LTWheelConf to enable the native mode, but it’s not convenient as it has to be done again after each reboot. I decided to automatically enable the native mode in GIMX. When starting GIMX, all Logitech wheel connected to the system are switched to their native modes.

Expect these improvements in GIMX 5.2!

6 Replies to “Logitech wheels support improvements”

      1. hola, sigo todos los pasos y no consigo que detecte mi volante g27 (ps4), uno de los errores que creo que puede ser es que me dice : No serial port detected. No consigo entender donde esta el fallo.
        Ahora que iba a sacar porfin mi G27 del armario jaja

  1. Hi,
    I check, double-check…
    I’ve got a logitech driving force pro and a PS4
    I’ve got that type of message anytime when I launch gimx
    Nothing happens after 10, 30 seconds or 5 minutes. Then I stop

    option -l avec la valeur `log.txt’
    option -c avec la valeur `LogitechDrivingForcePro_G29.xml’
    option -p avec la valeur `COM3′
    le flag “status” est positionné
    le flag “subpos” est positionné
    le flag “force_updates” est positionné
    le flag “window_events” est positionné
    native mode is already enabled for HID device \\?\hid#vid_046d&pid_c298#6&2a0dc997&4&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} (PID=c298)
    Adaptateur USB détecté : G29 PS4.
    utilisation de la période de rafraîchissement par défaut : 5.00ms
    les macros ne sont pas disponibles pour : joystick PS4 Controller (0)
    Warning: can’t open macro directory C:\Users\Thierry\AppData\Roaming//gimx//macros/
    0 1457189238.517594
    0 1457189257.472160

    Thank you for your software and for your help

      1. The PS button, the one on the ds4 linked to the pc or the one that I defined on the wheel? I’ve tried the both…
        After that I will go back to the forum.

Leave a Reply

Your email address will not be published. Required fields are marked *