Saitek X52/X52pro userspace driver for Unix/Linux
 
 
 
 
 
Go to file
nirenjan e8abbd0374 Allow for a greater range in mouse speeds
Prior to this change, the virtual mouse update was restricted to
updating once every `mouse_delay` microseconds, and the allowed values
were a small fixed set. Some users reported that even at the highest
speed, the speed was slower than they were used to (with a high DPI
mouse).

This change modifies the speed calculation algorithm as follows. It
keeps the slowest speed to refresh the mouse every 70 ms. As the speed
increases, the refresh rate drops by 5 ms for every increment in speed,
until the refresh rate caps at once every 10 ms. Beyond that, a
multiplicative factor begins to take effect, with each speed increase
adding 0.25 to the factor. That is, speed 13 would multiply the axis
components by 1.25 _and_ refresh every 10 ms. Speed 14 would bump the
factor to 1.50, speed 15 to 1.75, and so on, until the factor tops out
at 6.0.
2021-09-19 16:39:49 -07:00
.github Add CI support for macos-11 2021-09-14 09:21:55 -07:00
cli Use TEST_DEF as a function macro, instead of #if/#endif blocks 2021-08-02 10:35:37 -07:00
daemon Allow for a greater range in mouse speeds 2021-09-19 16:39:49 -07:00
docs Fix make distcheck 2021-08-01 23:56:37 -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 versions that have the quirks fix 2020-09-17 17:06:39 -07:00
lib Import inih library into source tree 2021-08-26 22:16:38 -07:00
libusbx52 Fix build with newer version of libusb 2021-09-14 09:28:00 -07:00
libx52 Use libusb hotplug API to automatically detect disconnection 2021-09-14 09:03:23 -07:00
libx52io Fix Cflags and add libx52util.pc 2021-08-03 12:53:26 -07:00
libx52util Fix Cflags and add libx52util.pc 2021-08-03 12:53:26 -07:00
m4 Disable -Wpacked compiler flag 2021-08-05 07:54:53 -07:00
po Allow for a greater range in mouse speeds 2021-09-19 16:39:49 -07:00
udev Use non-recursive Automake 2021-07-29 23:53:21 -07:00
.gitignore Fix gitignore to ignore generated files 2021-09-03 12:25:41 -07:00
AUTHORS Add license clarification and authors file 2016-12-27 13:13:37 -08:00
CONTRIBUTING.md Add contribution guidelines 2020-06-02 17:20:03 -07:00
ChangeLog.md Update dependencies and changelog 2021-09-14 17:18:46 -07:00
Doxyfile.in Add documentation for x52d 2021-08-01 23:47:24 -07:00
DoxygenLayout.xml Add link to Github in Doxygen generated output 2020-06-06 08:54:59 -07:00
INSTALL.md Use $(localstatedir)/run instead of $(runstatedir) 2021-09-15 09:06:31 -07:00
LICENSE Move license text to LICENSE file 2018-04-18 12:16:48 -07:00
Makefile.am Use automake rules to install man pages 2021-08-05 10:35:31 -07:00
README.md Squashed 'lib/pinelog/' changes from 27a5eab..0256807 2021-08-25 14:22:04 -07:00
autogen.sh Move pthread build logic to configure.ac 2020-04-15 17:31:46 -07:00
configure.ac Add configure check for libevdev 2021-09-14 09:34:11 -07:00
gettext.h Update gettext.h to fix warnings when compiling with --disable-nls 2020-06-12 22:05:28 -07:00
usb-ids.h Replace hard-coded values with #define's 2020-07-08 17:35:17 -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.

Building and installing

See INSTALL.md