Connect a Logitech Dual Action Gamepad to FS One#

This guide lets you use FS One with a common gamepad that works with a PC. The instructions here are for the Logitech Dual Action gamepad [Model F310 ( manual )]. The back side X-D mode switch (API switch) should be set to “D” (for DirectInput). The gamepad has two mini-sticks (self-centering joysticks), a hat switch (D-pad), four face buttons in a diamond shape (labeled A, B, X, Y), buttons in the center (“BACK” and “START”), and buttons on the top (“shoulder” buttons). A generic gamepad with these controls is shown below. These setup steps in this guide will probably apply to most other DirectInput gamepads.

RC transmitters often have a mix of two-position and three-position switches that keep their position when moved. These do things like, e.g., moving retractable landing gear up/down. Because gamepads do not have switches, the steps below imitate RC transmitter switches by using the buttons on the gamepad. When you press a button, it changes the “position of the switch.” That switch position does not change when you release the button. It will change when you press a different button related to that function, i.e. two buttons will control landing gear up/down. Further, three buttons will control flaps, two buttons will control the resets, and three buttons will set the flight mode.

Click image to enlarge.

standard axis order
Generic gamepad.
(Artwork by Alphathon, CC BY-SA 3.0, via Wikimedia Commons)

DirectInput vs XInput Gamepads

Per mention above, this setup is for a DirectInput gamepad. Note that if you do not use a DirectInput gamepad and instead use a XInput gamepad, the setup below will require substantial changes. This is because with a XInput gamepad the top left/right triggers work together as an additional axis and not independently as two buttons.

This guide gives instructions for setups as shown in the table below. The first setup (“4 Ch”) maps only the sticks and be applicable to nearly any gamepad. Although the axes for the controls might be slightly different than given in the table for the Logitech, the controller aileron axis will always be mapped to vJoy axis 8, elevator to vJoy axis 7, rudder to vJoy axis 6, and throttle to vJoy axis 5 as required by FS One (per last column in the table and described previously).

For the “4 Ch” case, the keyboard is used for the remaining controls that are not remapped. Keys 1/2/3 control the three flight modes. Gear is usually on key 6. Flaps are on keys 4/5 and offer two flap settings (half and full). The keys work as toggles, i.e. press once to put flaps down, and press again to retract the flaps. Reset is done using the keys: Spacebar (Reset-To-Home) and U (Reset-In-Place).

The “8 Ch” case maps everything (using all 8 vJoy axes).

With your finished remapping, Joystick Gremlin forwards your control inputs to vJoy which is what you will select as your USB interface in FS One 2022e.

Logitech
Control Inputs

Logitech Axes/Buttons*

FS One Function

4 Ch

8 Ch

vJoy Axis mapping

Right Stick

Z Axis

Ailerons

x

x

8

Z Rotation

Elevator

x

x

7

Left Stick

X Axis

Rudder

x

x

6

Y Axis

Throttle

x

x

5

Left Bumper

Button 5

Gear - Up

x

4

Left Trigger

Button 7

Gear - Down

D-Pad

Hat 1

Flaps - Up

x

3

Right Bumper

Button 6

Flaps - Half

Right Trigger

Button 8

Flaps - Full

BACK

Button 9

Reset-To-Home

x

2

START

Button 10

Reset-In-Place

X

Button 1

Flight Modes - Low

x

1

A

Button 2

Flight Modes - Medium

B

Button 3

Flight Modes - High

(* Logitech Controller Mode button set to “Flight Mode”. Green status light is off. Also, DirectInput mode is used. The X-D switch is set to “D”.)

Calibrating the 4 Ch Setup with No Controls for Gear, Flaps, Resets, and Flight Modes

When calibrating inside FS One with the “4 Ch” setups where nothing is being mapped to the last four functions, FS will ask for you to move those controls. Skip them, and the respective axis in FS One will not be used. You will use the keyboard keys for those controls not commanded by your gamepad.

Prerequisites#

If you have already installed vJoy, installed Joystick Gremlin, and made a virtual joystick, then skip the block below and start with the following section.

Install vJoy

This makes a virtual joystick for FS One (or for anything else).

  • Unplug all USB gamepads, joysticks, TacCon, and other “R/C” controllers.

  • Download and run vJoySetup.exe. This downloads from github.

Install Joystick Gremlin

This configures what vJoy makes.

Verify Installations

Verify that both vJoy and Joystick Gremlin appear in the Windows Start menu.

Make a vJoy Virtual Joystick

  • From the Start menu, Configure vJoy . This launches vJoyConf.

  • At bottom left, check the checkbox Enable vJoy .

  • You might need to click Add Device, reboot, and once more Start -> vJoy -> Configure vJoy.

  • Check all 8 checkboxes for Axes .

  • Note: Even if you are going to use less than 8 axes, still check all to make vJoy have: 8 axes.

  • Set Number of Buttons to 0.

  • Set POVs to 0.

  • Uncheck the checkbox Enable Effects .

  • Click Apply . Your computer may beep.

  • vJoyConf can be closed.

  • Reboot, if prompted by vJoyConf.

  • Open the Windows Game Controller to see virtual joystick named vJoy Device.

  • You set up vJoy (image below) one time. This completes your vJoy Device setup.

../_images/vjoy1.png

vJoyConf configuring a virtual joystick with 8 axes, 0 buttons, and 0 hat switches.
This is vJoy Device #1 indicated by the light green tab labeled “1”.
#

Remaining Instructions

  • The remainder of these instructions include using Joystick Gremlin to remap your controller inputs to vJoy.

Connect the Logitech Gamepad#

Connect your gamepad. The Logitech Dual Action Gamepad has the controls shown below in the Windows Game Controller gadget.

joy.cpl main joy.cpl test

Calibrate the Gamepad in Joystick Gremlin#

  • Disconnect other USB controllers.

  • Plug the gamepad into the PC.

  • Run the Windows Game Controller gadget (above) to confirm your controls.

  • From the Windows Start menu, run Joystick Gremlin (hereafter called JG).

  • Create a new Profile in JG. From the JG’s menu, choose File -> New Profile .

  • From JG’s menu, choose Tools -> Calibration . A calibration window appears.

  • From top dropdown, choose the name of the controller “Logitech Dual Action” (if not already chosen).

  • Move the sticks over their full ranges.

  • Release the sticks so that they center. Click on Centered . Click on Save . Click on Close .

JG's calibration window

View the Controller Inputs and Remapping#

  • From JG’s menu, choose Tools -> Input Viewer .
    A new window appears (hereafter called JG-viewer). Make it tall as shown below.

  • In the JG-viewer window, for the Logitech Dual Action, check the two boxes:
    Axes - Current and Buttons + Hats .

  • For the vJoy Device #1 , check the box: Axes - Current . FS One will only use vJoy axes.

  • Move the sticks and press the buttons (not the mode button, however) to see that your inputs are being seen by JG. All controls in the table above should be active (table column: “Logitech Axes/Buttons”).

  • The vJoy Device #1 axes will not move because you have yet to define the remapping.

  • See image below.

../_images/jg-status-logitech.png

JG-viewer
JG input/output viewer showing the axes and buttons for the gamepad controller and vJoy Device.
#

Remap the Logitech Gamepad#

JG’s top row has tabs for USB controllers, your keyboard, and the vJoy Device #1 that you created. Generally, the USB controllers are the inputs to the output that is the virtual joystick vJoy Device #1 which is used by FS One. The keyboard appears, but it will not be used here. Other USB controllers will appear if you have others plugged into your computer. Disconnect any extraneous USB controllers for this setup.

Tip

When you are finished remapping, follow these steps to use the controller:

  • In Joystick Gremlin, click the gamepad icon to change it from black to green so that Joystick Gremlin is Activated. Use JG’s Tools -> Input Viewer to confirm that your inputs are going to the vJoy Device joystick as you expect.

  • When running FS One, select the vJoy Device virtual joystick that you created. Do not select the Logitech Dual Action.

DOWNLOAD: Preconfigured Mapping File#

Instead of manually doing all the steps on the rest of this page, you may instead take a shortcut if you are using the: Logitech Dual Action Gamepad.

  • Right click to download and save the JG Profile (file) gamepad.xml to your computer.

  • From JG’s menu, choose File -> Load Profile and choose that file.

  • When you open it, JG may ask you “The profile has been modified. Do you want to save your changes?” You can click “discard”, and what you were doing prior will not be saved.

  • Now from the JG menu, click on Actions , then Swap Devices . In the popup, click on the Logitech Dual Action, and it will ask: “Please press the desired …”. Just move, say, the elevator stick (anything responsive) on the Logitech gamepad. The prompt will close. Then click X to close the Swap Devices popup. Now move the sticks around and the remapping functions in the downloaded Profile will appear on the right side panel.

  • It is suggested that you step through remapping instructions below (follow along) to understand how the remapping works. Also, you will see how the Logitech gamepad inputs are used by FS One (via vJoy axes).

  • Save the Profile. It will save to the location where you loaded it. But if you select
    File -> Save Profile As (recommended), then it will save it to your local files location (Owner/joystick gremlin) or a location you choose.

  • You can confirm your final controls setup below.

Note

When loading in a new Profile, it is a known that Joystick Gremlin will discard the Action Description names, e.g. “Ailerons”, and so on. The names are not necessary. But you can follow along below and add back in the names and save your Profile.

Tip

To use the controller, follow these steps:

  • In Joystick Gremlin, click the gamepad icon to change it from black to green so that Joystick Gremlin is Activated. Use JG’s Tools -> Input Viewer to confirm that your inputs are going to the vJoy Device joystick as you expect (following the table above showing how your inputs remap to the specific vJoy axes).

  • When running FS One, select the vJoy Device virtual joystick that you created. Do not select the Logitech Dual Action.

  • See the section on calibrating in FS One. Some very specific steps are require when calibrating the gamepad.

Overview#

Each section below remaps a single control (or controls) to one axis for FS One, starting with Ailerons. First, you move a control to select an input. It will gray highlight on the left side of JG’s main window. Then you will define where that control is mapped using the right side of JG main window. Then you can test each axis mapping with the JG-viewer window to see that it is correct.

Remap the Gamepad Axes to vJoy Axes: 4 Ch#

If you are using the downloaded setup above, you do not need to carryout these steps below.

To create your remapping to the standard axes order for FS One, these steps are performed in JG’s main window. To start, the JG gamepad icon should be black (not green). If it is green, click on it.

In JG’s main window, click on the tab: Logitech Dual Action .

  • The left side of the window lists the gamepad axes and buttons.

  • The last moved axis or button will be highlighted gray.

  • The right side shows what each axis and button does (what will define the remapping).

  • This right side is initially blank.

  • The left side’s labels for the axes (e.g., X Axis, and so on) are the Windows terminology for joystick axes and buttons and not meaningful to FS One. Yet, the left side names will be used in the instructions here.

Map the Aileron Stick to vJoy Axis 8

  • First you may need to move the sticks around to ‘wake-up’ the main JG window. It can go into a “sleep” mode. Again, the last moved axis or button should highlight gray as you move each control input.

  • Move the aileron stick (conventionally, for Mode 2, the right stick, horizontally).
    In JG, the left side’s highlight jumps to Z Axis .

  • On the right side, into Action Description type “Ailerons”.

  • On the right side, next to the first dropdown (it will have Remap selected), click Add .

  • Inside the gray Remap box, change the lower dropdown from X Axis to Dial (vJoy Axis 8).

  • See image below. Click to enlarge.

Test your mapping:

  • At top left, click the JG gamepad icon (“Activate”) to change it from black to green.

  • Move the aileron stick. Now JG-viewer’s vJoy Axis 8 reacts to that movement.

  • Your first axis remapping is complete.

  • Click the JG gamepad icon to make it black again.

This screen shot below also shows results of the remaining instructions. Click for full size image.

JG, mapping the gamepad's aileron stick to vJoy's axis 8.

Map the Elevator Stick to vJoy Axis 7

  • Move the elevator stick. The left side’s highlight jumps to Z Rotation .

  • On the right side, into Action Description type “Elevator”.

  • On the right side, next to Remap , click Add .

  • Inside the gray Remap box, change the lower dropdown to Slider (vJoy Axis 7).

  • Click the JG gamepad icon green.

  • Move the elevator stick. Now JG-viewer’s vJoy Axis 7 reacts to that movement.

  • Click the JG gamepad icon to make it black again.

Map the Rudder Stick to vJoy Axis 6

  • Move the rudder stick. The left side’s highlight jumps to X Axis .

  • On the right side, into Action Description type “Rudder”.

  • On the right side, next to Remap, click Add .

  • Inside the gray Remap box, change the lower dropdown to Z Rotation (vJoy Axis 6).

  • Below the Remap box, change the dropdrown Remap to Response Curve . Click Add .

  • Within the Response Curve box, click on Invert to reverse the axis.

Map the Throttle Stick to vJoy Axis 5

  • Move the throttle stick. The left side’s highlight jumps to Y Axis .

  • On the right side, into Action Description type “Throttle” .

  • On the right side, next to Remap , click Add .

  • Inside the gray Remap box, change the lower dropdown to Y Rotation (vJoy Axis 5).

  • Below the Remap box, change the dropdrown Remap to Response Curve . Click Add .

  • Double-click inside the graph (the big square). A third point appears.

  • Drag the new point to the top middle of the graph. Below the graph with that point selected, the Control Point X should be 0.000 and Y should be 1.000.

  • Double-click inside the graph (left side). A fourth point appears.

  • Drag the new point to match the location of the red point below. The curved green line becomes straight.

  • While keeping this new point selected, below the graph, the Control Point X should be about -0.068 and Y should be about 0.868. Your result should match the image below.

Click for full size image.

JG, mapping the gamepad's throttle stick to vJoy's axis 8.

This completes the “4 Ch” setup and only uses the joysticks. You could stop here if you want to test out your controller in FS One before adding more channel remapping.

Save Your Work

From the menu, File -> Save Profile As and give it a name, e.g. My-Gamepad-4-Ch.xml .
After you have saved it once, you can File -> Save Profile at any time, of course.

Activate and Test

When the JG gamepad icon is green, the JG-viewer window should show vJoy axes 5/6/7/8 reacting to your gamepad controls defined above. When the sticks are pushed all the way to the lower left, the axes should appear as shown below. Axes 1/2/3/4 will be in the middle and not move. If your controller is different and an axis is reversed, then add a Response Curve -> Invert to that axis, save, and test (e.g., see rudder axis invert steps above).

../_images/jg-status-logitech-4-ch.png

JG-viewer
JG input/output viewer showing the axes and buttons for the gamepad controller and vJoy Device.
(4 Ch setup)
#

Remap the Gamepad Axes to vJoy Axes: 8 Ch#

(adding four more axes)

To the “4 Ch” above, continue and add the remaining axes to finish the “8 Ch” setup. See table above.

Begin by saving your file using File -> Save Profile As and give it a name, e.g. My-Gamepad-8-Ch.xml .

The following steps map 9 buttons and the D-Pad to create the remaining 4 vJoy axes. The basic operations of each step are nearly the same. Nevetheless, each step is given in detail.

If the gamepad icon is green, click it to make it black.

Map the Gear Buttons to vJoy Axis 4

  • Press the left bumper (“LB”). The left side’s highlight jumps to Button 5 .

  • On the right side, into Action Description type “Gear - Up”.

  • On the right side, change the dropdrown from Remap to Macro . Click Add .

  • Inside the newly added gray Macro box:

    • In the column of icons, click the top icon.

    • Inside the right side’s Action Settings do the following:

    • Change the dropdown from Pause to vJoy .

    • Below the new dropdown vJoy Device 1 , change the dropdown to X Rotation (vJoy Axis 4).

    • Leave the Absolute button checked, not the Relative one.

    • Arrow up to the value: 1.000 .

  • Press the left trigger (“LT”). The left side’s highlight jumps to Button 7 .

  • On the right side, into Action Description type “Gear - Down”.

  • On the right side, change the dropdrown from Remap to Macro . Click Add .

  • Inside the newly added gray Macro box:

    • In the column of icons, click the top icon.

    • Inside the right side’s Action Settings do the following:

    • Change the dropdown from Pause to vJoy .

    • Below the new dropdown vJoy Device 1 , change the dropdown to X Rotation (vJoy Axis 4).

    • Leave the Absolute button checked, not the Relative one.

    • Arrow down to the value: -1.000 .

Map the Flap Buttons to vJoy Axis 3

  • Press the D-Pad (Hat). The left side’s highlight jumps to Hat 1 .

  • On the right side, into Action Description type “Flaps - Up”.

  • On the right side, change the dropdrown from Remap to Macro . Click Add .

  • Inside the newly added gray Macro box:

    • In the column of icons, click the top icon.

    • Inside the right side’s Action Settings do the following:

    • Change the dropdown from Pause to vJoy .

    • Below the new dropdown vJoy Device 1 , change the blank dropdown to Z Axis (vJoy Axis 3).

    • Leave the Absolute button checked, not the Relative one.

    • Arrow down to the value: -1.000 .

    • At right, change from the sideways Action tab to the Virtual Button tab.

    • Click all virtual button boxes.

  • Press the right bumper (“RB”). The left side’s highlight jumps to Button 6 .

  • On the right side, into Action Description type “Flaps - Half”.

  • On the right side, change the dropdrown from Remap to Macro . Click Add .

  • Inside the newly added gray Macro box:

    • In the column of icons, click the top icon.

    • Inside the right side’s Action Settings do the following:

    • Change the dropdown from Pause to vJoy .

    • Below the new dropdown vJoy Device 1 , change the blank dropdown to Z Axis (vJoy Axis 3).

    • Leave the Absolute button checked, not the Relative one.

    • Leave the value as: 0.000 .

  • Press the right trigger (“RT”). The left side’s highlight jumps to Button 8 .

  • On the right side, into Action Description type “Flaps - Full”.

  • On the right side, change the dropdrown from Remap to Macro . Click Add .

  • Inside the newly added gray Macro box:

    • In the column of icons, click the top icon.

    • Inside the right side’s Action Settings do the following:

    • Change the dropdown from Pause to vJoy .

    • Below the new dropdown vJoy Device 1 , change the blank dropdown to Z Axis (vJoy Axis 3).

    • Leave the Absolute button checked, not the Relative one.

    • Arrow up to the value: 1.000 .

Map the Reset-To-Home Button to vJoy Axis 2

  • Press the “BACK” button which is to the left of center on your gamepad. The left side’s highlight jumps to Button 9 .

  • On the right side, into Action Description type “Reset-To-Home”.

  • On the right side, change the dropdrown from Remap to Macro . Click Add .

  • Inside the newly added gray Macro box:

    • In the column of icons, click the top icon.

    • Inside the right side’s Action Settings do the following:

    • Change the dropdown from Pause to vJoy .

    • Below the new dropdown vJoy Device 1 , change the blank dropdown to Y Axis (vJoy Axis 2).

    • Leave the Absolute button checked, not the Relative one.

    • Arrow up to the value: 1.000 .

  • At right, click on the sideways tab Condition .
    Change the Apply conditions to dropdown to Container .
    At right, change the dropdown to from Keyboard Condition to Action Condition . Click Add .
    In the new Action Condition box, leave the dropdown as Pressed .

  • Back to the main top level (still on right side panel), the dropdrown should still read as Macro . Click Add to add another macro.
    A new Macro box appears below the first Macro box. Scroll down.

  • Inside the second Macro:

    • In the column of icons, click the top icon.

    • Inside the right side’s Action Settings do the following:

    • Change the dropdown from Pause to vJoy .

    • Below the new dropdown vJoy Device 1 , change the blank dropdown to Y Axis (vJoy Axis 2).

    • Leave the Absolute button checked, not the Relative one.

    • Leave the value as: 0.000 .

  • At right, click on the sideways tab Condition .
    Change the Apply conditions to dropdown to Container .
    At right, change the dropdown from Keyboard Condition to Action Condition . Click Add .
    In the new Action Condition box, change the dropdown from Pressed to Released .

Map the Reset-In-Place Button to vJoy Axis 2

  • Press the “START” button which is to the right of center on your gamepad. The left side’s highlight jumps to Button 10 .

  • On the right side, into Action Description type “Reset-In-Place”.

  • On the right side, change the dropdrown from Remap to Macro . Click Add .

  • Inside the newly added gray Macro box:

    • In the column of icons, click the top icon.

    • Inside the right side’s Action Settings do the following:

    • Change the dropdown from Pause to vJoy .

    • Below the new dropdown vJoy Device 1 , change the blank dropdown to Y Axis (vJoy Axis 2).

    • Leave the Absolute button checked, not the Relative one.

    • Arrow down to the value: -1.000 .

  • At right, click on the sideways tab Condition .
    Change the Apply conditions to dropdown to Container .
    At right, change the dropdown to from Keyboard Condition to Action Condition . Click Add .
    In the new Action Condition box, leave the dropdown as Pressed .

  • Back to the main top level (still on right side panel), the dropdrown should still read as Macro . Click Add to add another macro.
    A new Macro box appears below the first Macro box. Scroll down.

  • Inside the second Macro:

    • In the column of icons, click the top icon.

    • Inside the right side’s Action Settings do the following:

    • Change the dropdown from Pause to vJoy .

    • Below the new dropdown vJoy Device 1 , change the blank dropdown to Y Axis (vJoy Axis 2).

    • Leave the Absolute button checked, not the Relative one.

    • Leave the value as: 0.000 .

  • At right, click on the sideways tab Condition .
    Change the Apply conditions to dropdown to Container .
    At right, change the dropdown from Keyboard Condition to Action Condition . Click Add .
    In the new Action Condition box, change the dropdown from Pressed to Released .

Map the Flight Modes Buttons to vJoy Axis 1

  • Press the “X” button (right side). The left side’s highlight jumps to Button 1 .

  • On the right side, into Action Description type “Flight Modes - Low”.

  • On the right side, change the dropdrown from Remap to Macro . Click Add .

  • Inside the newly added gray Macro box:

    • In the column of icons, click the top icon.

    • Inside the right side’s Action Settings do the following:

    • Change the dropdown from Pause to vJoy .

    • Below the new dropdown vJoy Device 1 , change the blank dropdown to X Axis (vJoy Axis 1).

    • Leave the Absolute button checked, not the Relative one.

    • Arrow down to the value: -1.000 .

  • Press the “A” button (right side). The left side’s highlight jumps to Button 2 .

  • On the right side, into Action Description type “Flight Modes - Medium”.

  • On the right side, change the dropdrown from Remap to Macro . Click Add .

  • Inside the newly added gray Macro box:

    • In the column of icons, click the top icon.

    • Inside the right side’s Action Settings do the following:

    • Change the dropdown from Pause to vJoy .

    • Below the new dropdown vJoy Device 1 , change the blank dropdown to X Axis (vJoy Axis 1).

    • Leave the Absolute button checked, not the Relative one.

    • Leave the value as: 0.000 .

  • Press the “B” button (right side). The left side’s highlight jumps to Button 3 .

  • On the right side, into Action Description type “Flight Modes - High”.

  • On the right side, change the dropdrown from Remap to Macro . Click Add .

  • Inside the newly added gray Macro box:

    • In the column of icons, click the top icon.

    • Inside the right side’s Action Settings do the following:

    • Change the dropdown from Pause to vJoy .

    • Below the new dropdown vJoy Device 1 , change the blank dropdown to X Axis (vJoy Axis 1).

    • Leave the Absolute button checked, not the Relative one.

    • Arrow up to the value: 1.000 .

Re-Save Your Work

Save your work.

Activate and Test

When the JG gamepad icon is green, the JG-viewer window should show all vJoy axes reacting to your controls defined above (see table at the beginning of the setup guide).

Confirm the Remapping#

Finally, your controller inputs should match the standard axes order below which also shows the axis directions (via showing full control throws in the specific directions). The mapping order, generally, was discussed here. In this diagram, the “Axis 1” for vJoy is “1. Flight Modes” (“FM”) for FS One, etc.

When you finish this guide, return back to the last part of Getting Started: Part I to continue your setup and run FS One.

Click image to enlarge.

standard axis order
Standard axes order in FS One with sliders at full deflections for the controls indicated.