Joystick setup (FsXPand and FsClient)

With stick setup you assign your sticks and buttons to most functions in FS you may need.

Tip! Standard  joysticks can be used to modify into a cockpit control. With an USB joystick converter, standard game devices can be used on a USB port. The Rockfire RM 203 is an example of a USB convertor.

1. Analog axis tab

Axis Name: - Select the axis you wish to assign a function to.

Drop-down list: - Select the function from the droplist that you wish to assign to your control axis.

Null zone: - Using analog controls, you need to set a null zone to avoid hardware caused small changes in the value sent to FS. This will break your control scale down into small areas within which no changes will occur. The default values (100 - 200) are valid for most situations.

Standard gameports sometimes jitter around a certain value (control spikes). This depends on hardware and software. The drift is such that a resolution of 1 degree out of 360 is not always guaranteed. The damp option is needed to get a stable value here. OBS settings are incremented in 2 degs at a time for this reason.

Tip! When you choose a function, you should check if the same function is not already mapped to a control in the FS joystick setup. Double assignments will drive you crazy. Just wait for it...

assign analog
FsXPand/FsClient reads only stick data when changes are read. There is a null zone set by yourself, but as soon as the analog control value exceeds the boundaries of the null zone, the new data will be sent to FS. This can easily happen for reasons of temperature change, vibrations, settings on the edge of the null zone, changes of other analog channels.
This can be a problem using the AP or AT functions. For example, when choosing an altitude after activation of the altitude hold mode, FS will set an initial vertical speed. You can override this setting with you own control, provided that the function is implemented in the FS aircraft model.

In general, whenever the AP takes control over the aircraft, analog control input becomes a problem. In FsXPand, the trim control is disconnected when the AP takes control of the trim. This is indicated by the pointer becoming red on the trim indicator. Do not touch the trim wheel in this case or you are in for a surprise when you disengage AP again.
When on autothrottle, the throttle is disengaged until you switch off AT again. No visual clue here. Stay away from the throttle (unless you have real autothrottles as some simpilots do).

Tip! When using analog channels on USB, you want to set your OBS every degree or so, not 8 at a time. This will happen when your joystick-USB converter is not at least equipped with 8-bit resolution. FsXPand will increment the values with 2 at least when using a standard gameport to facilitate both 8-bit resolution (0-255) and standard gameport operation.
The solution is, to place your sensitive controls on a standard gameport on one of the non-FS PC's in the network. This concerns not only OBS settings (0-360). AP IAS, AP heading are other examples. The solution lies in the use of Rotary Encoders.....

Encoder: All these problems can be overcome by using rotary encoders for your inputs.
A rotary encoder is a rotating switch sending its state over the lines. Two button inputs, together with the 0 Volt output on the game connector can be used to connect to an encoder. Two analog inputs, together with the +5 Volt output on the game connector can be used to connect another encoder. The analog channels have to be connected to +5 Volt with a resistor of 100 KOhm. The button inputs do not need this.
Thus you can use 4 encoders on a standard joystick input.

If you press Encoder on this tab, you will have another input window, allowing 2 encoders for the button interface and the analog interface. You can select the function again by selecting from the drop-down list.


FsXpand/FsClient support only half cycle encoders (like CTS288).
Encoders require a relatively fast stick pollling time, from 20-50 ms (depending on your machine speed).
Rotary encoders are usually read by dedicated hardware. We do it with software. In order to track the motion of the encoder properly, FsXpand/FsClient needs to look at the encoder very often.

stick sensitivitySensitivity: This will show a graph  representing the  relation between joystick input value and the value sent to FS. You can drag the points on the graph to change it.
If you select Linear, the curve will be constructed of 3 lines. With 2nd degree, a smooth curve will be created matching the present 3 points. You will need to click Refresh to change the graph mode.

The hat will show the current position of the stick. Be sure to have your stick calibrated!
Press OK to save changes.

2. Buttons/Switches tab

On/Off Switch: Check the box if you attach a switch to the joystick button input in stead of a normal button.

Let's try to clarify something.
There are 2 ways of using joystick button inputs. Joystick buttons are unlatched. We call them here a button. But if you would connect a latched button, you would have a stateful button, we here refer to as a switch.
FsXpand/FsClient treats unlatched buttons in a different way than latched buttons or switches.
Assuming that an unlatched button will be used to change a state by just pressing it once, the program will swap the internal state of the button once it is pressed. On becomes off, up becomes down, etc.
Since a switch has his 2 states, the program will just read the state it is in.
The program does not really care whether you have a 2-state switch attached, or that you have an unlatched button which you will be holding down for a as long as you want...
You have to tell the program what type of use you wil make of your button channel.

What is this use?
If you want to start an engine, you want to press it long enough to get the engine started, to revert to the previous state once you release it. Check the box in that case, although you are really using an unlatched button.
If you have a switch for putting the gear down, check the box. You want thge gear to reflect the status of your switch. But if you have a button that should get the gear down with one press, and up with the next, uncheck the box.
assign button
More examples:
Brakes should be an unlatched button. Parking brakes a switch. Increment/decrement of a value like ADF frequency or AP heading is an unlatched button. Pause could be both.

How to assign them?
The easy way is to press a button on your panel or stick and see what red light fires in the setup window.
On the right side, make sure you select On/Off switch if needed.
Choose the function you need from the drop-down list.

Drop-down list:
As you will see in the Drop-down list, FS control names are in uppercase. Whenever you see names with lowercase in it, this functionality is only available in FsXPand. As an example, there is an assignment for Autopilot altitude setting, with two ranges available (65000 and 40000 ft maximum).
You will even see a memory recall and swap button for com, nav, ADF frequency and transponder.

More: If you choose only buttons, you can use more than 4 if your stick has them. Press More for the assignments of additional buttons. Press Assign to actually map the function to the control. Pressing OK will save your settings. Cancel will take you back to the Joystick setup window.

There are separated functions for each engine, but if you run out of analogs or buttons you may combine all throttles, mixture, prop handles etc. of all engines in one control using a combined function like Throttles for throttles1,2,3, and 4. This goes for magnetos, jet starter/generator and jet fuel as well. And Anti-Ice.
Better still, use more joystick inputs on the client PC's, a maximum of 8 per PC.

Send key: If this box is checked, the cursor moves to the box next to it. Press the key combination you want to send to the FS PC.
For example, when you have selected Ctrl-H, when pressing the assigned button, the Help window will show up in FS.

If you press Encoder on this tab, you will have another input window, allowing 2 encoders for the button interface and the analog interface. You can select the function again by selecting from the drop-down list.

Set your stick pollling time to somewhere between 20-50 ms.
FsXpand/FsClient support only half cycle encoders at the moment (like CTS288).

OK: Pressing OK will save your settings. Cancel will quit the window without saving settings.

Tip! If you need to use push button control to increment fuel selector, magnetos, com and nav radios etc., you can easily omit the decrement button. The inc button will cycle back to the lowest value once the top value has been reached. Some values do not cycle to the bottom again, like AP settings (useless to wait for 1000 feet if you are at 40000) and flap positions (could be dangerous). See for yourself.

For a head start in assigning your controls, you can take a look at a prop template and a jet template. They provide a few examples to use as a template.

Assignments in the Simulator
When doing FS control setup (FS custom controls menus), the main axes should be set on the FS pc. The response to stick changes is best on the FS PC itself. There is no network involved in that case.
- Elevator
- Aileron
- Rudder
- Trim analog control (numpad 1 - 7 can be assigned as well to your FS stick)

If you want a second stick on FS, no problem. For more than one throttle, you may want FsXPands network joystick facility.

It would be better still to disable axis Z in FS and let FsXPand do the trim wheel. Otherwise the AP will not be able to take control of the trim because of the real values that are read frequently by FS all the time. If you use a trim switch for up and down, there is no problem.
For the same reason, throttles should work via FsXPand to prevent your AutoThrottle to become unreliable.

Missing functions: Some control functions are not available in FsXPand. Most of them are not really cockpit functions like Pan and View assignments, Zoom etc.
Should you need them though, these functions have to be assigned to one of your main sticks used on the FS pc using the FS custom controls menus.

Cockpit realism: You should set realism as real as possible, reliability 100%, choose 'w' for wide view (no panel), prop control automatic or manual unless you have a fixed pitch plane, auto coordination should be off, use yaw damper on the AP for the planes equipped with this feature.

Tip! Wait with assigning controls to your stick channels until all USB devices and analog gameports have been added and recognized by the system. I have seen Windows remap USB port ID's after adding a device. Your controls will be shuffled, funny when airborne....