INPUTS   INTO   FSX      (The Software side of things)

 

  

Overview.

Now the basics of my motion platform are behind me ,, I started to explore the belly of FSX in relation to inputting switch movements etc ,, What I found was a pleasant surprise compared to older versions of Fight Simulator.

Microsoft in all their wisdom actually done us a huge favor with input facilities into FSX.

I am going to cover ,,, something for the beginner and something for the more adventurous.

All these methods are CHEAP and some center around a cheap keyboard encoder. (But it could be any sort of input card)

Nothing here is relying on the update of drivers or software for any hardware from some vendor for the next version of FS.

FSUIPC  is NOT used.

Some of my findings,, I have not seen anywhere else on the net before !!! (but I may have missed them)

 

The Basics  (As in FSX)

To change or make a new keystroke assignment in FSX,, Open FSX and goto ,,,,

Options,, Settings ,,Controls ,, and the click on “Buttons/Keys”.   You can then change and issue new keystrokes.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


The above shows the setup in FSX for some-one to change or issue keystrokes for an event.

All this is well documented and  wont be covered here but the above will be referred to later on as things get a bit deeper.

 

Inputs to FSX.

One of the big restrictions  for cockpit builders with earlier flightsim’s was, there was never enough keys on the keyboard. (Hit a key and something happened) 

All the keyboard key’s were taken with what they allocated ,, this how ever could be changed (as above)  but there never seemed to be enough keys to do what you wanted to do.

With FSX you have virtually unlimited keyboard entry codes.

There are multiple key’s available for all the keyboard including, control (an old one) shift (another old one), caps lock, tab, but the BIG one is ANY key (say Z) can be doubled up on just like the shift or control keys.

To explain a bit better ….

(I will use Z as an example but it can be any key)

Z is used for the Autopilot OFF/ON but if you disable that as a SINGLE key you can use Z  as a double up key.

You can have (hold down Z) and press A for something.

You can have (hold down Z) and press B for something.

You can have (hold down Z) and press C for something. And so-on ..  Use as many keys as you like.

Now re-allocate the Autopilot on / off  to something ,,,  but it needs to be double entry  ,, like hold down A and hit Z.

So you in effect now have got 26 keys x  25 = 650 keys you can do something with, and that’s even without using control or shift etc. etc.

You are only limited with what MS have actually allocated keystrokes for in their “keyboard assignment list” (as the above picture) and that covers a huge chunk of what most starting cockpit builders want.

The “keyboard assignment list” I am talking about is the list of available options in FSX’s (as in the above, “The Basic’s”) ,,  NOT the commonly available printed out list of keystrokes that have already been allocated in FSX.

 

But there’s More ! !

In the initialization of FSX there is a file called “STANDARD.XML” ,, which (amongst other things) is a KEYMAPPING file ,,, It is in 2 places ,,,,

One is in the FSX root directory. (You don’t need to edit with this one.)

The other is in (depending on your system) ,,,

XP  C:\Documents and Settings\USERNAME\Application Data\Microsoft\FSX\Controls\ 

Vista  C:\Users\USERNAME\AppData\Roaming\Microsoft\FSX\Controls\ 

((USERNAME  is YOUR login name that you log onto the computer with when you play FSX))

((If you have no user control set in Vista , it could be in “USER” or “ADMINISTRATOR”.

If you cant find it ,, do a search for it.  You may need “show hidden files” active. ???  (I don’t know)

 

The “STANDARD.XML in the USERNAME  (The name you log onto the computer for to play FSX) gets made when FSX is first installed and from there on,,  FSX uses the USERNAME one during the “play” time.  This file, due to various reasons, can get over written by FSX occasionally, so if you are modifying it, back it up under a different name (NOT .XML) and move your backup to a different folder.

The one in the FSX’s root directory is the default file. (See below for more info)

 

WHY  AM  I  TELLING  YOU  ALL  THIS  ??????

A cockpit builder has a lot of different inputs he wants to happen when he push’s a button, flicks a switch etc ,,  inevitably there will be some inputs that are not in the default  “keyboard assignment list” ,, Well all is not lost ,, With the deluxe version of FSX there is the SDK  ,, within the SDK there is a

file called “EVENT IDs.HTM” which lists all the available events ,,, if the event you want is in there and its suitable for a switch, button etc then you can modify the STANDARD.XML file to make it happen.

A typical one would be the ADF or the TRANSPONDER frequency settings. Both of these require stepping from one digit to the next before you can actually change that digit value.  Not easy to do, reliably, with simple input methods.

 

MAKING ALL THIS WORK.  (An example)

All the above sounds complicated, disjoined and confusing ,, its not ,, lets follow thru a setup for changing the Transponder frequencies,,  setting it up so when you press  the first (of 4) button the first digit of the Transponder will change ,,,  The second button will change the  second digit ,,, the third button will change the third  digit,,  and the forth button will change the last digit.

You have a keyboard encoder wired up to 4 buttons. (You don’t actually need this if you just want to use the keyboard)

 

Step 1.

This step free’s up heaps of inputs into FSX.

Start FSX and open up the “keyboard assignment list”.  (Options,, Settings ,,Controls ,, and the click on “Buttons/Keys”)

Go down to “autopilot activate” and erase the Z as an input. (My choice)

Now go thru ALL  the SINGLE LETTER assignments (A to Z) and change them all so you have to “hold down” Z and then enter the letter as it was.

For instance ,, change “Gear” from G  to … “hold down Z” and hit G.

From now on all the old “single letter” events will need Z held down first to activate that event. (Z is an easy one to remember and reach)

We need to re- allocate a keystroke for the autopilot ,, lets make it “hold down A” and hit Z. (Its near it)

The above sounds like an overkill (and it is, but it makes everything easy to remember) but it allows you heaps of entry codes and you will surprised how quickly you start using them.

Remember ,, the logic here is to do away with the keyboard in the cockpit.

 

Step2.

This step adds some extra keystroke events to FSX that aren’t in the “keyboard assignment list”

Go to the USERNAME  directory file of  STANDARD.XML

Back it up under a different name and move the backup to a safe place. (Don’t leave it in the controls folder and don’t use .XML)

Now open the original with notepad.

You will see ,,,,,  (I’m only showing the start of the file)

 

<?xml version="1.0" encoding="Windows-1252"?>

 

<SimBase.Document

        Type="Controls"

        version="1,0"

        id="Standard">

    <Descr>Controls Mapping File</Descr>

    <Filename>Standard.XML</Filename>

    <SimControls.Map>

        <Name>KEYBOARD_MAIN</Name>

        <Entry>

            <Key>SHIFT+F10</Key>

            <Down>KNEEBOARD_VIEW</Down>

        </Entry>

        <Entry>

            <Key>CTRL+S</Key>

            <Down>VIEW_PREVIOUS_TOGGLE</Down>

        </Entry>

        <Entry>

            <Key>G</Key>

            <Down>GEAR_TOGGLE</Down>

        </Entry>

 

I have highlighted in red, a typical “entry” ,, this shows if you hold down shift and press F10 then the kneeboard will show.

 

Now ,, looking at the  “EVENT IDs.HTM”  list I find I need to add entries to cover ,,,,

XPNDR_1000_INC   (The one to increase the 1000’s in the Transponder frequency)

XPNDR _100_INC    (The one to increase the 100’s in the Transponder frequency)

XPNDR _10_INC      (The one to increase the 10’s in the Transponder frequency)

XPNDR _1_INC       (The one to increase the 1’s in the Transponder frequency)

Now I want to allocate keystrokes to the above ,,,  In  the same order,,

Lets use ,, A+Q for the 1000 kc increases ,,, A+W for the 100 kc increases ,,, A+E for the 10 kc increases and A+R for the 1kc increases.

Now add the following entries into the “STANDARD.XML”  ,,,  (high-lighted in blue)

Be careful where you add them ,,, there should be a <Entry> at the start ,,  and a </Entry> at the finish ,, this should be true for the entries above and below the new ones you just put in.

The spaces from the edge of the page ARE important. (It seems ??)

Put these extra entries near the top as the top part of this file is for the MAIN KEYBOARD  ,,,  further down the file there are joysticks etc etc.

 

<?xml version="1.0" encoding="Windows-1252"?>

 

<SimBase.Document

        Type="Controls"

        version="1,0"

        id="Standard">

    <Descr>Controls Mapping File</Descr>

    <Filename>Standard.XML</Filename>

    <SimControls.Map>

        <Name>KEYBOARD_MAIN</Name>

        <Entry>

            <Key>SHIFT+F10</Key>

            <Down>KNEEBOARD_VIEW</Down>

        </Entry>

        <Entry>

            <Key>A+Q</Key>

            <Down> XPNDR_1000_INC </Down>

        </Entry>

        <Entry>

            <Key>A+W</Key>

            <Down> XPNDR _100_INC </Down>

        </Entry>

        <Entry>

            <Key>A+E</Key>

            <Down> XPNDR _10_INC </Down>

        </Entry>

        <Entry>

            <Key>A+R</Key>

            <Down> XPNDR _1_INC </Down>

        </Entry>

        <Entry>

            <Key>CTRL+S</Key>

            <Down>VIEW_PREVIOUS_TOGGLE</Down>

        </Entry>

        <Entry>

            <Key>Z+G</Key>

            <Down>GEAR_TOGGLE</Down>

        </Entry>

Now save the file. (make sure you save it as “STANDARD.XML”  and not as “STANDARD.XML.TXT”)

Once you save it, and FSX uses it, the positions of your entrys will change for some silly reason but the changes will still be there.

 

Step 3.

Program your 4 buttons on your keyboard encoder to ,,,

First button sends       A+Q     (Hold down A and press Q)

Second button sends  A+W    (Hold down A and press W)

Third button sends     A+E      (Hold down A and press E)

Forth button sends     A+R      (Hold down A and press R)  to the computer.    

 

Step 4.

Fire up FSX and try it !!!!  It will work.

Whether the radio panel is up and in focus or not ,,, the Transponder frequency will change with each push of the button.

 

Final possibilities.

The above shows how easy it is to interface with FSX ,, a natural progression (in this case) is to have 8 buttons ,, the 4 top ones increase the frequency, the 4 bottom ones decrease the frequency (Yes there are codes for decreasing the frequency) ,,, and going further into this ,,, you can have 4 rotary switchs which would be even more realistic and replace the buttons with something rotary ,, like I’ve shown in ,,,

 http://www.jimspage.co.nz/inputs.htm 

or  pulse switchs

http://www3.alps.com/WebObjects/catalog.woa/E/HTML/Switch/Rotary/SRBM/SRBM1L1400.html

http://www.knitter-switch.com/p_rotary.php  (Model MRP 1-20)

Note on the pulse switch’s ,,,,  I have NOT tried them ,, but the theory is there. ???

Wouldn’t it be nicer to turn knobs to change the frequency ,, rather than push buttons or use the keyboard. ??

Other ways to input thru a keyboard encoder is ,,,, (With the encoders auto repeat on)

A 3 position rotary switch ,, left is freq  down  ,, right is freq up  and obviously,, center is off.

A 3 position toggle switch ,,, sprung to center OFF ,,, down is freq down and up is freq up.

 

But, if you just want to add one or two switchs that aren’t in the “Keystroke assignment list” ??  Real easy to do.  There would  no need to add extras to the “standard.xml” ,, just change one (or 2) of  the “standard.xml” entries that you know you will never use  ,,  also there would be no need to change any of the key codes in the “Keystroke assignment list”at all.

Before building a panel ,,, think of what you want and then study the “keyboard assignment list” and the standard.xml” ,,,  Sort out what you want and how you are going to do it.

 

 

And Finally ,,, 

I have just done exactly ,, word for word ,, what I have written (above) on 2 different computers with no trouble. 

On each computer it took less than 5 minutes. (I used copy and paste and then just altered)

I done it on ,,

XP ,, which had FSX and FSX SP1. (No SDK)

Vista ,, which had FSX and FSX SP1 also the SDK with its SP1.

If you have trouble doing this and things go wrong ,,, then don’t blame me. What works for me, may not work for you.

 

Some people might say ,, “why do it this way ” ??  ,,,  Well years ago I was just about to “break the bank” and buy an expensive add-on unit for FS2002 ,,, I didn’t but I was glad I didn’t ,,, the outfit stopped making them and everyone that bought them basically had to throw them out when the next FS came along. 

That taught me a lesson ,, big time ,,,   TRY NOT  TO  BUY  ANYTHING  THAT  RELIED  ON ,,,,,

NEW  SOFTWARE  FROM  A VENDOR  FOR  IT  TO  BE  ABLE  TO  RUN  ON  THE  NEXT  VERSION  OF  FS.

Keyboard encoders don’t rely on any update from anyone to be able to work on future FS’s.

There is another reason ,,  I have far more enjoyment finding a cheap way to do things ,,,  Just going out and buying something doesn’t thrill me at all.

Things are more settled now though ,,, the market place for our sort of stuff is stabilizing.  I did actually break my own rule and bought a Goflight autopilot ,, great thing and I look forward to many years of use out it. (And hopefully many FS’s)

 

 

As a Reference ,,,, (As I understand it)

The “standard.xml in the ROOT fsx dir is used when ,,,,,

       FSX first gets installed.

       For making “username” copies  of “standard.xml”.

       FSX cant find the “username” one or its corrupt.

       The FSX.CFG file is missing or corrupt.

       If the Joysticks etc get changed, then it will update the “username” one with info from the “root dir” one. (I never tested this)

 

The “standard.xml in the “USERNAME” dir is USED when ,,

        That user fires up FSX.

 

The “standard.xml in the “USERNAME” dir is CHANGED  when ,,,,,

       The user changes anything in the “Settings, Control page” (Top picture). (That’s keyboard codes , joystick, joystick buttons etc)

       If an actual joystick is changed, FSX looks at the one in the root dir and writes the settings from that one, to the “username” one. ??

 

The “standard.xml in the “USERNAME” dir is TOTALLY  RE-WRITTEN  when ,,,,,

      FSX can’t find the FSX.CFG file. (You can actually delete FSX.CFG and FSX will reset to default ,, no flights etc will be lost)

      You click “Reset defaults” in the “Settings, Control” page. (Top picture)

      All the info for the “rewrite” comes from the “Standard.xml”  in the root dir.

 

So,, Armed with the above, you can see its quite easy and safe to potter around with the “Standard.xml” in the “Username” place.  If it all turns to custard ,, just click on “reset defaults” in the “Settings, Control” page (Top picture) or delete the FSX.CFG file and FSX will “fix” itself.

Once you are more comfortable with what is going on ,, then you can potter around with the one in the “root.dir” (After backups) and to make it register ,, just delete the FSX.CFG file to make the changes register for the present user.

 

Use the above at your own risk ,,, What worked for me, may not work for you.  

I have been wrong before ,, I remember back in 1954 when ,,,  ????

 

Dated 15 April 08

Updated 19 April 08

Flowchart: Alternate Process:  Back to the simulator main page.