Jump to content
Sign in to follow this  
Jack_Sawyer

Saitek yoke Mode 1-2-3 switch & FSUIPC newbie

Recommended Posts

Here's what I'd like to know how it can possibly be done. I have a Saitek Yoke, throttle, and pedals. I have been using Saitek's SST software for a year now but I just bought a Saitek X52 Pro I'd also like to use and the SST's don't get along. Saitek even duplicated it, the X52 Pro software locks out my yoke switches, makes them not function. So I bought a registered copy of FSUIPC yesterday.

 

I'd like to start with the yoke, throttle. and pedals. I haven't even begun setting them up yet as I have to read the manual and assign as I go. I have FSX Gold and Win 7 64. A lot of A2A planes and the NGX.

 

What I really need to know is if there's a way to program the Mode 1-2-3 rotary switch on the back of the yoke so I can have triple functionality of all my buttons. If not then I'll lose 2/3 of my assignments.

 

The same goes for the X52 Pro as it too has a mode 1-2-3 rotary button.

 

Do I have to learn all that code? How do I learn it? Do I need SPAD? Or LINDA also? It seems daunting.

 

Complete and total FSUIPC newbie.

 

Thanks.


Jack Sawyer

Share this post


Link to post
Share on other sites

What I really need to know is if there's a way to program the Mode 1-2-3 rotary switch on the back of the yoke so I can have triple functionality of all my buttons. If not then I'll lose 2/3 of my assignments.

 

Yes, it is possible. If you go into the windows test page for your yoke you will see that the mode switch 'holds down' one of three buttons (from memory, I think buttons 9, 10 and 11) according to which position it is set to. In FSUIPC you can use the mode switch as a sort of shift key using 'compound button conditions' (search for that in the Advanced User Guide - it's on p21 of mine). This is actually very fiddly but doable if you are methodical. In other words, decide what you want to program to which action and write it all down first - it is difficult to do this ad hoc as you need to edit the fsuipc4.ini file and it is very cryptic. To work on a particular button the best way is to program one action for that button from within FSUIPC and then go and edit the ini file to set up the conditions. You cannot set conditional/compound buttons from the user interface. You will basically need to find the line for button you have programmed and then duplicate it two more times and add the conditions.


MarkH

gGzCVFp.jpg
Core i7-7700K / 32Gb DDR4 / Gigabyte GTX1070 / 1080p x 3 x weird / Win7 64 Pro

Share this post


Link to post
Share on other sites

Thanks Mark. Boy, this seems extremely difficult. It all seems like giggerish to me. I'm just starting, total newbie. I look at that code and think there's no way I can figure it out.

 

I wish there was a good YouTube on it or a good tutorial somewhere but I can't find any anywhere I look. I have no idea how I'm going to learn all this.

 

I hope I didn't open a can of worms just because I wanted a joystick.

 

I have everything printed out already, ALL FSX commands, controls, buttons, and all the Saitek button settings, it's all printed out as I'm very methodical about things like this.

 

I'll just have to sit down and read and read it till I somehow "get" it.

 

Thanks.


Jack Sawyer

Share this post


Link to post
Share on other sites

P.S. You can use LINDA's shift functions, although I think historically there have been issues with them sticking on. I implement my own shift functions in LINDA scripts by managing a global variable. For example, you would map actions to the Mode switch events (buttons 9, 10, 11) that would change the value of a variable, say 'Current_Saitek_Mode' to 1, 2 or 3. Then you can check this variable in all your Lua scripts and do one of three alternative actions.

 

This way will only really make sense if you are adopting LINDA wholesale, since it means many or all of your actions need to be wrapped in LINDA Lua functions.


MarkH

gGzCVFp.jpg
Core i7-7700K / 32Gb DDR4 / Gigabyte GTX1070 / 1080p x 3 x weird / Win7 64 Pro

Share this post


Link to post
Share on other sites

Thanks again Mark but I'm laughing out loud right now because what you wrote might as well be ancient Mesopotamian to me. I have absolutely no idea what you just said. Remember, I've been using the Saitek SST software for a year now and this stuff you're talking about is like about a million light years over my head. Man oh man how did you learn this?


Jack Sawyer

Share this post


Link to post
Share on other sites

Thanks Mark. Boy, this seems extremely difficult. It all seems like giggerish to me. I'm just starting, total newbie. I look at that code and think there's no way I can figure it out.

 

Since you have printed everything out I think you are serious enough that you will get it, although it will take a bit of experimentation. I am not going to do a full tutorial but here is an extract from an old fsuipc4.ini file that shows some conditional buttons. This is more complex than you need because I have used two different shift keys!

[Buttons]
...
6=PD,4,K13,24
12=UD,6,C66011,0
14=CP(+C,12)(+C,13)C,19,C66368,0 ;OBI Inc: Button 12 ON=NAV1, Button 13 ON=Fast
15=CP(+C,12)(-C,13)C,19,C65663,0 ;OBI Inc: Button 12 ON=NAV1, Button 13 OFF=Slow
16=CP(+C,12)(+C,13)C,18,C66367,0 ;OBI Dec: Button 12 ON=NAV1, Button 13 ON=Fast
17=CP(+C,12)(-C,13)C,18,C65662,0 ;OBI Dec: Button 12 ON=NAV1, Button 13 OFF=Slow
18=CP(-C,12)(+C,13)C,19,C66370,0 ;OBI Inc: Button 12 OFF=NAV2, Button 13 ON=Fast
19=CP(-C,12)(-C,13)C,19,C65665,0 ;OBI Inc: Button 12 OFF=NAV2, Button 13 OFF=Slow
20=CP(-C,12)(+C,13)C,18,C66369,0 ;OBI Dec: Button 12 OFF=NAV2, Button 13 ON=Fast
21=CP(-C,12)(-C,13)C,18,C65664,0 ;OBI Dec: Button 12 OFF=NAV2, Button 13 OFF=Slow
26=PC,31,C65607,0
...

The bits you are interested in are lines 14 to 21, which all define actions for button 19 on joystick C. Look at line 14 as an example:

14=CP(+C,12)(+C,13)C,19,C66368,0 ;OBI Inc: Button 12 ON=NAV1, Button 13 ON=Fast

Everything after the ; is a comment. Without any 'shift' operation (and no comment) this would look like this:

14=PC,19,C66368,0

From left to right, the '14=' is just line numbering in the file. 'P' means trigger an action on the DOWN stroke of a button (U would be the upstroke). C is the joystick id. 19 is the button number we are programming. C66368 is an FSX function to call (NAV1 OBI increment quickly). 0 is a parameter for that function. Back to the full line:

14=CP(+C,12)(+C,13)C,19,C66368,0 ;OBI Inc: Button 12 ON=NAV1, Button 13 ON=Fast

You will see I have added two sets of parentheses between the P and the joystick id ( C). I have also changed the initial P to CP (conditional button press). The parenthetical bits are:

(+C,12)(+C,13)

These are two separate conditions. You can think of it that when things are running and you press button 19 on joystick C, FSUIPC looks down this file for any line that defines an action for this button. BUT that line is only acted on if any conditions defined on it are also true. As I said, this line has two separate conditions. The first says: (+C,12), which means this line only matches if button 12 on joystick C is also down (+). The second condition is (+C,13), which says button 13 also has to be down for this to execute. If you look at the next line you will see it defines a slightly different condition, with (-C,13). This means the line only matches if button 13 of joystick C is NOT down (-).

 

What I am doing with these eight lines is making button 19 (which I think is a rotary control turned to the right) increment the OBI of either the NAV1 or NAV2 instrument, depending on whether button 12 is held down. And further, whether we are incrementing NAV1 or NAV2, we do it slow (1 degree at a time) or fast (10 degrees at a time) according to whether button 13 is held down. (Button 13 is the centre-push switch of my rotary control, so I want push-and-turn to increment in larger steps.)

 

So there you go, it's as easy as that!


MarkH

gGzCVFp.jpg
Core i7-7700K / 32Gb DDR4 / Gigabyte GTX1070 / 1080p x 3 x weird / Win7 64 Pro

Share this post


Link to post
Share on other sites

Thanks Mark, it's not really as easy as that but with a LOT of time I might be able to grasp it. For example, how did you know that C66368 is what it is? How did you learn this? Is there a FSUIPC for Dummies guide somewhere I could download? I'm being serious. It looks like you really know what you're doing but this coding is still beyond me. Did you go to school for this? You had to start out somewhere I mean right? Am I missing something? All I have to go on so far is Pete's User's Guide and his Advanced Guide but nowhere to actually learn it.


Jack Sawyer

Share this post


Link to post
Share on other sites

how did you know that C66368 is what it is?...Is there a FSUIPC for Dummies guide somewhere I could download?

 

The simplest way to know this is to program a button from the FSUIPC user interface and then go and look for it in the fsuipc4.ini file. But there's a list of all the codes in the document called 'List of FSX and P3D controls', which you should have. Here's where to get the docs if you don't have them all. And when the need arises, you can look here for super-advanced docs!  B)

 

As for your second question - FSUIPC ain't for dummies! That said, there are many tutorials out there. I have an intro by somone called 'Sim Samurai', though I can't remember where I got it.


MarkH

gGzCVFp.jpg
Core i7-7700K / 32Gb DDR4 / Gigabyte GTX1070 / 1080p x 3 x weird / Win7 64 Pro

Share this post


Link to post
Share on other sites

The simplest way to know this is to program a button from the FSUIPC user interface and then go and look for it in the fsuipc4.ini file. But there's a list of all the codes in the document called 'List of FSX and P3D controls', which you should have. Here's where to get the docs if you don't have them all. And when the need arises, you can look here for super-advanced docs!  B)

 

As for your second question - FSUIPC ain't for dummies! That said, there are many tutorials out there. I have an intro by somone called 'Sim Samurai', though I can't remember where I got it.

Yes, a friend sent me the SimSamuri one to me too.  Some documents seem easy to follow as for programming the buttons and the axes but when you throw the Mode switch into the mix to enable me to have thrice the amount of button assignments then it gets very difficult.

 

The Saitek SST software worked fine for me for that because it's designed to do that but FSUIPC I can see is going to be a challenge.

The only problem is I can't have both the Saitek devices, even if one is unplugged because there are conflicts and Saitek is aware of this and they're supposed to get back to me tomorrow but I doubt they will.  I was on the phone with them for 90 minutes on Friday and they duplicated the problem.  I guess they never figured someone would want TWO of their products.  Go figure.

So do I try to learn all this stuff or do I just send it back and live with the yoke and not have a joystick?

I wish FSUIPC could have made it a little easier.

 

I'm not joking Mark, really, how did you learn it all?  I mean the coding and such?  Did you have computer classes for it or did you just learn it all on your own?

 

And I really appreciate all your help.


Jack Sawyer

Share this post


Link to post
Share on other sites

Did you have computer classes for it

 

Well yes, I did :)


MarkH

gGzCVFp.jpg
Core i7-7700K / 32Gb DDR4 / Gigabyte GTX1070 / 1080p x 3 x weird / Win7 64 Pro

Share this post


Link to post
Share on other sites

I'd pay someone to show me and help me do it if someone lived close to me to come over and do it.

 

Is there any way you could show me how you did it with the Saitek yoke mode switch?

Could you send me your ini text via PM?


Jack Sawyer

Share this post


Link to post
Share on other sites

Is there any way you could show me how you did it with the Saitek yoke mode switch?

 

I have not done it with the Saitek mode switch but honestly, with the example I have posted above you should be able to figure it out - only the joystick id and button numbers will be different. Here is one methodical way to do it. I am assuming you already have a list of all the functions you want to program for each mode. I cannot guarantee this is correct in every detail as I am writing it without doing it for real. (In fact this more or less guarantees I will make a mistake or miss a step, but give it a try.) I suggest you do this with one or two buttons for each mode first, so if something is wrong you are not duplicating it sixty times before you figure that out!

 

(1) Start with Mode 1. In the FSUIPC 'buttons and switches' screen, program the first button. It will help you to make a note of the joystick id, which will be visible on this screen. For completeness, you could also note the button numbers against each function as you program it.

(2) Repeat for all the other buttons you want in Mode 1.

(3) Open up fsuipc4.ini (in the fsx\modules folder) and locate the section named '[buttons]'. You will see a whole bunch of lines like I posted above (e.g. '14=PC,19,C66368,0'), where 'C' is replaced by the joystick id you noted down and '19' is replaced by the numbers of the buttons you pressed in each case. 'C66368' will be replaced by other FSX function numbers which need not concern you. (If you choose to map other things to your buttons like macros or Lua functions, this 'C66368' will be replaced by something else.)

(4) I recommend that before you proceed you add a comment to the end of each of these lines to describe what it does. For example, '; (Mode 1) Button 3, Gear down.' (Don't forget the semicolon.)

(5) (I think you should shut down FSX before you do this step.) FOR NOW, comment out all the lines you just added to the fsuipc4.ini file! You can do this by putting a semicolon at the start of each line. If you programmed 19 buttons you will comment out 19 lines. (You need to comment out the text because if you don't FSUIPC will overwrite it when you do the next step.)

(6) Do steps (1) to (5) for Mode 2. (Again, make sure you have commented out the new lines before going on.)

(7) Do steps (1) to (4) for Mode 3. No need to comment anything now.

(8) Go back and un-comment all the lines you commented out for Mode1 and Mode2. You do this by removing the semicolons at the start of each line.

(9) You now have three blocks of code that duplicate the programming of your buttons. This will not work as is, but we'll fix it shortly. First you need to fix the line numbers, which will be duplicated. Go through and renumber all the lines ('14=' and so on) so that the numbers for your Mode2 and Mode3 programming follow on in sequence from the Mode1 lines. Now you will add a condition to the Mode1 lines.

(11) For the first of the Mode1 lines, change the initial 'P' (right after the '=') to 'CP'.

(12) On the same line, right after the CP insert this: '(+X,9)'. (Do not type the quotes.) Don't use 'X', use whatever the joystick id is you identified in step (1). 9 is the number of the button that stays on when the mode switch is set to mode 1 - you will need to check I have the right button number, which you can do in the Windows control panel game controller test page.

(13) Repeat (11) and (12) for all the other lines for Mode1.

(14) Repeat (11) to (13) for all the lines in Mode2, but use button 10 instead of 9. So insert the conditional text '(+X,10)' instead of '(+X,9)'.

(15) Repeat (11) to (13) for all the lines in Mode3, but use button 11 instead of 9. So insert the conditional text '(+X,11)' instead of '(+X,9)'.

 

Now make damned sure you save all that text somewhere safe in case you lose it!


MarkH

gGzCVFp.jpg
Core i7-7700K / 32Gb DDR4 / Gigabyte GTX1070 / 1080p x 3 x weird / Win7 64 Pro

Share this post


Link to post
Share on other sites

Wow.  Thanks Mark but even this looks hard.

 

I printed out what you wrote so I can follow it.

But I don't understand this line:

(5) (I think you should shut down FSX before you do this step.) FOR NOW, comment out this block of the fsuipc4.ini file!

What block am I commenting out?

And I sue ; to comment it out?


Jack Sawyer

Share this post


Link to post
Share on other sites
But I don't understand this line:

(5) (I think you should shut down FSX before you do this step.) FOR NOW, comment out this block of the fsuipc4.ini file!

What block am I commenting out?

And I sue ; to comment it out?

 

Ah yes, I meant comment out all the lines you just added by programming the buttons. If you programmed 19 buttons you will have added 19 lines. It probably helps if you save or print a copy of the file before you start so you can see what's been added. And yes, you use a ; at the start of the line to comment it out.


MarkH

gGzCVFp.jpg
Core i7-7700K / 32Gb DDR4 / Gigabyte GTX1070 / 1080p x 3 x weird / Win7 64 Pro

Share this post


Link to post
Share on other sites

There is a similar thread to this one on Pete Dowson's FSUIPC Support Forum (see below) called Just registered. Saitek yoke Mode 1-2-3 question.  Suggest reading through that thread and in particular note the issue with the Saitek Mode switch wrt FSUIPC described in post#4.

Al

http://forum.simflight.com/topic/80345-just-registered-saitek-yoke-mode-1-2-3-question/page-1.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
×
×
  • Create New...