GIMX stands for Game Input MultipleXer or Game Input MatriX. The purpose of this free software is to control a video game console with a computer (e.g. a PC or a Raspberry Pi). It works with the PS3, the Xbox 360, the PS4 and the Xbox One.
It operates:
¤ over bluetooth: works with GNU/Linux (PS3, PS4) only. A compatible bluetooth dongle is required.
¤ over usb: works with GNU/Linux and Windows (PS3, PS4, 360, XOne). A USB adapter is required.
The application gets data from the peripherals (mice, keyboards and joysticks) and sends controls to the game console over bluetooth or usb. Other controls such as gesture or voice are possible through the use of external software that emulate peripherals.

GIMX donation campaign.

Posted on by Matlo | Leave a comment

GIMX 5.6

This release fixes a bug in the mouse calibration tool (#363).

More info on the forum: link.

Posted in Package release | Tagged api | Leave a comment

serialusb – a cheap USB proxy for input devices

In recent weeks, I have been working on serialusb, a cheap USB proxy for input devices.
This tool can act as a USB proxy using the well-known DIY USB adapter.
Combined with usbmon and wireshark, it allows to generate and inspect USB captures.
Read the github project page to learn about the capabilities, the limitations, and the usage instructions of serialusb.

I’ve tested it successfully with the following hosts and devices:

  • PC + Logitech G502 gaming mouse
  • PC + Dell USB keyboard
  • PC + Logitech Driving Force GT
  • PC + Logitech RumblePad 2
  • PS3 + Logitech Driving Force GT
  • PC or PS3 + Dualshock 3
  • PC or PS4 + Hori Pad Fps plus
  • PC or Xbox 360 + Xbox 360 controller
  • PC or Xbox One + Xbox One controller

If you have a DIY USB adapter and any of the following host + device combination, please consider making a USB capture and send it to me:

  • Xbox One + Logitech G920
  • Xbox One + Xbox One controller with 3.5mm stereo headset jack (USB PID = 0x02dd)
Posted in usb sniffer | Tagged | Leave a comment

GIMX 5.5

This release fixes axis intensity control which was broken since GIMX 4.0 (#362).

More info on the forum: link.

Posted in Package release | Tagged faq | 2 Comments

GIMX 5.4

This release adds force feedback support for the G27 wheel emulation (#307), fixes pedal issues when using the i386 version (#358), and fixes mouse to axis translation defects when using a GPP/Cronus/Titan device (#360).

More info on the forum: link.

Posted in Gaming wheel, PS3, PS4 | Tagged | 2 Comments

GIMX 5.3

This release improves force feedback management in case of transmission errors (#357). It includes USBDK 1.0.7 which fixes issues with some USB host controllers (#345) and makes GIMX i386 able to run on 64bit Windows (#343).

More info on the forum: link.

Posted in Gaming wheel, PS4 | Tagged podcast | Leave a comment

GIMX 5.2

More info on the forum: link.

Posted in Gaming wheel, PS4 | Tagged | Leave a comment

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!

Posted in Gaming wheel, PS4 | Tagged conditions | 3 Comments

Force feedback wheel support in action

Thanks to Edu for making these videos!

Posted in Gaming wheel, PS4 | Tagged

GIMX 5.1

More info on the forum: link.

Posted in Gaming wheel, PS4 | Tagged api | Leave a comment

GIMX 5.0

This release has the following new features:

  • force feedback support for Logitech wheels on the PS4
  • touchpad support for the DIY USB adapter on the PS4
  • rumble support and performance improvements for the GPP/Cronus/Titan devices

More info at: link.

Posted in Gaming wheel, PS4 | Tagged | 7 Comments