[HOW TO - TUTORIAL] Joystick input streaming and Steam's Streaming

Hello,

As said some weeks ago in another post, I've found a solution to a problem that annoys me a lot. It is not a problem in the Elite's side but in Steam's. Let me explain the point of all of this:

I work with my computer, at home, and I love Elite Dangerous/Horizons, but what I don't love at all is finishing my work session and run Elite in the same place where I work. It feels like if I'd still be working. My place for gaming is my living room, where I play consoles and PC games, using Steam's streaming (my Streaming client is a 2009's Macbook, running Windows 10 through bootcamp but not powerfull enough to run Elite)

Well, the vast mayority of Steam games works well with an standard gamepad, and Steam's streaming works well with that setup, but for Elite, I play using a joystick: the Thrustmaster Hotas X (a very popular device among all Elite users) and sadly, Steam's streaming doesn't support it at all (well, you can map digital buttons, but you'll lose some analog axis), so I started thinking in another solution. I realized out that it could be nice if, using an external application, I could be aable to "emulate" an usb port on a remote machine through ethernet. I firstly though in coding it by myself because I wasn't aware that it already existed solutions in the web, but before starting coding, I decided giving Google a chance.

I've found a GNU application for Linux, called "usbip". At a first glance readong the docs, it claimed to do exactly what I needed, so I started playing with it. I've used as "server" (the machine where I'd connect physically my joystick) a Raspberry Pi. Well, my experience wasn't good at all. After few hours of dealing with Linux dependences, package collisions, missing kernel modules and the usual Linux stuff, I got my joystick's DeviceID and VendorID detected by the usbip server, BUT, my particular device was unsuported. Too bad for me. Two or three days of my very limited spare time wasted.

I continued searching and found a website that offered (a paid) solution in a Windows fashion: Double click on installer, next, next, next, run application, right click on the device, select share and voilá, device succesfully shared and published to my LAN. This application ran perfectly fine, doing exactly what it claimed, and without having to spend any effort in the configuration. The application is called Usb Over Network (http://www.usb-over-network.com/usb-over-network-download.html) It is a paid application but it comes with a trial (IIRC 15 days) For me it simply worths the money because allows me to play Elite Horizons on my 42' TV, while I'm relaxing in my couch.

Although the configuration process is quite straightforward, I'll write here down the steps I followed to configure the application.

First thing is having clear the setup in your mind. I'm using a powerfull PC to move natively Elite. This will be the "Client PC". The other PC, the one connected to the TV and where I will physically plug the joystick in, and run the streaming client, will be the "Server PC".


Firsly you have to install the application in both computers, one in server mode and the other in client mode (just follow the installer). Then go to the server pc and run the application. You should have an screen like this:
1.PNG

Then plug the joystick in the server pc. A new device should appear in the devices list:

2.PNG

Then, select the device and using right click over it, or through the button bar, click on "Share Device". Now the device is being shared over the network

3.PNG

and the client PC should be able to directly detect it.

Also, if you have trust issues about streaming your devices over the network, the application comes with a handy authentication system (password or SSL). For my purposes, I simple don't care, but if you are sharing another devce (like a pendrive or an usb driver) perhaps you should consider it:

4.PNG5.PNG

Now lets go to the client machine. Simple run the application. First thing, if the system didn't discovered automatically your server is adding it's IP manually by clicking the "Add Server" button:
6.PNG

Whether the system discovered the server or you manually added it, the shared usb device will appear listed under the server section.
8.PNG

Now, the last step: Click on the "Connect" button in the toolbar (or through the mouse's right click menu) Now your client PC "thinks" it has the joystick directly attached to any of its physical USB ports. You can test the configuration in the Windows control panel, where you usually calibrate the device. Move the joystick in the server machine and look how it responds in the client machine.

Now start Steam's streaming and start playing Elite Dangerous in your couch!
 
Back
Top Bottom