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
Описание
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).

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 injoy.cplor 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
- 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.
- Download
X55-Driver-Fix-1.0.zipfrom the latest release, unzip it, and double-clickFix-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.) - Optional: unzip
X55-Community-Tool-1.0.zipanywhere and runx55-community-tool.exefor 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.

If instead you see a blue "Windows protected your PC" box (Microsoft Defender SmartScreen), click More info → Run 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
- 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. - Shows the list and asks for confirmation.
- Creates a system restore point and backs up every driver package to
X55-driver-backup\(so removal can be undone offline). - Deletes the packages, removes the failed X-55 device nodes, rescans hardware - Windows re-enumerates both units with its own in-box drivers.
- 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 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:

| 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_jsonandtoml; 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.jsonnext to the exe is rewritten when you actually change a setting, and the agent appends toagent.log(rotated at 1 MiB). Idle means no writes. - CPU: the agent does no periodic work. Its reader threads block on
ReadFileuntil 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, stickPID_2215, throttlePID_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-ToolFAQ
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
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
автор: duxiaohuiSupabase
Database, auth and storage
автор: SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare X55 Rhino Windows 11 Community Tool with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
