Instability (dropout) using tplink bt5.0 adapter, android shield tv and 8bitdo pro controllers

Hi support,

Does anyone have experience with connectivity issues with VirtualHere and 8bitdo pro controllers? I have 2x controllers connecting to my desktop (xinput mode) via a Shield Pro. When it works, it works well including rumble. However, I had a slew of problems last night while my gf and I tried to play some games. Controller dropout and really struggled to re-connect; I went to the other room and removed the 8bitdo from Bluetooth in windows altogether, took a couple of tries and it eventually reconnected. It periodically dropped the Bluetooth connection. My moonlight stream itself was fine. But lots of issues with stability.

I’m using a generic Bluetooth 5.0 adapter by tplink to be specific. I don’t know if there’s some setting I need to adjust to make it more stable or some log of some sort that can give me more clues why it was acting up. One thing that happened initially is that Bluetooth on my pc was off. I ended up rebooting the shield, re-starting the virtualhere android app..and it still failed. Oddly, unplug replug the tplink on shield fixed my initial problems and allowed my pc to see Bluetooth available again.
I’m also re-charging my 8bitdo controllers just to rule that out.

Host setup:
I9-9900k, asus z390 (no built-in wifi/bt)
Win10

Android setup:
Nvidia shield pro with latest patches as of today
Tplink bt 5.0 USB adapter plugged into shield pro

Game controllers: 2x total
8bitdo sn30 pro+ (Aka pro 1)
8bitdo pro 2]
Both in xinput mode. Can’t seem to get Nintendo switch mode to work but not a big deal.

Any ideas or anyone familiar?

Thanks!

#2

Its almost certainly radio interference issues.

Move the 8-bit do to the front of the shield if you can e.g by using a USB hub and also make sure you are using Ethernet only (not WiFi from the shield and turn the shield WiFi off if you can)

#3

That is interesting, I have a usb extension cable and have moved the bt 5.0 adapter physically away from Nvidia shield. I technically use 5ghz Wi-Fi but one day I’ll get around to adding ethernet to house. I’ll give this a try and see how it goes!
Would be good if there are lots of failed attempts or something that gave clues to what was failing.

#4

I gave this a try, I had a USB extender and re-positioned the USB BT 5.0 adapter to far away from the Nvidia Shield (~2.5 feet away on another level in a bookshelf). Even then, I still experience dropout. It was weird, but one 8bitdo controller seemed to work fine and the other was very finicky. Seems like there's some infighting between the Nvidia's BT and the USB BT 5.0 adapter - as I was able to change from xinput to dinput mode to connect the Nvidia's BT just fine with the finicky 8bitdo controller.

Not sure what's going on. Is there a place for logs or something that gives me better clues as to what is going on? I can try to look into some way to disable the Nvidia's BT; there doesn't seem to be a native way to disable BT but perhaps there's an app that does it.

Would appreciate any advice or way to better test. If Virtualhere was reliable in my setup, it'd be pretty much be my ideal solution to get rumble.

#5

Dont use a USB extender (Ive seen they have caused trouble before). Use a USB hub with a USB cable or just plug it in directly to the shield

#6

I viewed EventViewer on Win10, I see these errors sprinkled in there from time to time.
"Windows cannot store Bluetooth authentication codes (link keys) on the local adapter. Bluetooth keyboards might not work in the system BIOS during startup."
"Initial connection to Bluetooth HID device failed. The device has been removed as a personal or paired device. You must reinstall the device."

Could this be a clue? Is there a way to perform some sort of bluetooth stability check for virtualhere - like something that does a functional test. I did try the Win10 bluetooth troubleshooting tool and it seems to disable/re-enable the adapter.

#7

just for fun, I connected my Tplink BT 5.0 adapter directly to my PC. I was able to connect 2x 8bitdo controller like 10+ times in a row without any real trouble. I can't do that with Virtualhere and Nvidia Shield... I always have to give multiple attempts for the BT to connect (i.e. turn on and off the controller...when it works, it usually connects in a quick 1-2 seconds).

I don't know if this gives us clues. But it seems like using Virtualhere is when I start encountering issues - I don't know if there's some setting or something I should be doing differently. I know Ethernet is probably best, but I'm using WiFi6 with a higher end Asus ax89x router that is pretty solid.

#8

Yes i think you will need to use ethernet if you can instead of wifi6.

#9

Michael,

Is there a way to test, see statistics or anything to help diagnose this further? I'll eventually upgrade the house for ethernet. It's a bit frustrating that Virtualhere almost works for me and is a potential solution: when it works, it works fine (latency is imperceptible, rumble works, multiple controllers connect, etc.). To be honest, I'm not sure if Ethernet could even solve my problems with Virtualhere; when I have more time, I can try to connect the Shield to ethernet and see if the behavior is any different.

I just have no idea why it can potentially fail. My 4k60 Nvidia gamestream works just fine, so I think WiFi6 is up to the task there. I'm on the 5ghz WiFi which shouldn't cause interference with BT's 2.4Ghz signaling. I'd like to think there'd be some sort of statistics I can run on Windows that shows uptime/latency/dropped packets/events/logs/etc.

#10

Yes you can actually i forgot about that. Firstly in the virtualhere client right click USB Hubs->Always on Top

Then Right click USB Hubs->About->Statistics and leave that window open while you use the devices via VirtualHere.

See what that shows.

It should be < 10ms if you have good wifi and just at home (not over the internet)

#11

Michael - where is this? I tried right-clicking
* USB hub
* Android Hub
* Tp-link ub500 adapter

I don't see anything that shows statistics. The only "about" shows the license. At best, I found something that shows uptime measured in seconds (which isn't in hours, so maybe there are disconnects at some point in time?)
Here are bunch of screen captures trying to navigate the GUI: https://imgur.com/a/x6X2YhX

#12

OK Right click USB Hubs->Uninstal Client Service, and run it normally and that option will be there. Sorry forgot to mention that. The statistics is only available when not running as a service.

#13

Hmmm... statistics don't look so hot. The 8bitdo controller is still connected despite these latency spikes.

Lots of spikes to +50ms, some in the 100ms range: https://imgur.com/a/AndiH8Y

2022-09-13 17:45:26,Android Hub,1,2.627000
2022-09-13 17:45:29,Android Hub,1,3.077100
2022-09-13 17:45:32,Android Hub,1,91.243698
2022-09-13 17:45:35,Android Hub,1,37.198002
2022-09-13 17:45:38,Android Hub,1,3.349200
2022-09-13 17:45:41,Android Hub,1,2.992600
2022-09-13 17:45:44,Android Hub,1,2.832900
2022-09-13 17:45:47,Android Hub,1,99.139297
2022-09-13 17:45:50,Android Hub,1,45.699100
2022-09-13 17:45:53,Android Hub,1,52.174301
2022-09-13 17:45:56,Android Hub,1,3.401500
2022-09-13 17:45:59,Android Hub,1,1.538700
2022-09-13 17:46:02,Android Hub,1,18.364500
2022-09-13 17:46:05,Android Hub,1,59.726898
2022-09-13 17:46:08,Android Hub,1,13.816400
2022-09-13 17:46:11,Android Hub,1,5.369300
2022-09-13 17:46:15,Android Hub,1,96.628998
2022-09-13 17:46:18,Android Hub,1,50.598598
2022-09-13 17:46:21,Android Hub,1,51.091000
2022-09-13 17:46:24,Android Hub,1,29.482100
2022-09-13 17:46:27,Android Hub,1,2.497700
2022-09-13 17:46:30,Android Hub,1,1.720000
2022-09-13 17:46:33,Android Hub,1,2.971900
2022-09-13 17:46:36,Android Hub,1,11.316500
2022-09-13 17:46:39,Android Hub,1,1.737900
2022-09-13 17:46:42,Android Hub,1,2.492300
2022-09-13 17:46:45,Android Hub,1,2.902000
2022-09-13 17:46:48,Android Hub,1,1.767300
2022-09-13 17:46:51,Android Hub,1,2.439600
2022-09-13 17:46:54,Android Hub,1,7.842700
2022-09-13 17:46:57,Android Hub,1,1.336200
2022-09-13 17:47:00,Android Hub,1,1.856000
2022-09-13 17:47:03,Android Hub,1,2.161200
2022-09-13 17:47:06,Android Hub,1,4.807300
2022-09-13 17:47:09,Android Hub,1,3.481300
2022-09-13 17:47:21,Android Hub,1,2.647200
2022-09-13 17:47:24,Android Hub,1,2.533400
2022-09-13 17:47:27,Android Hub,1,2.310300
2022-09-13 17:47:30,Android Hub,1,58.755299
2022-09-13 17:47:33,Android Hub,1,1.416600
2022-09-13 17:47:36,Android Hub,1,111.468300
2022-09-13 17:47:39,Android Hub,1,1.427600

Thanks,
Sean

#14

Yes you need to use ethernet

#15

Update:  I've installed ethernet in the house.  It's seemingly a nice upgrade, but I still have connectivity problems.  It's really seems to be just one of the 8bitdo Controllers, the Pro Version 2 has issues connecting - it just seems unreliable on the front.   It appears the Pro Version 1 is fine and connects like it's supposed to.

Here's an updated latency benchmark: https://imgur.com/a/YoJahn4

I'm not really sure where to go from here or why the Version 2 controller is troublesome.  I'd hate to just keep buying things until it works properly.  Open to ideas or if anyone is familiar.  

#16

Yes that latency is definitely fine. I am surprised it doesn't work well. I assume you have the latest firmware on the dongle and the pro2? I see the firmware for the pro2 was updated 25th Mar 2022.

#17

Hi Michael,

I've tried downgrade/upgrading 8bitdo Pro2 firmware, I'm not sure if there's an appreciable difference.

I do have a curious note and made a video of the error - I'm not sure if there are others have unique issues with Pro Controller Ver2 controllers with Virtualhere.  I don't know if there's something unique in the bluetooth stack that causes this, but perhaps there are other devices with this issue.  I'm not sure how the BT controller is presented to the Win10 OS or what exactly happens... but maybe the Ver2 controller has a different BT connection algorithm or mode that has issues?  

Please see video here: https://www.youtube.com/watch?v=7B0MFiTgPu4

In video:

You can see how the pro controller version 2 almost connects. Steam says it’s connected and it shows up in the “usb controller” list. But it never connects. I can try like 5-10 times, it’s a bit of a lottery but it’ll eventually connect. It also has a tendency to drop Bluetooth connection. Pro ver1 controller doesn’t have issues. If I skip Virtualhere (on nvidia shield pro) and bring my tplink bt 5.0 dongle and connect it directly to pc, pro controller ver2 works fine. Both nvidia shield and pc are on Ethernet.

The thing is - as far as I can tell, the ver2 controller will pretty much either "almost connect" or "connect".  If it successfully connects, the ver2 controller is the one that has a tendency to drop its BT connection.  

Any ideas or things to do for the debug effort?

#18

Interesting. When using the 8bit do version 2 via VirtualHere, on the client PC open Windows Device Manager ->View By Connection -> VirtualHere USB 3 eXtensible Host Controller and find the 8Bit-Do under there.

 

Now right click on the 8-bit do in Device manager and select Properties and see if there is a Power Events tab? If so UNcheck allow windows to turn off device to save power.

 

#19

Hi Michael,

I've gone into device manager and found the only related device to turn off power management.  It technically doesn't spawn under the Pro Ver2 controller.  But it creates a listing under "Bluetooth Xinput compatible input device" and that's where I turned it off.  The HID-compliant game controller it spawns, there is no power management option to turn off.  

Screen capture:  https://imgur.com/xzQE5Qf

I don't know if this changed anything.  I've tried turning off/on the controller - it still "almost connects" and fails.  Or it eventually connects after several tries.  Not sure if it helps with the longer term bluetooth compatibility but I can test that next time I have a long term multiplayer gaming session with gf.  Not sure what to do with this "almost connects" situation - it seems the BT controller is doing some sort of handshake but it fails for some reason under Virtualhere.  

#20

Can you contact the 8bitdo guys?

They might be willing to work with me to get it going. They might be able to run some tests via virtualhere to see if they know the problem. I dont know what the firmware inside their device is doing, but they would have full access to that, and that might help a lot.

It helps them too because then their 8bitdo device v2 would work in the cloud via virtualhere

#21

I've sent an email to their support center just now, I await a response in a few days.  Is there contact info for you if they want to work with you directly?  feel free to PM me.  

#22

Sure, just email mail [at] virtualhere.com (mail[at]virtualhere[dot]com)