X52Pro-Linux

Saitek X52Pro joystick driver for Linux

Overview

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. Although the standard usbhid
driver is quite capable of reading the joystick, it is not sufficient to
really utilize all the capabilities of this system.

Status

This page documents the objectives of the project and the status. This project is currently a work-in-progress.

Kernel Module

Currently, a kernel module exists which supports reading from the joystick and reporting to the input subsystem. The kernel module also supports setting the following:

MFD brightness

LED brightness

LED state for all 20 LEDs

MFD text for all 3 lines

Pending are the following:

Clock (Date/Time) on the MFD

LED blinking mode

Shift indicator on the MFD

Userspace Daemon

In progress is a userspace daemon which hooks to the hidraw interface of the standard usbhid driver and interprets the hidraw data. Objectives for this daemon are:

Create a uinput driver which will send keyboard and mouse events to the input subsystem.

Create an output driver which will update the LEDs and MFD on the joystick.

Create an API which will allow plugins to communicate with the daemon and update the joystick.

Create an API which will allow customizing the keyboard and mouse event mapping.