Saitek X52/X52pro userspace driver for Unix/Linux
 
 
 
 
 
 
Go to file
nirenjan 74fe559f4a build!: Update build to use system inih
When the x52d daemon was originally implemented, the inih library was
not bundled with any major distribution, and had to be compiled from
source everytime. However, with recent distributions (starting with
Ubuntu 22.04 LTS), this is no longer an issue, and inih is available in
the distro package manager. As a result, there is no longer a need to
vendor the inih sources with thiis repository.

However, as a result of this change, third party packaging scripts such
as those on the AUR or other similar registries that directly query the
git repository will fail unless they update the dependencies.

BREAKING CHANGE: Packaging scripts (AUR, etc.) need dependency update
2026-03-12 09:50:58 -07:00
.github build!: Update build to use system inih 2026-03-12 09:50:58 -07:00
bugreport feat: Minimize identifying information in bugreport 2026-03-03 17:55:26 -08:00
cli fix: Add CMOCKA_CFLAGS to test program CFLAGS 2024-06-08 21:25:42 -07:00
daemon build!: Update build to use system inih 2026-03-12 09:50:58 -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 build!: Update build to use system inih 2026-03-12 09:50:58 -07:00
libusbx52 Initialize variables to avoid maybe-uninitialized warnings 2023-01-03 12:26:51 -08:00
libx52 fix: Handle NULL pointer dereferencing in libx52 2026-03-08 23:13:16 -07:00
libx52io fix: Add CMOCKA_CFLAGS to test program CFLAGS 2024-06-08 21:25:42 -07:00
libx52util test: Add test cases for libx52util 2026-03-09 14:43:33 -07:00
m4 Disable -Wpacked compiler flag 2021-08-05 07:54:53 -07:00
po fix: Avoid backward jumps using goto 2026-03-12 08:34:58 -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: Update Version metadata 2024-06-09 20:21:54 -07: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 build!: Update build to use system inih 2026-03-12 09:50:58 -07:00
LICENSE Move license text to LICENSE file 2018-04-18 12:16:48 -07:00
Makefile.am Add compiler details to bugreport 2023-06-02 00:02:05 -07:00
PRIVACY.md doc: Fix bullets in PRIVACY.md 2026-03-03 18:00:03 -08:00
README.md feat: Minimize identifying information in bugreport 2026-03-03 17:55:26 -08:00
SECURITY.md doc: Add security policy and reporting guidelines 2026-03-06 15:29:31 -08:00
Version fix: Update Version metadata 2024-06-09 20:21:54 -07:00
autogen.sh Move pthread build logic to configure.ac 2020-04-15 17:31:46 -07:00
configure.ac build!: Update build to use system inih 2026-03-12 09:50:58 -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 build: Force build timestamp to be in UTC time 2026-03-06 13:56:08 -08: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.

For data handling and privacy (e.g. GDPR/CCPA), see PRIVACY.md.

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