Jump to content

USB Issue with 9 or more devices connected


Recommended Posts

My experience is, that with older versions of DCS (f.e. 2.5.6.59398) and other sims there is no problem. Therefore I don`t think of a hardware related problem...

My setup works well, even with DCS, if I reconnect all devices after DCS-startup. For me it looks like an issue/script-thing at startup that has changed with the latest development of DCS.

Link to comment
Share on other sites

  • 1 month later...

Started having this issue myself as well. I've reduced the number of plugged in USB items as much as possible, but if the solution involves disabling controls I need to play the sim, then it's not much of a solution.

 

I can run the sim if I don't run the TARGET software for my warthog throttle profiles (which adds the 'virtual' joystick as a device and brings the controller devices to 9) but then I can't use my warthog throttle properly. This only started happening recently and I hadn't changed any inputs.

 

Very frustrating. Hopefully the 2.7 update resolves this....

Link to comment
Share on other sites

On 4/10/2021 at 8:38 AM, Flappie said:

@JimCI'd be happy to help chasing this bug, but I don't own 9 controllers (Warthog+ Throttle + Rudder + 3 XBox controllers + keyboard + mouse = 8).

I really don't think it's to do with the number of controllers.

 

If you take a look at my two posts:

 

 

 

 

you'll see that number of devices weren't significant.

 

I think you might have had something earlier when you asked about USB hubs. My last post suggests that might be something to do with it.

Link to comment
Share on other sites

I have literally just been affected by this issue. I have been using my 9 devices for over a year now without a single issue. I was even playing on 2.7 today earlier without an issue. 

Then I updated windows and suddenly this issue is now affecting me. 

 

I reverted to a previous windows install but unfortunately this is now affecting me. I am using a powered USB hub with 9 devices in the HUB and also track IR connected. 

 

I really hope this can be fixed by ED. I can't bring myself to play anymore as taking devices away or rebinding is pretty demoralising! 

 

I can't understand how this has affected me and oddly it was working before 2.7 and even after 2.7. But after a computer restart from a windows update I now have this issue. 

 

#1). I tried a quick test and took out my TM Warthog, but plugged in an XBOX controller in a different USB HUB and I was able to load. So 9 isn't the limit it seems.

 

#2). I tried another fix. I moved my TM Warthog throttle to my second USB HUB. So now everything is the same as before, only difference is I have moved my throttle to a different USB port, same amount of devices as I was always using and now DCS is is back working again! Perhaps it is a USB hub problem.


Edited by Razor5-1
Link to comment
Share on other sites

Thanks for the replies guys appreciate your input and advice.

 

It all started with the hot plug options for controllers in the xmas update.

I have a usb card on my motherboard, and could run all devices no problems, so i don't see why we have to chase a solution for this. Its a BUG straight and simple and they have seemed to have walked away from it.

Have spent a lot of money on this sim and devices for it as many others have too. I think it is very poor we are not getting official feedback, just left to the forum members who are very good at solving stuff but are still limited in what can be fixed without official help.

9 or more devices work fine it IL2,CoD, ROF, so cant see why this is so hard to fix.

Very disappointing. This is a BUG that needs to be addressed asap.  

Link to comment
Share on other sites

Let's not lose hope. We need more info about what triggers the bug.

I've just plugged in my 3 XBox controllers. I now have 9 devices connected. I don't use any USB hub. I'll try to reproduce the bug. No luck on my first try. Do you have any idea of how to trigger this? Maybe I need to start assigning controls to my XBox controllers... I'll try this.

Don't accept indie game testing requests from friends in Discord. Ever.

Link to comment
Share on other sites

@JimCI've just learnt a few things about Lua coding. Here is a mashup of Utils.lua and some added comments. I explain how things are supposed to work from my point of view (disclaimer: I'm not a professional programmer, I may be wrong).

 

--THIS ARRRAY CONTAINS DIFFERENT DEVICE TYPES, numbered from 1 to 7
local deviceTypeOrder_ = {
	[Input.getKeyboardDeviceTypeName	()]	= 1,
	[Input.getJoystickDeviceTypeName	()]	= 2,
	[Input.getTrackirDeviceTypeName		()]	= 3,
	[Input.getHeadtrackerDeviceTypeName	()]	= 4,
	[Input.getCustomDeviceTypeName		()]	= 5,
	[Input.getMouseDeviceTypeName		()]	= 6,
	[Input.getUnknownDeviceTypeName		()]	= 7,
}

--THIS FUNCTION RETURNS A SORTED DEVICES LIST. THE SORTING IS DONE BY THE compareDeviceType() FUNCTION SHOWN BELOW
local function getDevices()
	local devices = Input.getDevices()
	table.sort(devices, compareDeviceType) --THE ISSUE “invalid order function for sorting” COMES FROM THIS SORTING COMMAND
	return devices
end

--HERE IS compareDeviceType(). THIS FUNCTION SORTS DEVICES BY DEVICE TYPE
local function compareDeviceType(deviceName1, deviceName2)
  
  --retrieving device types
	local deviceTypeName1 = getDeviceTypeName(deviceName1)
	local deviceTypeName2 = getDeviceTypeName(deviceName2)
  
  --when compared devices types are the same, we place the throttle first (also works if both are throttle)
	if deviceTypeName1 == deviceTypeName2 then
		if string.find(deviceName1, 'Throttle') or string.find(deviceName1, 'throttle') then
			return true
		end
		if string.find(deviceName2, 'Throttle') or string.find(deviceName2, 'throttle') then
			return false
		end		
	end
  
  --when compared devices types are different, we use the type numbers (see the array above) to sort them (e.g. type 1 will come before type 2)
	return deviceTypeOrder_[deviceTypeName1] < deviceTypeOrder_[deviceTypeName2]
  -- I think the error comes from this line, if a device type is absent from the device type array
 
end

local function getDeviceTypeName(deviceName)
	local result = deviceTypeNames_[deviceName]

	if not result then
		result = Input.getDeviceTypeName(deviceName)
		deviceTypeNames_[deviceName] = result
	end

	return result
end

 

Don't accept indie game testing requests from friends in Discord. Ever.

Link to comment
Share on other sites

@JimCand others experiencing the issue, please rename this file "\DCS World...\Scripts\Input\Utils.lua" as "Utils.lua_backup", then copy attached file in the same directory.

Launch DCS with all devices connected, wait for DCS to freeze, then quit.

Attach the resulting dcs.log file.

 

All I did was adding a line to log the different device type numbers found by DCS in the dcs.log file:

log.info('FLAPPIE LOGGING: comparing '..deviceName1..'('..deviceTypeOrder_[deviceTypeName1]..') with '..deviceName2..'('..deviceTypeOrder_[deviceTypeName2]..')')

 

This is what I get:

2021-04-18 16:26:26.519 INFO    Gui: FLAPPIE LOGGING: comparing Mouse(6) with Keyboard(1)
2021-04-18 16:26:26.519 INFO    Gui: FLAPPIE LOGGING: comparing vJoy Device {80382BF0-9B61-11eb-8002-444553540000}(2) with Keyboard(1)
2021-04-18 16:26:26.519 INFO    Gui: FLAPPIE LOGGING: comparing Mouse(6) with vJoy Device {80382BF0-9B61-11eb-8002-444553540000}(2)
2021-04-18 16:26:26.519 INFO    Gui: FLAPPIE LOGGING: comparing VKBsim Black Box  {75D8AB30-73DD-11e7-8001-444553540000}(2) with vJoy Device {80382BF0-9B61-11eb-8002-444553540000}(2)
2021-04-18 16:26:26.519 INFO    Gui: FLAPPIE LOGGING: comparing vJoy Device {80382BF0-9B61-11eb-8002-444553540000}(2) with Throttle - HOTAS Warthog {91C40740-7531-11e7-8001-444553540000}(2)
2021-04-18 16:26:26.519 INFO    Gui: FLAPPIE LOGGING: comparing Joystick - HOTAS Warthog {91C40740-7531-11e7-8002-444553540000}(2) with vJoy Device {80382BF0-9B61-11eb-8002-444553540000}(2)
2021-04-18 16:26:26.519 INFO    Gui: FLAPPIE LOGGING: comparing vJoy Device {80382BF0-9B61-11eb-8002-444553540000}(2) with Joystick - HOTAS Warthog {91C40740-7531-11e7-8002-444553540000}(2)
2021-04-18 16:26:26.519 INFO    Gui: FLAPPIE LOGGING: comparing VKBsim Black Box  {75D8AB30-73DD-11e7-8001-444553540000}(2) with vJoy Device {80382BF0-9B61-11eb-8002-444553540000}(2)
2021-04-18 16:26:26.519 INFO    Gui: FLAPPIE LOGGING: comparing vJoy Device {80382BF0-9B61-11eb-8002-444553540000}(2) with Throttle - HOTAS Warthog {91C40740-7531-11e7-8001-444553540000}(2)
2021-04-18 16:26:26.519 INFO    Gui: FLAPPIE LOGGING: comparing Mouse(6) with VKBsim Black Box  {75D8AB30-73DD-11e7-8001-444553540000}(2)
2021-04-18 16:26:26.519 INFO    Gui: FLAPPIE LOGGING: comparing Joystick - HOTAS Warthog {91C40740-7531-11e7-8002-444553540000}(2) with Keyboard(1)
2021-04-18 16:26:26.519 INFO    Gui: FLAPPIE LOGGING: comparing Throttle - HOTAS Warthog {91C40740-7531-11e7-8001-444553540000}(2) with Keyboard(1)
2021-04-18 16:26:26.519 INFO    Gui: FLAPPIE LOGGING: comparing Joystick - HOTAS Warthog {91C40740-7531-11e7-8002-444553540000}(2) with Throttle - HOTAS Warthog {91C40740-7531-11e7-8001-444553540000}(2)

 

Utils.lua


Edited by Flappie
updated script, will now display "device name(device type number)"

Don't accept indie game testing requests from friends in Discord. Ever.

Link to comment
Share on other sites

  • 2 weeks later...

For the record, as I have been following for awhile but hadn't posted. I'm running the below USB devices. The hubs are required due to control locations vs PC location and a powered hub for my VR headset as it glitches out off mobo power.

USB3 Hub
Virpil MongoosT-50CM2 Stick
Virpil MongoosT-50CM2 Throttle (3 devices)
Saitek Combat Flight Pedals

USB3 Hub
Samsung Odyssey+ WMR VR Headset

Keyboard
Mouse
Front panel Card reader
Datacolor Spyder5 (monitor colour calibration)
External HDD

Link to comment
Share on other sites

Many thanks for your test, @Helical. This is the error you're getting with my modified Utils.lua script:

 

2021-04-26 11:09:44.334 ALERT   Dispatcher: Error starting Game GUI: [string "./Scripts/Input\Utils.lua"]:13: attempt to call field 'getUnknownDeviceTypeName' (a nil value)

 

Line 13 is the association between "Input.getUnknownDeviceTypeName        ()" and the index 7 of array "device_Type_Order_" (below, in red):

 

local deviceTypeOrder_ = {
    [Input.getKeyboardDeviceTypeName    ()]    = 1,
    [Input.getJoystickDeviceTypeName    ()]    = 2,
    [Input.getTrackirDeviceTypeName        ()]    = 3,
    [Input.getHeadtrackerDeviceTypeName    ()]    = 4,
    [Input.getCustomDeviceTypeName        ()]    = 5,
    [Input.getMouseDeviceTypeName        ()]    = 6,
    [Input.getUnknownDeviceTypeName        ()]    = 7,
}

 

According to the error message you're getting, function "getUnknownDeviceTypeName ()" does not exist. I'll ask ED to take a look.


Edited by Flappie
  • Like 1

Don't accept indie game testing requests from friends in Discord. Ever.

Link to comment
Share on other sites

Bingo! I reverted DCS to October's stable update: this "getUnkownDeviceTypeName" call wasn't there yet.

The issue started in December, when this call was introduced.

 

local deviceTypeOrder_ = {
	[Input.getKeyboardDeviceTypeName()]			= 1,
	[Input.getJoystickDeviceTypeName()]			= 2,
	[Input.getTrackirDeviceTypeName()]			= 3,
	[Input.getHeadtrackerDeviceTypeName()]		= 4,
	[Input.getCustomDeviceTypeName()]			= 5,
	[Input.getMouseDeviceTypeName()]			= 6,
}

 

Utils(DCS 2.5.6.55960).lua


Edited by Flappie
  • Like 1

Don't accept indie game testing requests from friends in Discord. Ever.

Link to comment
Share on other sites

  • ED Team

Hi all

 

is anyone using dcs open beta 2.7 seeing this issue or is it users still on 2.5.6 ?

 

smallCATPILOT.PNG.04bbece1b27ff1b2c193b174ec410fc0.PNG

Forum rules - DCS Crashing? Try this first - Cleanup and Repair - Discord BIGNEWY#8703 - Youtube - Patch Status

Windows 11, NVIDIA MSI RTX 3090, Intel® i9-10900K 3.70GHz, 5.30GHz Turbo, Corsair Hydro Series H150i Pro, 64GB DDR @3200, ASUS ROG Strix Z490-F Gaming, HP Reverb G2

Link to comment
Share on other sites

  • 4 weeks later...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...