Saitek X52/X52pro userspace driver for Unix/Linux
 
 
 
 
 
Go to file
nirenjan aa95ed306f Fix multiple virtual wheel events with noisy input
Prior to this change, the x52d virtual mouse logic was assuming that the
joystick would only send one report with the wheel button state as "on",
and subsequent reports would be "off". However, with some joysticks, the
other axis sensors could be faulty or noisy, and the joystick could send
multiple reports with the mouse button "on", without an "off" state in
between. This was causing scroll events to be much faster than would be
expected (1 mouse scroll to 1 screen scroll event)

This change should fix the problem, by comparing the value of the
previous button state. This should now trigger a wheel event only on a
rising edge (from "off" to "on").

See #46
2023-03-18 00:49:21 -07:00
.github Disable builds on macOS 12 2023-01-21 02:49:45 -08:00
bugreport Generate Git version info at call to make 2022-04-27 00:05:02 -07:00
cli Add additional tests for x52cli 2022-06-12 03:37:21 -07:00
daemon Fix multiple virtual wheel events with noisy input 2023-03-18 00:49:21 -07:00
docs Replace all references to x52pro-linux with libx52 2021-09-29 00:30:55 -07:00
evtest Use non-recursive Automake 2021-07-29 23:53:21 -07:00
joytest Use non-recursive Automake 2021-07-29 23:53:21 -07:00
kernel_module Add kernel driver for Saitek X65F joystick 2021-09-29 12:59:34 -07:00
lib Override `time` from libc 2021-11-11 07:02:21 -08:00
libusbx52 Initialize variables to avoid maybe-uninitialized warnings 2023-01-03 12:26:51 -08:00
libx52 Fix builds on macOS 2022-09-23 21:15:19 -07:00
libx52io Initialize variables to avoid maybe-uninitialized warnings 2023-01-03 12:26:51 -08:00
libx52util Fix Makefile to build on alternative make implementations 2021-10-12 12:10:36 -07:00
m4 Disable -Wpacked compiler flag 2021-08-05 07:54:53 -07:00
po Fix multiple virtual wheel events with noisy input 2023-03-18 00:49:21 -07:00
udev Use non-recursive Automake 2021-07-29 23:53:21 -07:00
.gitattributes Generate Git version info at call to make 2022-04-27 00:05:02 -07:00
.gitignore Add client communication library 2021-11-04 10:48:59 -07:00
AUTHORS Add license clarification and authors file 2016-12-27 13:13:37 -08:00
CONTRIBUTING.md Update bug template and contributing guidelines 2021-09-19 16:39:49 -07:00
ChangeLog.md Fix hyperlink for ChangeLog.md 2023-01-21 02:34:17 -08:00
Doxyfile.in Add x52ctl daemon communication program 2021-11-04 10:50:10 -07:00
DoxygenLayout.xml Replace all references to x52pro-linux with libx52 2021-09-29 00:30:55 -07:00
INSTALL.md Disable deprecated Github-hosted runners 2022-09-02 23:03:53 -07:00
LICENSE Move license text to LICENSE file 2018-04-18 12:16:48 -07:00
Makefile.am Generate Git version info at call to make 2022-04-27 00:05:02 -07:00
README.md Fix link to AUR package 2021-10-10 08:35:57 -07:00
Version Update for release 0.3.0 2022-12-25 21:57:28 -08:00
autogen.sh Move pthread build logic to configure.ac 2020-04-15 17:31:46 -07:00
configure.ac Generate Git version info at call to make 2022-04-27 00:05:02 -07:00
gettext.h Include locale.h in gettext.h 2022-06-13 01:45:34 -07:00
usb-ids.h Replace hard-coded values with #define's 2020-07-08 17:35:17 -07:00
version-info Generate Git version info at call to make 2022-04-27 00:05:02 -07:00

README.md

Saitek X52Pro joystick driver for Linux

Build/Test Kernel Module CodeQL

This project adds a new driver for the Saitek/MadCatz X52 Pro flight control system. The X52 pro is a HOTAS (hand on throttle and stick) with 7 axes, 39 buttons, 1 hat and 1 thumbstick and a multi-function display which is programmable.

Currently, only Windows drivers are available from Saitek PLC, which led me to develop a new Linux driver which can program the MFD and the individual LEDs on the joystick. The standard usbhid driver is capable of reading the joystick, but it cannot control the MFD or LEDs.

Most of the extra functionality can be handled from userspace. See the individual folders for README information.

Note: This repository currently only provides commandline interfaces to control the MFD and LEDs. If you are not comfortable working in the commandline, then the gx52 project might be a better fit for your needs as it provides a graphical interface to control the MFD and LEDs.

Installing released versions

Beginning from version v0.2.3, prebuilt packages are available on Ubuntu PPA and the Arch User Repository.

Ubuntu

This project has been released as a PPA on Ubuntu. To install the package, run the following commands in the terminal.

sudo apt-add-repository ppa:nirenjan/libx52
sudo apt update
sudo apt install libx52-1

Arch Linux

This is available on the AUR

Building and installing from source

See INSTALL.md