I wanted to have 4 different button mappings depending on a selected MODE on SEM. I use it for DCS so my options were to do it directly in VKB software or try to do it in DCS. I tried both solutions and decided that to do it via VKB software is a better one.
I am going to explain both solutions here.
1. VKB config
Button numbers may be different on your device than on mine, you can check them in 'Test' tab on the bottom.
Let's start with a A1 button on SEM (button 1 in my case). By default, when you select a MODE (for example MODE 4) it acts like you press and hold a button (button 16 in my case).
In 'Physical Layer' tab, click on some non used (grey) button.
In popup window set the type to 'Boolean'. Set Operand 1 to '16' (my button 16) and Operand 2 to '1' (my button 1) and close the window.
Switch to 'Logical Layer' tab. You can see a new button here, in my case Button 25. Click 'SET' on top to load our new config to SEM.
Now select a 'Test' tab on the bottom. When I select MODE 4 on SEM, I can see button 16 is pressed. Now if I press button A1 on SEM, I can see button 1 is pressed. But I can also see our new button 25 is pressed.
So now you can bind a button 25 in your appliacation and it will only work if you select MODE 4 and press button A1 on SEM.
With this analogy, you can basically create a new set of buttons for each MODE. Well, actually there is not enough space for all buttons and 4 modes, but there is just enough space to do it for all buttons except the ones on Landing Gear and Flaps lever. Or you can of course create only 3 modes and that way you can fit them all.
Here is a screenshot from my config with 4 modes, each with 13 buttons.
Tip: Use a copy function when defining these buttons, it saves a lot of work!
PROS of this method
- This should now work in any application that supports enough buttons
CONS
- Not possible to create 4 modes with all of the buttons on SEM, not enough space
- You should not use original buttons (1-24)(Excluding Landing Gear and Flaps in my case) anymore, because there will always be original button + virtual button pressed. But you still have 4 times more buttons than before
- Some application let you bind buttons only by pressing them. However, I noticed it registers the default button, so I need to manually select my new virtual button from a list. For example DCS and MSFS allows this, but I think IL-2 does not (don't quote me on that) ---- edit: actually you can disable original buttons in 'Logical Layer', change them to 'No Function' to avoid this problem
2. DCS Modifiers
DCS allows you to setup any button as modifier. There are two types of Modifiers in DCS - 'Modifier" and 'Switch'.
'Modifier' type works like for example Shift button on your keyboard, you need to hold it down and then press another button. But MODE buttons on SEM are by default always pressed, so it's like you are always pressing a modifier and your other binds don't work.
'Switch' works in a way that you need to press a button to activate modifier and then press the same button again to disable it. This is not how MODE buttons on SEM work, but it's very easy to make them work this way. All you need to do is in 'Physical Layer' to change their type from 'Button' to 'Toggle' and uncheck '2 buttons'.
When you do that and select a test tab, if I select mode 4 i can see button 16 is pressed and released. And when I select other mode button 16 is pressed again.
PROS of this method
- Less work
- Theoretically you can have 4 modes with all buttons, including those on 'Landing Gear' and 'Flaps' lever
CONS
- When you load into game in DCS, it doesn't recognize what MODE you are in. You first need to select a mode. But remember, when you change modes it will also press a button of whatever mode you are in right now, because it's set up that way in our VKB config, making the game think you just activated it. So what you need to do is sacrifice one MODE button that you will not use as a modifier and ALWAYS select that one before you load into game. Then you must select your mode. This was the reason I went with VKB config solution.
Hope someone finds this useful, happy flying!
![Wink :wink:](./images/smilies/icon_wink.gif)
Jan