Wireless Hotas Setup
You’re going to need some hardware to make this work and I’ll share with you what I’m using to accomplish my setup. I also want to note I…
Wireless Hotas Setup

Wireless X56 Saitek connected to PC using Raspberry Pi 3 and USBIP
You’re going to need some hardware to make this work and I’ll share with you what I’m using to accomplish my setup. I also want to note I am running this on Windows 11 ver 23H2.
- X56 Saitek Rhino
- Raspberry Pi 3 B+ w/ 1 GB RAM, a bit of an overkill but I like the 4 USB ports on the board and you’re going to need at least 2 USB-A ports
- Battery Bank to power the Pi, the pi is powered via usb micro so you’ll probably need a usb-a/usb-c to micro cable
- Chair Mount system — Link at end
- Chair — Mine is a SecretLabs Titan XL
As far as cable management, battery pack, and raspberry pi mounting. I had extra magnetic cable management stuff lying around from a previous lttstore.com purchase, so am using them. Makes it easy to pop the battery pack on and off the chair to charge it. I haven’t run a full test of the battery pack, but based off some basic math, that the battery pack would be able to power the Pi and Hotas for ~15 hours on a charge. The battery pack I use is 10000 mAH.
For software, this is where you can either go the easy way or the hard way. The easy way is using VirtualHere, but to make that work with our setup you need to purchase a license for $50, and that license is tied to that specific piece of hardware 😠.
Granted it’s VERY easy to setup the server and client sides, but I won’t be covering that here.
This video does a good job of explaining VirtualHere: Converting Any USB Device to A Wireless USB using Raspberry Pi Zero (youtube.com)
I decided to utilize USBIP, because I didn’t want to pay for a license. It’s more involved and is done all via CLI on the PI and on Windows.
Server Side (Raspberry Pi): USBIP Server
#### Install USBIP from the Apt store
apt-get install usbip
modprobe usbip_host
echo 'usbip_host' >> /etc/modules
#### Commands to list Connected USB Devices
usbip list -l # Will get you the BUS-IDs and hardware addresses that you need
To make it so that the USBIPD daemon starts up everything the Pi boots, I like to create a systemd service. Create the systemd file using your text editor of choice in I.E. nano /usr/lib/systemd/system/usbipd.service.
You’ll want to update the grep query with your devices hardware IDs below.
[Unit]
Description=usbip host daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/usbipd -D
ExecStartPost=/bin/sh -c "/usr/sbin/usbip bind --$(/usr/sbin/usbip list -p -l | grep '#usbid=0738:2221#' | cut '-d#' -f1);\
/usr/sbin/usbip bind --$(/usr/sbin/usbip list -p -l | grep '#usbid=0738:a221#' | cut '-d#' -f1)";
ExecStop=/bin/sh -c "/usr/sbin/usbip unbind --$(/usr/sbin/usbip list -p -l | grep '#usbid=0738:2221#' | cut '-d#' -f1);\
/usr/sbin/usbip unbind --$(/usr/sbin/usbip list -p -l | grep '#usbid=0738:a221#' | cut '-d#' -f1);\
killall usbipd"
[Install]
WantedBy=multi-user.target
Once the file is created you’ll want to run these commands (as sudo) for systemd to see the new service, enable it (starts it at system startup), and starts it now.
sudo systemctl --system daemon-reload
sudo systemctl enable usbipd.service
sudo systemctl start usbipd.service
If you run systemctl status usbipd.service you should see the following and assuming you have the right hardware addresses setup in the service file above you’ll see the devices bind in the output.

Working USBIPD service
Client Side (Windows): Releases · cezanne/usbip-win (github.com) — Using 0.3.6 dev release, the previous versions did not work.
I use the script below to import the USB devices anytime I want to use the HOTAS, make sure you save the file as a .bat extension. I also added the PATH of the usbip.exe to my environment variables, if you don’t want to do that you’ll need to add the full path to the executable to the script below.
@ECHO OFF
REM This will run this script as admin (required)
set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || ( echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )
REM Update the below IP and USB-IDs accordingly
usbip.exe attach -r 172.21.1.234 -b 1-1.1.2
usbip.exe attach -r 172.21.1.234 -b 1-1.1.3
This is by a granular tutorial, I am assuming you have some basic understanding of linux and cmd/powershell usage.
Links:
I guess these are affiliates links. I just wanted the shorter URLs honestly, but if someone does buy something I also get a kickback? Literally just signed up for the affiliate program so… /shrug.
- Chair Mount — https://a.co/d/eAjvGwE
- Battery Bank — https://a.co/d/dHmKh5N — This could really be any power bank as the raspberry pi doesn’t draw more than a few watts.
메타데이터
- post_id
- e6f022b4906d
- slug
- wireless-hotas-setup-e6f022b4906d
- url
- https://medium.com/@venivv/wireless-hotas-setup-e6f022b4906d
- canonical_url
- https://medium.com/@venivv/wireless-hotas-setup-e6f022b4906d
- author_url
- https://medium.com/@venivv
- status
- ok
- fetched_at
- 2026-07-23 06:21:08