Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

X55 Rhino Windows 11 Community Tool

БесплатноНе проверен

Fix the Saitek X-55 Rhino HOTAS on Windows 11 (Device Manager Code 52) with no custom driver, plus an open-source replacement for the dead Saitek H.U.D. softwar

GitHubEmbed

Описание

Fix the Saitek X-55 Rhino HOTAS on Windows 11 (Device Manager Code 52) with no custom driver, plus an open-source replacement for the dead Saitek H.U.D. software: backlight, response curves, button mapping, a background agent and an MCP server.

README

Make the Saitek (Mad Catz) X-55 Rhino H.O.T.A.S. - also written X55 Rhino or Pro Flight X-55 - work on Windows 11 in the cleanest way possible: no custom drivers, no test-signing hacks, no editing of the registry. It fixes the Device Manager Code 52 error ("Windows cannot verify the digital signature for the drivers required for this device") that leaves the stick and throttle dead after installing the last 2016 Saitek drivers.

It also ships drop-in, open-source replacements for the dead Saitek software - the "X55 Rhino" H.U.D. programming application and the "X55 Rhino Profiler" background agent: a live input tester, backlight / LED brightness control, axis response curves, button-to-keyboard profiles with mode layers, and an MCP server so AI agents (Claude Code, Claude Desktop) can read and control the device. Once fixed, the X-55 works in every DirectInput game - DCS World, Microsoft Flight Simulator, Elite Dangerous, Star Citizen, Falcon BMS, X-Plane, IL-2, War Thunder. All free to use and free to modify, under CC0 license (public domain).

The X55 Community Tool's Tester tab: live stick and throttle axes with their HID codes, the POV hat, the button grids with the pressed button highlighted, and the agent and backlight strips at the bottom

Is this you?

  • You plugged the X-55 into a Windows 11 PC and the stick and/or throttle are dead, or only one of the two works.
  • Device Manager shows the X-55 nodes with a yellow triangle and Code 52: "Windows cannot verify the digital signature for the drivers required for this device."
  • The Saitek / Mad Catz driver installer (X55_Rhino_7_0_55_13_x64_Drivers.exe) installs, but the X-55 still does not show up in joy.cpl or in your game.
  • The "X55 Rhino" H.U.D. software (HUD.exe) will not start, or starts but cannot program buttons or change the backlight.
  • Windows Security reports that the Saitek drivers (SaiK2215.sys, SaiD2215.sys, …) are blocking Memory Integrity (core isolation).

If any of these match, this repo is the fix. Nothing here asks you to disable driver signature enforcement, enable test-signing mode, or turn off Memory Integrity.

Downloads

Grab the ready-made ZIPs from the latest release. The three downloads are independent - take only what you need. Nothing needs an installer; unzip and run.

Download What it is Requirements
X55-Driver-Fix-1.0.zip The Code 52 driver fix: Fix-X55.cmd + Fix-X55.ps1. Start here if the stick or throttle is dead. Windows 10/11, administrator rights (UAC prompt)
X55-Community-Tool-1.0.zip The H.U.D. replacement: the GUI (x55-community-tool.exe) and the background agent (x55-community-agent.exe), with the config files they read. Self-contained, no runtime to install. The GUI can run the driver fix itself. Windows 10/11 x64
X55-MCP-Server-1.0.zip The MCP server that lets an AI agent read and control the device through the background agent. Python 3.10+, and the background agent running

Source for all three is this repository; the ZIPs are just the built and packaged form.

Installation

  1. Download and install X55 Rhino HOTAS Driver (64-Bit) (alternative link: Pro Flight X55 RHINO (Win 10 only) Driver 64 Bit, direct download: X55_Rhino_7_0_55_13_x64_Drivers.exe (4 968 KB)). These drivers must be installed in order for the fix to work.
  2. Download X55-Driver-Fix-1.0.zip from the latest release, unzip it, and double-click Fix-X55.cmd. (Cloning the repo or using the green Code button → Download ZIP works just as well - the same two files sit in the root.)
  3. Optional: unzip X55-Community-Tool-1.0.zip anywhere and run x55-community-tool.exe for the backlight, response curves, button mapping and the live tester.

The problem: Code 52 on Windows 11

You plug in the X-55 on Windows 11 and it's dead. In Device Manager, the X-55 nodes show error Code 52:

Windows cannot verify the digital signature for the drivers required for this device. (STATUS_INVALID_IMAGE_HASH, 0xC0000428)

The source of the issue is that the last X-55 drivers ever released (v7.0.55.13, April 2016) have a certificate signed by Mad Catz Inc. That signing is no longer accepted by Windows 11, so the kernel refuses to load the drivers (SaiK2215, SaiG2215, SaiD2215, SaiKa215, SaiGa215, SaiDa215). Mad Catz went bankrupt in 2017, and Logitech - which bought the Saitek brand - only ships drivers for the X-56, never the X-55. There is no official fix and there never will be.

But... the X-55 does not need vendor drivers. Both units are standard USB HID game controllers. The Mad Catz drivers exist only to feed the H.U.D. programming software and the LED/backlight channel. And to make it even worse - while the broken packages sit in the driver store, Windows keeps binding them to the hardware, which blocks the built-in HID driver from taking over. The fix is fairly easy: we remove the broken packages, and Windows instantly binds its own signed, in-box HID-compliant game controller driver to the stick and throttle. When it happens, both work in DirectInput mode - all axes, switches, toggles, all buttons, work perfectly fine!

The fix

Download this project (green Code button → Download ZIP), unzip it, and double-click Fix-X55.cmd.

Windows will show you two prompts. Both are normal - here is exactly what they look like and what to click.

Prompt 1 - "Open File - Security Warning"

Windows shows this for any file downloaded from the internet, signed or not. Click Run.

Open File - Security Warning: publisher could not be verified. Click Run.

If instead you see a blue "Windows protected your PC" box (Microsoft Defender SmartScreen), click More infoRun anyway. SmartScreen shows this for any program it hasn't seen many times before; this project is not code-signed (see Why the "unknown publisher" warning?).

Prompt 2 - the blue UAC box ("Do you want to allow…")

Removing drivers needs administrator rights. Click Yes.

Then

A black window opens and shows you exactly what it is about to remove, and asks you to confirm - type Y and press Enter. When it finishes it prints one of:

  • RESULT: OK - all X-55 input nodes healthy. - done, your X-55 works.
  • RESULT: some input nodes are still not OK - unplug and replug both USB cables, then run it again.

Press Enter to close the window. Verify with Win+R → joy.cpl → select the stick/throttle → Properties → move everything.

What it does

  1. Finds the six Saitek X-55 packages (sai*2215*.inf / sai*a215*.inf, provider "Saitek") in the Windows driver store, and confirms each one really targets the X-55 by hardware ID before touching it.
  2. Shows the list and asks for confirmation.
  3. Creates a system restore point and backs up every driver package to X55-driver-backup\ (so removal can be undone offline).
  4. Deletes the packages, removes the failed X-55 device nodes, rescans hardware - Windows re-enumerates both units with its own in-box drivers.
  5. Prints the resulting status of every X-55 node.

It is idempotent - safe to re-run - and writes a transcript to fix-x55.log next to itself.

Stuff for power-users

powershell -ExecutionPolicy Bypass -File .\Fix-X55.ps1            # same as the .cmd
powershell -ExecutionPolicy Bypass -File .\Fix-X55.ps1 -DryRun    # preview only, changes nothing
powershell -ExecutionPolicy Bypass -File .\Fix-X55.ps1 -Force     # skip the confirmation prompts

Exit codes: 0 success/nothing to do · 1 error · 2 some input nodes still unhealthy · 3 cancelled at a prompt.

In /tools/ there are Python HID probes used to reverse-engineer this device - they read caps, dump feature reports, and read/write curves and the backlight. They hard-code the X-55's USB IDs, so they do not work on an X45/X52/X56/X65F as-is, but they are short and the method transfers: point one at another Saitek stick's VID/PID and it will tell you what that device exposes. .docs/reverse-engineering.md documents each one.

Is this safe? (what protects you)

This script cannot brick your PC. It is deliberately narrow, and it is the conservative fix - the common advice found online for this kind of issue on Win 11 is to disable driver-signature enforcement or enable test-signing mode, which weakens your whole system permanently. This script never does that.

Safeguard What it means
Narrow scope Only driver packages whose provider is Saitek and whose INF matches the X-55 and whose hardware IDs contain VID_0738&PID_2215/A215. Only device nodes with those same USB IDs.
Verify before delete A package that can't be confirmed to target the X-55 is skipped, not deleted. Matching a wildly unexpected number of packages aborts the run.
Preview + confirmation It prints every item it will remove and waits for your Y (-DryRun changes nothing at all; -Force skips the prompt).
Driver backup Every package is exported with pnputil /export-driver to X55-driver-backup\ before deletion. If the backup fails, it asks before continuing.
System restore point Created (best effort) before any change.
No system surgery It never edits the registry, the boot configuration, signature enforcement, or any non-Saitek driver.
Full log Everything is transcribed to fix-x55.log.

Worst realistic case: the joystick stays driverless until you replug it or restore the backup. Nothing else on the system is touched.

Rollback

pnputil /add-driver "X55-driver-backup\*.inf" /subdirs /install

(The restored 2016 drivers will still fail Windows 11's signature check, getting you back into the original state. The backup exists so nothing is ever lost, but realistically you are unlikely to ever need to do the rollback.)

Why the "unknown publisher" warning?

This project is not code-signed, so Windows calls it an unknown publisher. That is cosmetic, does not cause any issue - the fix does not require a certificate

The X-55 works on Windows' own signed, in-box HID drivers - this project does not include any custom driver, so there is nothing that Microsoft would need to sign. (Signing a kernel driver for Windows 11 is impossible to do independently anyway: cross-signing is retired, so drivers must go through Microsoft's attestation signing in Partner Center - and I'm unlikely to be able to go through that process (not to mention that the time and effort needed to get rid of one dialog is not really worth it, IMO))

If the warning bothers you, the fix is an Authenticode code-signing certificate for the script and the exe - it removes the "unknown publisher" wording. It does not grant instant SmartScreen trust; reputation still accrues with downloads.

Feature coverage

Vendor feature Status Replacement
Axes, buttons, hats, mode switch works with the fixed drivers none needed
LED / backlight brightness control Requires third-party software for control x55-community-tool
H.U.D. profile/macro software Requires third-party software for control x55-community-tool, or Joystick Gremlin + vJoy for virtual-axis remapping

The Pro Flight X55 RHINO Software 64 Bit (or 32 Bit for that matter) will not work correctly. After installation in the default directory (C:\Program Files\Mad Catz\X-55 Rhino) you can find there HUD.exe and run it - it opens the "X-55 Rhino" application allowing you to create custom profiles, adjusting led brightness, axis modification, etc. - because of it not working, even after fixing the drivers, I have built the x55-community-tool, which fills in those gaps.

X55 Community Tool

The X55 Community Tool is a full open-source companion app that replaces the dead Saitek H.U.D. software: a live input tester, backlight brightness control, response curves, and button-to-keyboard profiles. Built in Rust.

It ships as three pieces:

  • The GUI tool (x55-community-tool.exe) — the tester / backlight / curves / mapping window described above.
  • The background agent (x55-community-agent.exe) — a headless companion that keeps the host-side features (key mapping, backlight re-apply, saved curves, backlight-from-axis) alive with the GUI closed. It can run at login (enable it from the GUI's AGENT strip → Run at login), takes over the device ≤1 s after the GUI closes or crashes, and re-applies state on replug. See .docs/background-agent.md.
  • The MCP server (x55-mcp/) — a Python FastMCP tool so an AI agent can read the device (axes/buttons/curves/backlight) and control it (backlight, curves, mapping, profiles) over the agent's control pipe. It also offers tier-1 simulation — feeding synthetic buttons into the mapping engine (mapped keyboard output only; a game never sees synthetic joystick input). Setup and the full tool list are in .docs/mcp-server.md.

It also detects the broken driver itself. If any X-55 device node is stuck on the 2016 Saitek driver, the app shows this banner - click Fix drivers and it runs the same fix (with the same UAC prompt, preview and confirmation). So "download one app and click the button" is a complete path for someone who never opens a terminal.

The app showing a red "Driver problem" banner with a Fix drivers button

The backlight protocol was reverse-engineered from the original Saitek binaries and is documented in x55-community-tool/PROTOCOL.md: it's a plain user-mode HID feature report (09 00 02 NN) on the vendor collection (MI_02, usage page 0xFF00) - no SaiD driver and no MI_01 bulk pipe needed. See that folder's README to build and run it.

Performance

The whole point of the community tool is that it should cost you less than the official tooling. So it is raw Win32 + Direct2D and blocking device reads - no Electron running entire chrome to display few bars, no frameworks, no BS. Here are the vendor's profiler (X55_Rhino_Profiler.exe, the one that ships with the 2016 drivers) and this project's background agent side by side in Task Manager, both sitting idle:

Task Manager: X-55 Rhino Profiler at 0% CPU and 16.9 MB, X55 Rhino Profiler Community Agent at 0% CPU and 1.1 MB, both with 0 MB/s disk and 0 Mb/s network

Idle, as captured Saitek X55_Rhino_Profiler.exe This project's x55-community-agent.exe
CPU 0% 0%
Disk 0 MB/s 0 MB/s
Network 0 Mb/s 0 Mb/s
Memory 16.9 MB 1.1 MB
Install footprint 20 MB folder of .NET assemblies + six driver packages in the Windows driver store 1.1 MB, one file, no driver

Memory usage changes depending on what you actually do with the tool, but the X55 Rhino Profiler Community Agent never gets close to the official X55 profiler, which can climb past 60 MB in peak usage scenarios (yay .NET!) - the community agent benefits from Rust and from having one job.

  • Network: there is no network code at all. No telemetry, no update check, no account, no phone-home. The entire dependency list is windows-rs, serde, serde_json and toml; the only IPC is a local named pipe shared by the GUI, the agent and (optionally) the MCP server. Nothing here needs the internet once you have downloaded it.
  • Disk: only on change. config.json next to the exe is rewritten when you actually change a setting, and the agent appends to agent.log (rotated at 1 MiB). Idle means no writes.
  • CPU: the agent does no periodic work. Its reader threads block on ReadFile until the hardware sends a report, the curve thread and the LED actor block on their channels, and hotplug is a Windows callback - a standby agent is parked, not looping. The per-thread breakdown is in Zero idle CPU, by construction.

The GUI (x55-community-tool.exe, ~1.2 MB on disk) is the one piece that does tick: it repaints the live tester at ~60 fps from a 16 ms timer, which is a few hundred Direct2D primitives a frame and still rounds to 0% CPU - and you only keep it open while you are actually looking at it. Leaving the agent running at login costs about a megabyte of RAM to keep your key mappings, curves, backlight level and backlight-from-axis alive with the window closed.

Documentation

Everything below lives in .docs/, except the protocol, which sits next to the code it describes.

Doc What is in it
User guide Driver fix, the three tabs, backlight, curves, mapping, config files, profile format
Background agent The headless agent: startup, hotplug re-apply, writer arbitration, the control pipe
MCP server Setup for Claude Code / Claude Desktop, the tool reference, the tier-1 simulation scope
Persistence Which settings the device holds, which the PC holds, and what survives a replug
Architecture The Rust side: crates, modules, threads, the immediate-mode UI
Reverse engineering How the vendor protocol was recovered, and what each tools/ probe does
Known limitations What this does not do, and why
PROTOCOL.md The device protocol itself: reports, byte layouts, confidence per finding

FAQ

Does the Saitek X-55 Rhino work on Windows 11?

Yes. The hardware is a pair of standard USB HID game controllers; only the 2016 Saitek driver package is broken. Remove it (Fix-X55.cmd) and Windows 11 drives the stick and throttle with its own signed in-box HID driver - all axes, hats, buttons and the mode switch work in any DirectInput game.

How do I fix "Code 52 - Windows cannot verify the digital signature" for the X-55?

Run Fix-X55.cmd (or Fix-X55.ps1). It backs up and removes the six Saitek driver packages so Windows binds its in-box driver instead. Do not disable driver signature enforcement or enable test-signing mode - that weakens the whole system to keep alive a driver the hardware does not need. See The fix.

Is there X-55 H.U.D. / profiler software that works on Windows 11?

Not from Saitek or Logitech - the X-55 predates the Logitech purchase of the Saitek brand and never got Windows 11 software. This repo's X55 Community Tool replaces it: a live input tester, backlight brightness, axis response curves and button-to-keyboard profiles with per-mode layers, plus a background agent that keeps profiles active with the window closed.

How do I change the X-55 backlight / LED brightness without the Saitek software?

Use the Community Tool's Tester tab (0 / 5 / 25 / 50 / 100 % presets, or drive the brightness from an axis). Under the hood it is one HID feature report on the vendor interface, documented in PROTOCOL.md.

Does this work for the Saitek X-52, X-52 Pro, X-56 or X-65F?

Untested. The script only touches VID_0738&PID_2215 / PID_A215, so it will not remove another stick's drivers. The Community Tool is data-driven (config_identity.json, config_control_names.json), so pointing it at another Saitek VID/PID is possible but unverified. See Compatibility.

Can an AI agent (Claude, MCP) read or control the X-55?

Yes. x55-mcp/ is a Model Context Protocol server that exposes the axes, buttons, backlight, curves and profiles over the background agent's control pipe. Setup for Claude Code and Claude Desktop is in .docs/mcp-server.md.

Why not "fix" the old drivers instead?

  • Re-signing them yourself requires an EV code-signing certificate plus Microsoft attestation/WHQL submission - and you'd be signing someone else's abandoned binaries.
  • Disabling driver signature enforcement / test-signing mode works but permanently weakens the whole system to keep one 2016 driver alive that the hardware doesn't even need.
  • A newly written kernel driver would add nothing: for input, the Windows in-box HID driver already does everything. The only thing a custom driver could add is LED control, and that's better done in user mode (WinUSB).

Compatibility

  • Windows 11 (tested); Windows 10 with the same Code 52 symptom should work identically (but I have no win 10 to validate)
  • Windows PowerShell 5.1 and PowerShell 7+ both work.
  • X-55 Rhino only (USB VID_0738, stick PID_2215, throttle PID_A215). The X-52/X-56 fail the same way on Windows 11, but I have neither to honestly check it. This is why the tool provides config_control_names.json and config_identity.json - between the two you should be able to configure the whole thing to work with any Saitek's HOTAS and/or stick - if not on your own, then with the help of AI (attached .docs/ should help LLMs a lot in understanding what is going on here).

from github.com/MarcinWolnyEU/X55-Rhino-Windows-11-Community-Tool

Установка X55 Rhino Windows 11 Community Tool

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/MarcinWolnyEU/X55-Rhino-Windows-11-Community-Tool

FAQ

X55 Rhino Windows 11 Community Tool MCP бесплатный?

Да, X55 Rhino Windows 11 Community Tool MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для X55 Rhino Windows 11 Community Tool?

Нет, X55 Rhino Windows 11 Community Tool работает без API-ключей и переменных окружения.

X55 Rhino Windows 11 Community Tool — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить X55 Rhino Windows 11 Community Tool в Claude Desktop, Claude Code или Cursor?

Открой X55 Rhino Windows 11 Community Tool на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare X55 Rhino Windows 11 Community Tool with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development