Falcon BMS Forum
    • Register
    • Login
    • Search
    • Categories
    • Unread
    • Recent
    • Unsolved
    • Popular
    • Website
    • Wiki
    • Discord

    Configure a pinky (shift button)

    CH
    4
    5
    288
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      splashh last edited by

      Hi, my setup is a CH Fighterstick+prothrottle+propedals. I’d like to use button 4 in FS as a shift to duplicate all the buttons. Could you please tell me how to do it?
      Thanks.

      1 Reply Last reply Reply Quote 0
      • F
        Frederf last edited by

        That stick has profiling software and you could do it with that but the built-in BMS functionality is a much better option in my opinion. The follow in that way:

        There is a button function (called a callback) in BMS called SimHotasPinkyShift which is like the pinky switch except it elevates all of your button numbers by 256 when held and does the normal pinky button function when tapped briefly. It does require a small amount of text editing of the .key file to define the shifted button presses.

        The first step would be to make a copy of your .key file for backup purposes and later at each step where you might want to go back to the “last known working one” as you make edits (e.g. splashh1.key, splashh2.key, etc.) . Open your .key file in a text editor like Notepad and find all lines which have the word SimHotasPinkyShift and delete them (1 or 2). Assuming the file does not contain the word SimHotasPinkyShift anywhere, paste in the following line:

        SimHotasPinkyShift -1 0 0XFFFFFFFF 0 0 0 1 “STICK: PINKY SWITCH (DX SHIFT)”

        Save the .key file and go into BMS setup and find this function in the big keyboard binding table. Highlight it and press the joystick button for the pinky function on your joystick. Save the .key file again and exit BMS.

        Open the .key file with Notepad again and notice a new line has been added by BMS at the bottom. It will look something like:

        SimHotasPinkyShift 2 -1 -2 0 0x0 0

        Don’t worry if the exact numbers are different. What this is saying is that when you press the #3 joystick button (0 is one, 1 is two, 2 is three, etc.) it will trigger the callback SimHotasPinkyShift. That’s correct but there’s a small issue. When we hold button #3 every joystick button ID will be increased including button #3 which will become button #259. To be able to stop triggering the callback we need to also bind button #259 to that function. This is done simply by making a copy of the first line and editing the number like this:

        SimHotasPinkyShift 2 -1 -2 0 0x0 0
        SimHotasPinkyShift 258 -1 -2 0 0x0 0

        When button 3 is held it triggers the callback to function and when button 259 is released the callback stops functioning. Despite having two different numerical IDs it is the same button physically. This is the groundwork for setting up pinky shifting and if you understand this you are 90% of the way to mastery of the concept. Next is the process of making a shifted bind which is very similar to what we did above. For example let’s say that I want TMS Up to be the unshifted function and CMS Up to be the shifted function. First we find the DX binding for the unshifted function in the .key file:

        SimTMSUp 6 -1 -2 0 0x0 0

        This means that button #7 will trigger SimTMSUp. When the pinky shift button is held button #7 will become button #263. We cannot bind button #263 within the BMS program so we do it with a text edit instead. The process is simple, copy the line for the unshifted function and modify both the callback and the button ID (+256). The result is like so:

        SimTMSUp 6 -1 -2 0 0x0 0
        SimCMSUp 262 -1 -2 0 0x0 0

        The rest of the labor is doing this process for all of the functions you wish to assign to the shifted ID range.

        Snake122 1 Reply Last reply Reply Quote 0
        • Snake122
          Snake122 @Frederf last edited by

          I also like to use the .Cfg edit of:
          set g_nHotasShiftQuickPressTimeLimit XXX

          The XXX is time in milliseconds for it to take to act as a shift. I have mine set to 333 for 1/3 of a second. For me, it allows the shift button to still act as the radar expand (or whatever you want to program it to) if I just tap it.

          I5-13600KF, 32GB DDR4 3200, PNY RTX 4090. Pimax 8KX, Reverb G2, Quest 2, 55" 4K TV+TIR5. Saitek X65F, Saitek Switch Panel, DIY switch box, PointCTRL, TM MFDs, PSM ICP, Logitech G13 DED, TM TPR pedals. JetPad, 3rd Space Vest, and bass pucks

          S 1 Reply Last reply Reply Quote 0
          • S
            splashh @Snake122 last edited by

            Many many thanks for your answer. I have to read slowly across the whole explanation and configure my HOTAS. I prefer to do it from BMS instead of CH Control Manager as you said.

            ce_zeta 1 Reply Last reply Reply Quote 0
            • ce_zeta
              ce_zeta @splashh last edited by

              @splashh:

              Many many thanks for your answer. I have to read slowly across the whole explanation and configure my HOTAS. I prefer to do it from BMS instead of CH Control Manager as you said.

              Wise choice Pal.

              1 Reply Last reply Reply Quote 0
              • First post
                Last post

              73
              Online

              10.7k
              Users

              21.1k
              Topics

              349.3k
              Posts

              Benchmark Sims - All rights reserved ©