Solved USB Devices in BMS
-
Could someone tell me if there is a limitation on how many USB devices BMS allows, or no limitation?
-
@mailman
BMS-Technical-Manual.pdf sec 10.6.5 says “16”But I think you have to raise the g_nHotasPinkyShiftMagnitude cfg value, if you want to use a shifted-layer, and have more than 8 devices.
-
16 is the max, but g_nHotasPinkyShiftMagnitude should remain the same no matter how many devices are connected. It applies equally to all devices, and shouldn’t be changed from default unless the person knows exactly what for and why they are doing it.
-
@airtex2019 When I added a new ICP (USB) I had to raise the pinky shift magnitude to 512, otherwise I could not program the shifted state of my Cougar. The ICP would use the shifted button numbers 256-288 and deactivate my Cougar shifting. I used 512-544 for the Cougar shifting.
-
@mailman said in USB Devices in BMS:
@airtex2019 When I added a new ICP (USB) I had to raise the pinky shift magnitude to 512, otherwise I could not program the shifted state of my Cougar. The ICP would use the shifted button numbers 256-288 and deactivate my Cougar shifting. I used 512-544 for the Cougar shifting.
Definitely related to those specific controllers, this is a good example of when to/why to change the shift magnitude - I just wanted to note that this is not tied to number of USB devices. Also might have been resolved by reordering the device sorting file, but as long as you got it working, congrats and best wishes!!
-
@semlerpdx said in USB Devices in BMS:
shouldn’t be changed from default unless the person knows exactly what for and why
What is the reason for it? I thought it was precisely for using a shift-layer with n>8 directinput devices.
viz. 32x8==256 … so by default, the 9th device you plug in would have button-id that overlaps with device #1-shifted
-
@airtex2019 said in USB Devices in BMS:
@semlerpdx said in USB Devices in BMS:
shouldn’t be changed from default unless the person knows exactly what for and why
What is the reason for it? I thought it was precisely for using a shift-layer with n>8 directinput devices.
viz. 32x8==256 … so by default, the 9th device you plug in would have button-id that overlaps with device #1-shifted
But doesn’t that assume that the user is going to use a shifted state for every single controller and therefore occupying the entire range of those DX button numbers? Apologies, I’ve not been well, and my head isn’t on straight - I should probably take some time away instead of making silly points or poorly conveyed ones.
If I have a dozen controllers, not all with 32 buttons, and not all using shifted layers, I can definitely avoid increasing the magnitude (iirc, through device sorting file, but I’ve lost all confidence now haha) - that was my terrible point. lol, I can laugh at myself but still I do feel silly. Cheers, airtex!
-
@semlerpdx No worries mate. I think we can agree, the whole dx button number thing is certainly complex and confusing.
Which reminds me…
@MailMan just fyi there is a separate limit on 8-way-hat inputs… I think just 2 of those (each potentially with a shifted layer) are supported.
There are some special cfg variables, described in the manual, for how to configure 2 separate 8-way hats.
-
It really isn’t that confusing. Simply put, the math you laid out above is correct; # of Windows Game Controllers (aka DX devices) times the potential of 32 buttons per device. for 8 devices (default) then that’s 256 and therefore shifted button 1 on device 1 would be button 257 and so on up to 512.
If you add a 9th device but don’t change the shift value, then you have a collision of buttons; the 1st button on device 9 would be 257 and not the shifted button 1 on device 1. and since BMS doesn’t know which devices will use shifting and which ones won’t, you have to assume every one will / could if you want to avoid collisions.
so, if you have 9 DX devices then your pinky shift should be set to 9 x 32 = 288 at a minimum. To keep it simple, just max out the pinky shift to 16 x 32 = 512 and you should be good to go.
-
-
<p>@Zeus I got this part figured out. Setting my pinky shift value to 512 allows me to program everything. Right now I am having another issue. Everything works in the Main/Controllers screen except the release commands for 3 position switches, but nothing works in the 3D World. AXIS’ work on my stick and throttle, but no buttons or switches work. This is the only thing holding me up.</p>
-
<blockquote>@Zeus I got this part figured out. Setting my pinky shift value to 512 allows me to program everything. Right now I am having another issue. Everything works in the Main/Controllers screen except the release commands for 3 position switches, but nothing works in the 3D World. AXIS’ work on my stick and throttle, but no buttons or switches work. This is the only thing holding me up.</blockquote><p><br />Have you loaded your desired keyfile? …I hate to assume otherwise, I see you said it works in the Main/Controllers screen; just wanna be sure<br /><img class=“ql-image” src=“https://i.imgur.com/roYIVpH.png” /></p>