VH Can Not Use Latest Drivers for Thrustmaster T500 RS Wheel

Latest firmware/driver bundle for Thrustmaster T500 RS can not be seen on win 10 pc client side when hooked up to android tv server.

Have tried the standalone server/clients and the steam link/steam versions of VH; all give same result in that android detects Thrustmaster FFB device which gets passed through but it can not start on client pc because of driver issues. 

With latest firmware and driver updates from https://ts.thrustmaster.com/download/pub/webupdate/T500RS/2023_TTRS_1.e… on local pc T500 RS gets detected as Multimedia device named Thrustmaster T500 RS Racing Wheel and works like expected.

Am seeing windows usb PnP warnings and suspect the recent changes to T500 RS drivers are WGI related as it only shows as one device (one usb container using tmgipbus service) but pretty sure something under the hood in windows has changed for T500 RS to be causing the odd behaviour with VH.

 

#2

I dont have the 500RS to test with but i do have a T150 somewhere i will try to find it and see if i can figure out the issue this week...

#3

I dont seem to have my T150 anymore, im not sure if i can fix this.  Can i use teamviewer on your pc when you are there? If so email me at mail [at] virtualhere.com (mail[at]virtualhere[dot]com)

#4

Tried reverse server and hooking up to windows pc but hit same issue with VH only detecting TM FFB device though did find trying out the trial version of VH windows server form MS Store does detect the multimedia device TM T500 RS Racing Wheel like expected so should give a working solution.

 

Am seeing VH not use expected ports after opening ports on router firewall when using android server, though i shouldnt have to since it uses uPnP ootb.   My router supports ipv6 pinhole but not sure if that is appropriate for VH.  Should i expect VH to work using ipv6 pinhole to help manage ports?

 

 

#5

Thats interesting about the windows store version working, thanks for letting me know. Can you try this:

Run the android virtualhere server and plug the wheel in there. In the virtualhere client, right click on the wheel and select Custom Event Handler... and paste in this line

onReset.$VENDOR_ID$=

Then try to use the wheel via virtualhere with Android as the server. Does it work ok now? That command will turn off a reset command which the windows store version does not use, and perhaps is the cause of the problem in Android/Normal windows which do use reset.

VirtualHere will not attempt uPNP as most routers have this turned off now anyway. The android version of virtualhere wont support running on a different tcp port. So wont support ipv6 pinholes unless it is TCP 7575

#6

Unfortunately setting that event handler does not help.   Device in windows legacy control panel printers page shows as unspecified device with driver error.

VirrtualHere simply can not see or find the proprietary drivers for the wheel VH client side when using android server.   How or why VH server from MS store can i cant rationalise other than seeing latest firmware update and drivers for T500 RS seems to have broken the old expected behaviour when using the android server/windows client VH config.   

Will try the standalone windows server just to see it reproduces same behaviour on windows pc as the ms store version, imo it should since the proper drivers get initialised - T500 RS never gets detected as Thrustmaster FFB Wheel - which is expected behaviour when proprietary drivers are installed.  i.e. Thrustmaster T500 RS Racing Wheel is name of device when proprietary drivers are loaded

 

Android only ever sees Thrustmaster FFB Wheel device

 

With latest firmware drivers installed windows is now using just one usb container for two devices shown as one multimedia device in control panel whereas with older versions two devices showed up in control panel printers page in devices section.  So usb device behaviour has changed at operating system level or under the hood stuff.

 

Have to admit there could be something wrong on my end as am seeing issues with BT controllers making connection and other apps like ds4windows and Steam Input are not detecting T500 RS like expected either.   Valve seem to have blacklisted T500 RS so is not showing up as detected device in Steam like how it used to.  (unless you use Steam Link app - where it is detected and is even configurable through controller configurator in Steam Link app but doesnt work  as wheel and pedals in game lol)

i pretty sure it is Steam Input that is broken but seeing VH not working like expected has me scratching my head

 

The wheel works fine in Forza 4 from MS Store when Steam or VH are not involved at all but only when it is detected as T500 RS Racing Wheel..

#7

OK i am confused about this. Does the wheel work ok when you use the virtualhere windows server from this website?

#8

Yes, windows VH server detects "2023-03-18 10:56:54 INFO :Found Full speed device [044f:b65e] "Thrustmaster, TRS Racing wheel" at address 8" so it has loaded proprietary drivers like expected so know for sure any vh client will be able to use the wheel like expected in games that support that device.   I just do not have second pc to test in game.

Previous message in windows server log confirms FFB devices's usb connection gets reset so proprietary drivers get loaded

2023-03-18 10:56:53 INFO :Found Full speed device [044f:b65d] "Thrustmaster, Thrustmaster FFB Wheel" at address 7
2023-03-18 10:56:54 INFO :Unmanaging device 7 [044f:b65d]

 

Android server and windows client combo only ever detects device named Thrustmaster FFB Wheel as the proprietary drivers never get loaded client side after clicking "use this device" in VH client.

 

Can the VH linux arm client be made to run as service on Shield TV?

The windows server does not appear to have settings to set reverse client etc like the android server.   Can not find vh client in playstore on Shield TV but was hopeful using the linux client console mode could be an option https://www.virtualhere.com/linux_console but Shield TV is not a rooted device. Nvidias Linux4tegra aarch64 distro for ShieldTV could maybe help with that but would also bring a myriad of other issues. Nvidia also provide rooted images for android tv os but clearly state should never be used on consumer/daily driven devices.  https://developer.nvidia.com/shield-developer-os-images

#9

I managed to pick up an old T150 and i can reproduce the problem.

The reason is the wheel has an HID USB interface.

Android no longer allows "HID" devices to be redirected via virtualhere. Not sure if this is a permanent change by Google (its been there since Android 10 and ive logged it here https://issuetracker.google.com/issues/193949757) they do say they are working on it. Only part of the wheel has the HID interface so just that part cant be redirected and thats the part the controls the wheel position :)

#10

Just for science i tried the trial version android server on galaxy s23 phone but it ended before i even got usb client to connect to hub like expecetd.   There were large server system log showing many issues.

So think i should just give up on trying to use android server after reading your old google issue.

Will try to show my appreciation for good support and awesome app by buying another VH server licence, just not decided which option will prove best long term option.

#11

TL:DR VH android server happily passes through usb device and when "use this device" is selected HID device drivers are loaded like expected for eSWap controller client side even though that controller is not usable in android as a controller.   The google blocking HID devices thing is irrelevant for explaining why or how T500 RS can not load proper HID drivers client side since other usb HID devices work through VH exactly like local pc.

 

After reviewing what is described at https://www.virtualhere.com/node/3862 and https://www.virtualhere.com/node/3866 can see macos users have similiar issue to the hid device being blocked by google/apple, so is related issue however a solution was found for both controller and steering wheel for other VH user.

 

After plugging in Thrustmaster eSwap X Pro controller to android tv it does not work as expected in android tv os - because of android blocking the hid device but simply allowing VH server to handle device gives fully functional controller when passed through to windows client.   Which proves how awesome VH service is  even when using android server for such a device.   Google hiding hid device on android is irrelative to making that controller work in windows like expected through VH service.

 

VH not handling Thrustmaster T500 RS similarly points to the issue being related to VH service though how windows handles eSwap controller compared to T500 RS is very different.

 

When using usb passthrough eSWap behaves exactly like local pc.   Windows sees it like 

[img]https://i.imgur.com/BMf4p2C.png[/img]

 (ahhh wanted to use screenshots but cant see how to inline them!?) which is two separate devices listed in control panel printers page

USB Device Tree Viewer tool seems to show it is not super speed device so happily works as high speed device

=========================== USB Port1 =========================== Connection Status : 0x01 (Device is connected) Port Chain : 3-1 Properties : 0x01 IsUserConnectable : yes PortIsDebugCapable : no PortHasMultiCompanions : no PortConnectorIsTypeC : no ConnectionIndex : 0x01 (Port 1) CompanionIndex : 0 CompanionHubSymLnk : USB#ROOT_HUB30#1&2b53a856&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8} CompanionPortNumber : 0x11 (Port 17) -> CompanionPortChain : 3-17 ========================== Summary ========================= Vendor ID : 0x044F (ThrustMaster, Inc.) Product ID : 0xD012 USB Version : 2.0 -> but Device is Full-Speed only Port maximum Speed : High-Speed (Companion Port 3-17 supports SuperSpeed) Device maximum Speed : Full-Speed Device Connection Speed : Full-Speed Self powered : no Demanded Current : 500 mA Used Endpoints : 3 

 

Whereas Thrustmaster T500 RS plugged in to local pc and opening Game Controller Settings opens up joy.cpl and if it is not connected to super speed usb port it shows a warning in joy.cpl to make sure end user is aware it needs a faster usb port to work to its full potential.

https://imgur.com/ffRCJOK

And only one device is ever shown in control panels printer page.     Which indicates how hid device is accessed is different compared to eSwap controller so windows is handling T500 RS differently compared to other hid devices..

Regardless when VH is handling T500 RS it should just work on windows client like expected so i can access joy.cpl for that device but VH can not load the proper drivers for it client side, unlike it can for eSwap controller.

 

Have tried uninstalling proprietary drivers for T500 RS and then reinstall them after making sure VH is using it (android tv server/windows client).  In the past the drivers got installed to VH related directory and got VH and T500 RS working like expected when i did this but with latest TM drivers, vh server and vh client on fully updated win 10 pc; i can not reproduce that behaviour.

 

 

 

 

#12

After seeing USB Device Tree mentioning speed related info i changed shield tv usb settings to max performance and found eSwap controller only works through VH  on usb port farthest away from ethernet port.  Get driver error when using other port closest to ethernet port regardless of usb settings in shield tv

 

 

Thrustmaster T500 RS just gives driver error regardless of which usb port or usb settings are used on shield tv.

 

 

#13

It is more complicated than i think you realize.

The way i determined the wheel hid issue is that i plugged my T150 into my pixel 4a (5G) and then i used it via virtualhere.

I opened an adb command prompt to the phone and looked at the drivers bound to the T150 (there should be none or one).

The only driver bound was the hid driver to the wheel interface, this is after i have already claimed all the interfaces for virtualhere, so this hid should not bound but it is. I added some extra debugging info in the android server and it returns busy trying to claim the interface.

Hence it really does hold the HID interface. Since android is holding the interface, i cant send it commands to the endpoints of the interface and therefore the wheel does not respond.

Actually the wheel is a composite devices with an HID on one of the components. My guess is there is a bug/limitation in android where it doesnt scan the whole device to find HID interfaces, just the initial configuration. It really probably wants to block the whole wheel but doesnt realized until later it is HID.

The Thrustmaster T150 will similarly will not work with MacOS as the server. It really wont, the reason is that mac will bind the HID driver to that interface and it cannot unbound and redirected. There is permission denied there is no way around this.

Whereas, linux and windows dont care about HID redirection so the wheel works fine on both with virtualhere server.

#14

Thanks for taking the time to test and explain all of that, i have to admit my bad description of issue is due to lack of underst anding how VH works.

 

Just wish i was using VH more when google started blocking HID redirection or when you made that support ticket/open issue so i could of maybe help add heat to the fire.

 

Truth is racing wheel users are a very small proportion of gamers and is why companies like Valve and Google break stuff for such low end user cases.

 

i loved using VH because it made T500 RS work in cloud gaming vm's.  Using T500 RS when it was hooked up to android device just really floated my boat and appreciate you have done all you possibly could do to keep android VH server as functional as possible. Nvidia never did add usb passthrough support to GFN and now i know it will be highly unlikely to be a feature added to shield tv.   Though Nvidia may have the contacts at Google to help change that, but it highly unlikely, though is a possibility.

Cloud gaming services keep changing their business model and gimping the pc gaming experience and has its own set of issues (additional to usb passthrough woes) and my pc from 2016 aint getting any younger but i just threw a amd r5700xt nitro+ into it and has given it a new lease of life for local gaming after my old flagship asus matrix gtx980 ti died a few years ago due to nvidia drivers messing with its firmware but was hoping to get steam link amd link and other streaming apps working so i could manage my own personal cloud game server.   A working VH server is big part of that since Steam blacklists TM wheels 

It just another first world problem.   i just need to use linux variant VH server or windows VH server, so know what i need to do

 

You giving better support than Valve Google Nvidia  or any body else speaks volumes.  You are a star.  Wish i could show my appreciation more.

#15

Good news! i think i fixed the thrustmaster problem in Android.

I have updated the virtualhere app in the PlayStore to 4.5.6 (1066). It now works with my T150 so i think it will fix it for all Thrustmaster wheels. Let me know how it goes.

#16

Thanks for trying to get Thrustmaster wheels working from android server again.

 

Sadly when i set "use this device" from windows client the Thrustmaster FFB device seen on android hub gets reset but no device is ever shown again.   Using the "onReset.$VENDOR_ID$=" event handler makes no difference.   Same issue persists - TM wheel hooked up to android tv server can not load proprietary drivers client side like expected through VH service.

 

A recent windows update ref: https://support.microsoft.com/en-gb/topic/march-21-2023-kb5023773-os-bu… confirmed the behaviour i describe in other posts in this thread with regards to TM wheel showing up as "miultimedia device" is indeed unintended behaviour affecting many usb devices on windows 10.

Makes sense to me if windows is describing them different it will be handling them differently, so could be contributing factor.

#17

With the fix i made for the Android VirtualHere app i notice this sequence of events

1. I plug the wheel into my Android Pixel 4a(5G) phone running android 13

2. Android asks me if i allow VirtualHere to use the "FFB wheel", i say yes and mark the checkbox

3. Android asks me if i want to open VirtualHere everytime the wheel is plugged in. I say no and click the checkbox

4. I then see the ThrustMaster FFB Wheel listed in the Windows client on my PC

5. I click Use this device. The wheel disappears and another popup appears in Android asking to allow windows to use the "Thrustmaster T150 Wheel" (basically the wheel is resetting itself with a new properly T150 mode)

6. I click Yes, then I click No to open Virtualhere everytime the wheel is plugged in.

7. I then see the Thrustmaster T150 wheel in the virtualhere client

8. I then Use the wheel by selecting it in the VIrtualHere client

9. The wheel then gets passed correctly via virtualhere. I then open joy.cpl and see the Thrustmaster T150 Wheel listed and i click Properties and move the wheel and press the pedals and it all works.


Im wondering if you are missing the second popup e.g step 5.  Because if you dont see/answer that popup there will be no wheel visible again in the client

#18

Yes, the issue was PEBCAK. :facepalm:

 

I can not even reproduce steps 1 - 3 when using latest VH server for android on android tv (SHIELD TV Pro 2015), which is describing old expected behaviour.

Plugging T500 RS into android tv does nothing to prompt VH to start or to show those pop up windows asking what VH server should do when detecting that device; like you describe in steps 1 - 3.  Probably because i chose to set and save settings previously different from what you describe for steps 1-3.

Manually starting VH server from apps list and then opening system messages confirms VH server is detecting Thrustmaster FBB wheel.

Opening VH client for windows also confirms VH Hub and usb device are working like expected as Thrustmaster FFB wheel is shown as device.

Steps 4 - 9 are fully reproducible.  And now have a working wheel through VH service.

 

Am ashamed i did not manage to work that out myself but more than appreciate you spending time in spelling it out like you did.    

 

Also found T500 RS had another driver update 2023_TTRS_2.exe pushed in recent days.

 

Thank you for the awesome support.