SST Programming Software Contents



Getting Started 

Simple Commands or Keystrokes 

Multiple Keystrokes/Combined Keystrokes 


Advanced Commands 

Shift Modes 

Programming Hat/POV Switches 

Hat Programming Tricks 

Axis Programming (Rotaries, thumb wheels etc.) 

Saving the Profile 

Activating the Profile 

Testing the Profile

Printing the Profile

Product Specific Features


P880, P2500 and P3000

PC Dash 2/P8000


Welcome to the manual for the latest version of our programming software, Saitek Smart Technology (SST).  Following comments and feedback from our customers we have made many changes to the software from previous versions and hope that you now find it much easier to use; we also hope that as newer versions are released that you find it becomes more powerful too. 

As with previous versions of the programming software it must be pointed out that this software is not needed to make your controller work in the game – that is usually performed by enabling joystick control from within the game itself.  The SST software is used to configure the buttons etc. on your controller to perform different actions within your games. 

Most modern games do have their own control configuration screens which perform the same task but some do not and this was one of the reasons for our creating the programming software originally.  The other reason for using the SST software is that you can increase the number of commands that can be assigned to your joystick due to shift states (Cyborg USB and X36/X45) and multiple modes (X36/X45); these will be explained later in the manual.  Before we cover those more advanced features however, we have to show you how to start programming your Saitek controller.


Getting Started


Having installed the SST software and plugged in your controller you should have a small black joystick icon in the taskbar next to your clock.  It should look something like this. 


Right-click on the joystick icon and you should get a pop-up menu like this. 


Clear Profile is used whenever you want to completely clear a profile from your controller.  Clicking Control Panel will bring up the test and calibration screens for your controller but for now we want to click Profile Editor.  This will present you with the following screen (note that we are using the Cyborg stick in this example but the procedure for programming the Cyborg Force, X36 and X45 are exactly the same.  The only difference is the number of buttons and, in the X36 and X45’s cases, the number of modes).  This can also be run by double-clicking the Saitek Smart Technology Programming Software link that is on your desktop or by clicking Start>Programs>Saitek>Profiler. 

Just a quick note here for any customers who have more than one controller (a Cyborg and an X36, for example) and have them both plugged in, you will have a separate icon for each controller – if you hold you mouse pointer over the small joystick icon you will get a small pop-up notice which tells you which controller the icon refers to. 


Those of you familiar with the original SGE programming software will recognise the 3D model of your controller.  The major change to the programming software though is the list of buttons down the right hand side of the screen.  If you press one of the buttons on your controller now you will see that it lights up on the 3D model and that the appropriate line in the list of buttons is “highlighted” by a slightly darker background – this makes it easy to know exactly which button you are programming.  This called the 3D View – there is another view you can use and this is outlined further on in the manual. 

Every game you have already has most of the in-game commands assigned to various buttons or combination of buttons on the keyboard.  For those of you unfamiliar with how this process works, what we are going to do is make the buttons on your controller “pretend” to be buttons on the keyboard. 

Simple Commands or Keystrokes 

To program a keyboard command to a button is very easy.  On the right side of the window in the list of buttons, simply click on the space just beneath the name of the button you wish to program (the mouse cursor will change shape to indicate that you can click it) – in the example below we have clicked on the space just beneath the trigger. 

 This gives us a flashing cursor indicating that the program is now waiting for us to input a keystroke.  Which keystroke do we input here?  As an example, imagine we were programming the controller for a game and we wanted to use the trigger for firing a weapon.  In the game the key on the keyboard that does this is the Space key.  So all we do now is press that key on the keyboard and it will appear in the line onscreen; like so.


 If this is okay then simply click the green tick at the bottom right of the line.  If you have made a mistake or wish to clear a keystroke you have put in then simply right click on the keystroke you wish to remove and click Delete from the drop down list of options.  Note that you can also simply click on the next button you wish to program (in the 3D view or in the list of buttons) and this will also save the keystrokes that you just input.


 If you wish to clear all the keystrokes from the line then click Clear All.

 Having decided on your keystroke and clicked the green tick, you should have a screen that looks something like this.


 As you can see the software is now telling us that the trigger, when pressed, will initiate the Space bar command on the keyboard.  This command has been named New Keypress as it was the first new keystroke that we have programmed.  If you wish to rename the keystroke to something more recognisable (like Fire Weapon, for example) then this is easily done.  Simply point the mouse cursor at the words New Keypress and click the left mouse button once.  You will see that the words are now highlighted, as in this picture,


 and you can now type the name that you wish to call this command.  In this case we’re calling it Fire Weapon but of course you can call it whatever is appropriate to the command you are creating.  Simply press the Enter/Return key after typing your chosen command name in and it will update as seen below.


 Congratulations, you have just created the first command for your controller.


Multiple keystrokes/Combined keystrokes

 You are not limited to single keystrokes when programming commands.  You can input as many keys into one command as you like or combined keys, like Ctrl+F, for example.  The process is the same as inputting single keystrokes – just press the keys you wish to program into the command.  In the example below we have input a Ctrl+F command.


 You can see that it is a combined keystroke because both letters are on the same “key” and there is a plus sign between them.  Multiple, single keystrokes would appear like the line for Fire B in this picture.




Having covered the basic types of keystroke we need to introduce another type of keystroke command – a macro.  A macro is a sequence of keystrokes that can be executed with the single press of a button.  At first glance you might think that this is exactly the same as the multiple keystrokes, as assigned to the Fire B button in the above example, however this is not the case.

 In order for the multiple keystrokes in the above example to actually happen you have to keep the assigned button held down until all of the commands have happened.  If the above sequence had been assigned as a macro then you would just have to press the assigned button once and the keystrokes would then input themselves automatically.

 You might ask why you need both types of command and the answer is that a macro can’t be interrupted except by pressing another command on the stick.  A simple sequence of keystrokes, like the one in the above example, can be interrupted by letting go of the button.  Depending on the in-game situation, this could be important.

 Creating a macro is similar to creating a keystroke sequence but to access it we have to use the right mouse button.  In the below example we have pointed to the Fire C line with the mouse and clicked the right mouse button (right-click)



Before we carry on, let’s just take a minute to examine this drop-down menu.  As you can see, we have a number of possible choices.  The first is New Key Presses – clicking this would enable you to input keystrokes for a new command, just like we have been doing in the above examples.

 New Macro is the option we will be clicking in a minute…

 New Advanced Command allows us to do some interesting things involving repeat functions (amongst other things) and we will be covering it later.

 Report As, when you hold the mouse over it, brings up a list of the different button commands allowing you to make the button pretend to be a different button on the controller, should you so wish.

 Underneath these four options you can see listed the commands we have created previously.  The New Keypresses are still called that because we didn’t rename them but, as you can see, the Fire Weapon command is there.  If we wanted the Fire C button (as it is in this case) to also fire the weapons in our hypothetical game, all we would do is click Fire Weapon and that would assign the same command to Fire C.

 However, for now, click New Macro and you will get a small window like this.


 All you need to do now is input your keystroke sequence, exactly as you would input it in the game if doing it normally on the keyboard.  As you press the keys you want you will notice a number appearing under each key in the Macro Recorder window.  This represents the time, in seconds, since you pressed the first key in the macro sequence – obviously therefore the first key in the sequence has 0.00 underneath it.  In the example below you can see that there was a 4.7 second wait between pressing the P and S keys.


 Click OK when you have finished inputting the macro sequence that you want.  Just as with keystrokes, you will notice that the entire sequence of keys is shown in the bar for the button that you have just assigned this macro to.  You can also rename this new macro, just as we did with the Fire Weapon command earlier. 


Advanced Commands

 Going back to the drop-down menu that appears when you right-click on a button line, click the New Advanced Command option.  You will get the following window. 


As you can see, this looks similar to the Macro Editor.  Each window represents a different state of the button you are assigning the Advanced Command to.  Any keystrokes in the Press column will happen when you press the button the command is assigned to.  If you have multiple keystrokes you will need to keep the button held down until the commands have happened – this is exactly the way that normal multiple keystrokes work (i.e. this doesn’t function like a macro). 

Any keystrokes that are in the repeat column will happen as long as you keep the button they are assigned to held down – again, these will only operate as normal multiple keystrokes. 

Any commands in the release column will happen as soon as you release the button the Advanced Command is assigned to.  The difference with the repeat column though is that any multiple keystrokes will act like a macro. 

You will notice that unlike the other keystroke input windows each key, when pressed, places two instances of the key in the command input window – like below.



This is because when you press a key on a keyboard it actually produced two signals – one when you press it and another when you let go.  In the above example you can see that the T and H keys were held down for 0.10 of a second.  Just like in the Macro Recorder, the numbers underneath the keystrokes represent the time in seconds from when you pressed the first key in the sequence; in the Advanced Editor though you can adjust these timings.  Simply point the mouse cursor at the time you wish to adjust and you will notice that the cursor changes to a clock with two arrows either side of it.  Now click and hold down the left mouse button and drag the mouse right to increase the time or left to decrease.  Once you are happy with the timing just let go of the mouse button and the new timing will be saved.

 Therefore with the Advanced Editor you could set, for example, a command that launches a missile when you press the button.  It might then switch to a camera view of the missile and then 4.5 seconds later switch to a camera view of the enemy.  When you let go of the button it could switch back to your cockpit view.  Obviously this is just a hypothetical example but it gives you an idea of the possibilities open to you with the Advanced Editor.


Shift Modes

 With the exception of the Cyborg 3D Force Stick, the controllers supported in this software release all have shift modes.  This is a function that enables you to “double up” the number of commands that you can assign to each button.  Just like, for example, the period key on your keyboard can be made to print a “>” symbol when you hold down shift, you can assign a second command to each of the buttons on your controller.

 On the Cyborg stick there are two shift buttons – the ones on the base of the stick with a double arrow symbol on them.  On the X36 and X45 the shift button is the pinkie switch that your little finger rests on when gripping the stick.  The process for enabling them to act as a shift button rather than a normal button is the same.  Using the right click function again, point to the line referring to the shift button and right click.



You can see that there is an option at the top that isn’t present on other buttons – the Shift Button option.  If you click that then you can see that the programming software now reports that the shift button is acting as a shift button.



From here you have two choices of method to assign commands to your buttons in a shift state.  At the top of the Profile Editor window you will see that there is a white bar that says Shiftstate next to it.  In the bar should be the word, Unshifted.  If you click that bar you can see that there are two other options – Left Shift and Right Shift.  Click the left shift option and you will now be looking at the list of commands for the buttons when you have the left shift button held down.



You can see that the commands we created in the unshifted mode are carried over into this mode too – the little arrow in the box at the bottom left corner of each command line indicates this.  You can now assign the commands you wish to the different buttons, exactly as you have been doing already.  You will notice that when you enter a new keystroke onto a button the little arrow in the box disappears indicating that this command only happens in this shift mode and isn’t carried over from the unshifted mode.  In the picture below you can see that we have put a B keystroke onto the trigger and that arrow is no longer there.  Now when we press the shift button on the stick when in the game, the trigger will give us a B keystroke rather than the space bar command that it does in the unshifted mode.



You can also assign a third set of commands to each button if you enable the right shift button as a shift button.

 The second way to input commands into a different shift mode is to switch the view of the Profile Editor to the Data View.  The default mode with the 3D model of your controller on the left is called the 3D mode.  To switch modes you simply press the Data View button at the top of the Profile Editor, as indicated in the picture below, and you will see the same view as in the picture.



This enables you to see what commands you have assigned to each button in all modes.  You can also input keystrokes, macros etc. in this view, exactly as you did in the 3D view.

 For the X36 and X45 users, it should be noted here that whilst these controllers have only one shift button you do have the 3 different modes made available to you by the mode switch on the throttle.  These are programmed in the exact same way as the Cyborg – in fact it’s probably best to use the Data View for these two controllers because, as you can see, it’s far easier to keep track of which commands you have programmed.



Programming Hat/POV Switches

 All of the controllers supported by SST have a Hat, or POV, switch.  On the joysticks and pads a POV switch is usually used as a device for looking through the different views from a cockpit in a flight simulator but it can be assigned to do whatever you want it to.  On the GM2/GM3 it is very important as it’s the switch that movement commands are assigned to for first person shooter games like Medal Of Honor.

If left unprogrammed the POV switch will just act as either a default POV or, in the X36/X45’s case as a set of four buttons, depending on which direction it is pushed in.  This is easily changed though.  To start programming the POV simply right click on it or click the little arrow icon next to it in the profile editor and you will get the following drop-down menu.


You can see that you have three possible functions for the POV switch, the default option for which (POV) is currently selected.  The other two options are to set it to operate as buttons or to emulate the mouse.  You can also set whether the POV operates in 8-way or 4-way mode here.  For mouse and POV mode it’s recommended that you leave it as 8-way but for buttons mode it’s definitely recommended to set it to 4-way, simply because it can be very hard to select the diagonal positions uniquely in the heat of gameplay (the only exception to this is if you are configuring the hat to move something in 8 directions, like you would with the GM2/GM3 for a first person shooter game).

 Setting it to Mouse will simply give you a Sensitivity slider bar like below:



And adjusting that will simply change the speed that the mouse cursor will move at when you push the POV in the appropriate direction, slow being to the left of the scale and fast being to the right.

 Clicking the Buttons option though will add more options to configure, one for each position of the hat switch, as you can see.



It’s then simply a case of programming each position of the hat with the keystroke, macro or advanced command that you wish to assign, in the same manner that you program the buttons.  It should be noted that the centre position of the POV hat should generally be left unprogrammed otherwise the POV will continually issue any command that you have assigned to it when the POV is at rest in its centre position.

 One slight problem with programming the hat is that you may end up with a problem with “sticky keys”.  This is where a programmed function on a hat position doesn’t “let go” when you release the hat and let it return to centre with the result that the computer thinks that the assigned keystroke is still being issued.  This can usually be solved by using the tips in the following section, which also details how to configure the POV on the GM2/GM3 for movement.


Hat Programming Tricks

 One thing that you can do to ensure that the hat “lets go” of a command assigned to one of its directions is to program the centre position of the hat with a “release” command for any of the keystrokes assigned to any of its positions.  That sounds confusing but really it’s quite straightforward (just very hard to explain).  For an example we will take the programming of the GM2/GM3’s hat switch for movement in a first person shooter game.

 For these games movement is usually controlled by four keys on the keyboard, typically W, A, S and D (respectively forwards, step left, backwards and step right).  What may happen if you just assign simple keystrokes to the appropriate directions is that when you switch from moving forwards to backwards the software may “forget” to release the forwards key command, leaving you constantly walking forwards.  To stop this from happening what we can do is assign a “release key press” to the middle position of the POV using an advanced command.  What you have to remember to do is to make sure that there is a release key press for every one of the keys that are used by any of the hat positions so that when you return from any hat position it will release that key press.

 To do this, right-click on the POV middle position option and click New Advanced Command.  Now enter all the keys that are in the other positions of the hat switch into the press column and you will end up with something like this:



Now simply click on each of the press instances of the keys in the Press row (in the above example these are the W with the 0.00 underneath, the A with the 0.30 underneath etc.) and then right-click on them and click Delete from the drop down list of options.  Delete all the key presses from the Release row in that window too and you should end up with something like this:



Before you click OK to finish make sure that you right-click on the keys in the Press row, point to Quantize time and then select 0.00.  This will have the effect that when you let go of the POV and it returns to its centre position it will issue a “release command” for those keys making sure that the programming thinks that those keys have been “let go”.

 To complete this you must program each direction of the hat with the appropriate press commands for that direction as well as release commands for the other positions of the POV.  This would look something like the following for the forwards command on the hat of the GM2.



Ultimately it should end up looking something like the following (this is how a GM2 hat switch looks like when configured for a first person shooter game)



Hopefully this should prevent you from having too many problems with programming the hat switch.



Axis Programming (Rotaries, thumb wheels etc.)

 The final parts of your controller that can be programmed are the axes.  These are basically anything that moves through a range of movement on your controller, be it the joystick, a throttle, rudder, thumb wheel (GM2/GM3) or a rotary (X36/X45).

 You can program the axes on your controller with keyboard commands.  Generally speaking the main axes of a joystick should be left alone to work as an axis, simply because most games detect these by default anyway.  However, some games don’t support joysticks at all (so you could then configure the stick to pretend to be a part of the keyboard) and this would allow you to make the stick work in the game whereas you otherwise wouldn’t have been able to.  The people who will mainly use the axis programming are the GM2/GM3 and X36/X45 owners for the thumb wheel and rotaries, respectively.

 To start programming an axis we first have to set it to banded mode.  This is done by right-clicking on the appropriate axis (or left clicking the small arrow on the right of the axis listing) in the Profile Editor and choosing Bands from the drop-down list.  You will get something like this:



Your mouse cursor will change so that it looks like a horizontal line with a vertical, double-headed arrow running through it – don’t click anything yet!  The red line in the window represents the current position of the axis that you are programming.  In this case it is the rotary 1 on the X45 and if you move that axis on the actual controller it will change the position of the red line.  What we are going to do is split the axis up into banded areas so that we can then assign keyboard commands to those areas.

 In the above example we are just going to create a simple bit of programming where moving the rotary in one direction will give us an ‘A’ key press and moving it in the other will give us a ‘B’ key press.  First we have to create our banded areas and this is done with the mouse.  That horizontal line with the arrow running through it indicates that where you next click in that rotary area will set a “split point”.  You can see in the below picture that we have created a split point at the 70% mark on the axis’ scale.



We could also have done this by actually physically moving the axis to that point (so that the red line was at that point) and then clicked the left icon just underneath where it says Rotary 1= Bands.  We should also now create a second split and then click the middle icon which spaces the areas out evenly.  You can then click the green tick to set those split positions in place.  This leaves you with something like this. Note: You cannot start entering keystrokes into the band until after you have clicked on the green check mark to save your programmed bands.



You can then program keystrokes, macros or advanced commands to the areas just like any button on the controller and using our ‘A’ and ‘B’ example above we get the following.




You might wonder why we didn’t just create one split so that the area was split in half and then just assign the keystrokes to the two areas?  It’s simply because you need a position where the axis is “at rest” and isn’t issuing any keyboard commands – you will notice that no commands are assigned to the middle position of the area in the above example.  No matter which controller you have or which axis you are programming, you must always have a band over the middle of the axis movement with no command assigned to it. You can create as many splits as you want but obviously there’s only so much you can put in there before it starts getting complicated.

Mouse Emulation
You can also program an axis to emulate the movements of the mouse cursor if you wish. To do this simply right click the axis you want to become a mouse movement and you will get the following menu:

Clicking the Mouse X Axis option will make that axis control the left/right movement of the mouse and the Mouse Y Axis option makes it control the up/down movement. Once selected you will see a slider bar which controls the sensitivity of the mouse movements with the left-most setting being the slowest and the right-most setting being the fastest.


Saving the Profile

 Once you have finished assigning all the commands you want then you must save the profile so that you can access it again later.  Simply click File at the top of the Profile Editor



and then click Save.  Just as when saving a document in your word processor your computer will then ask you where you wish to save the profile and what you wish to call it.  Do not change the location of the profile – it must be saved in the directory that is already in the save window.  The name of the profile should ideally be the name of the game that you are making this profile for. Once you have done that click Save to save the profile.


Activating the Profile

 Activating the profile couldn’t be easier.  Simply right click on the little joystick icon next to your clock and you will now notice that the profile that you saved is at the top of the pop-up menu.  In the example below you can see that we called our profile “Test”.



If you then click your profile you will notice that the little joystick icon now has a green square behind it, indicating that a profile has been loaded into the controller.

 If you wish to clear the profile from your controller at any point then simply right click the joystick icon and click Clear Profile – the green circle will disappear indicating that the controller is now cleared of any commands.


Testing Your Profile 

Once you have activated the profile you can obviously test it.  A good way to do this is to open up Wordpad in Windows – when you then press the buttons on your controller the assigned keystrokes will appear in Wordpad.  Note, that this will only work with basic keys that you would normally type into a word processor i.e. letters, numbers and punctuation.  The function keys (F1, F2 etc.) shift, alt and ctrl keys obviously won’t print anything in a word processor either.  We will be including a profile tester in a later release of the programming software so that you can test ALL keystrokes that you input into your profiles.

Printing Your Profile

Once everything is programmed into your pad you may find yourself forgetting what commands you have assigned to each button, especially if you have used shift modes. Therefore we have included a printing facility in the software which gives you a couple of sheets of paper showing the buttons/hats/axes of the controller and which commands are assigned. Please note: this will only be really useful if you have named you commands as described in the simple keystrokes section of the manual.

To print your profile out simply load it into Profile Editor and then click File at the top of the editor window and then Print.

Product Specific Features



The X36 and X45 flight controllers contain several unique features that are nonetheless programmable using the same principles as functions on the Cyborg.

The mode switch simply allows you to program all the other functions of the controller so that they can do something different depending on which mode the switch is in. This is easily programmed using the Data view for the Profile Editor, as described earlier in the manual. Once in the Data view you will see that each button/POV/axis has a keystroke entry box for Mode 1, Mode 1 +Pinkie, Mode 2, Mode 2 + Pinkie, Mode 3 and Mode 3 + Pinkie.

The pinkie switch is the X36/X45's shift button and has to be set to work as a shift button before those "+Pinkie" commands are usable.

The rotaries are an axis and are programmable in the manner dsescribed in the axis programming section of the manual.

The Aux switch is just a series of three buttons in a row, programmable in the exact same way as any other button on the controller. There are a couple of notes to remember though when it comes to assigning commands onto the Aux switch positions. Firstly, any command assigned to an Aux position will be "played" continually as long as the Aux switch remains in that position. This will complicate matters even more if that command in any way involves the Ctrl, Alt or Shift keys on the keyboard. This is because if you have an Aux position continually issuing a command with a Ctrl key in it then it will modify any other keypress output by any other button on the controller which will mean that you get all kinds of unintended commands happening. The best practice is to leave the middle position of the Aux switch free of any command and to then assign commands to the other positions. When you move the switch to initiate those commands always ensure that you return the switch to the middle position so that the Aux switch is "at rest".


P880, P2500 and P3000

The new pads have several features that should be noted especially in light of the number of console users (Playstation 2, X Box and Gamecube) picking up these pads for use in first person shooter games like Medal Of Honor, 007 Nightfire and Unreal Tournament 2003. On consoles the sticks on the pads are used for movement and looking around however most PC games of this type don't include support for game controllers at all or, if they do then it's fairly basic. With the SST software you can of course set up the sticks with the equivalent keyboard and mouse commands from these games in order to get them working like they do on the consoles. How to do this is all covered in the Axis Programming section of the manual or you can find profiles for these games in the profile download section for your pad on out website. As these type of games typically use the same keys for movement (W, S, A and D) then even if there isn't a profile for your particular game up there then you can download another one and then adapt if for use with your game using the Profile Editor.

The pads do feature a button that is unique to them entirely and this is the red Smart button that you have just next to button number 2. This button can have three functions; the first is for it to just be programmed as a normal button; the second is for it to become a shift button like that on the Cyborg so that you can then assign a second command to the other buttons for a shifted mode; and the third is to set it as a Smart Button.

If set as a Smart button then you can program in keystroke sequences to the other buttons on the pad "on the fly" without having to use the profile editor. The process for doing this is simple. Open up the Profile Editor and right click on the Smart Button entry in the list of buttons. Choose Smart button from the drop-down list of options and then save the profile (call it what you want to) and load it into the pad.

Now to program a keystroke (or set of keystrokes) "on the fly" simply press the Smart button on your pad, press the button you want to assign the keystroke(s) to and then press the key(s) on the keyboard. To save this, press the Smart button on the pad again. You should now have those keystroke(s) happening when you press the button you programmed. This can be done in-game, in Windows... wherever you like.


PC Dash 2/P8000

The PC Dash 2/P8000 has nothing especially unique - it has a shift button, a POV switch and all the rest of the buttons on it are programmable in the same way as buttons on the Cyborg. However, the Dash 2 does have an "unlabelled" second shift button, or rather one of the buttons can be configured to be a second shift button, therefore enabling another set of commands to be assigned to the rest of the features on the Dash if you wish. The button that can be set as a shift button is the one in the bottom left corner of the face of the Dash, E1.

That concludes the manual for the current version of our SST software.  If you have any queries then please contact your local support representative or feel free to discuss it on our online forum.