1. Do not share user accounts! Any account that is shared by another person will be blocked and closed. This means: we will close not only the account that is shared, but also the main account of the user who uses another person's account. We have the ability to detect account sharing, so please do not try to cheat the system. This action will take place on 04/18/2023. Read all forum rules.
    Dismiss Notice
  2. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Now a Download Plan!
  3. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  4. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant. Do not follow these rules can lead to permanent exclusion from this website: Read the forum rules.
    Are you a company? Read our company rules

SimTools Settings, Tips and Tricks

SimTools, Settings, Tips and Tricks

Here you will find useful information about SimTools settings, tips and tricks
Sticky

RTFM - Start with the official SimTools documentation

In our enthusiasm, or sometimes frustration, it is easy to overlook the obvious, such as reading and understanding the official SimTools documentation:

SimTools official documentation: https://www.xsimulator.net/community/threads/official-simtools-user-manual.12424/

SimTools 2 Game Manager: https://www.xsimulator.net/simtools-game-manager/

The SimTools manual translated into Italian by @Milani Fabio: https://www.xsimulator.net/community/threads/simtools-italian-complete-manual-v1-2.13348/

The SimTools manual translated into Spanish by @josemanuelrm26: https://www.xsimulator.net/community/attachments/simtoolsusermanual-v2-4-es-pdf.72971/

The SimTools manual translated into French by @Kenshiro27: https://www.xsimulator.net/community/threads/first-steps.16082/page-3#post-218364

Obsolete - SimTools 1.3 documentation: http://www.xsimulator.net/simtools-complete-documentation/
Sticky

SimTools 2 Input Settings

The difference from SimTools 1.3 to SimTools 2 in setup is that in the Interface Settings instead of axis defined like this <Axis1> it now has designate grouping for a or b in SimTools 2 for each axis assignment, like this <Axis1a>

Most simulators will only use the a grouping, the b grouping is to allow additional axis for using thing things like a G-Seat in conjunction with a motion rig.
Sticky

Steps to create a motion profile

The first thing to do is grab a copy of the SimTools manual and keep it handy for reference: https://www.xsimulator.net/community/faq/rtfm-start-with-the-official-simtools-documentation.117/

After installing the game plugin select the desired game in the Axis Assignments tab of the SimTools Game Engine.

Game Engine has three different running modes to choose from. The mode you choose depends on the level of tuning you wish to do with your setup. You can change the Game Engine Mode at any time, so it is best to start with the Standard mode (Standard mode is strongly suggested for new users.)

1) mode is shown above and is the default mode for SimTools. You will only have one
Max/Min file per game plugin. In this mode you will only need to tune in a game one
time with the SimTools tuning center. This mode is strongly suggested for all new
users.
2) Advanced mode will allow you to set per “Game Manager Profile” Max/Min settings.
For every Game Manger Profile you have for a game, you also have a separate
Max/Min file that it is tied to. This can be helpful when you want to tune in each
vehicle separately with its own set of Max/Min numbers.
You adjust these settings in the Tuning Center. We will discuss this in more detail
in the Tuning Center section below.
As you can see in the image below we are tuning the Max/Min settings for the
“Default” Game Manager Profile. This name will change to the profile name you
have selected in Game Manger.
3) Expert mode will allow you to set per “Game Manager Profile” Max/Min settings. For
every Game Manger Profile you have for a game, you also have a separate Max/Min
file that it is tied to. Expert mode also allows you to have separate Max/Min files for
Axis Assignments (a) and Axis Assignments (b).

For racing select a mid range car and a reasonably accurate track, say Monza in AC, do a base profile, test it on some other tracks to fine tune, then tweak in Game Manager profiles. That way you have a reasonable range to tune harsher or softer in Game Manager profiles. Start with surge only, allocate 20% in the Axis Assignments. The actual Axis % needed for each axis depends on the design of the simulator and what force is being tuned and takes some experimentation to find and refine. In many respects total Axis allocation % is a bit like clipping in FFB settings, too much and you lose detail. Then do sway next, heave, then roll and pitch, one axis at a time.

Total axis allocation should be around 100% for race profiles, it can be a little over but do avoid huge allocations on axis that serve multiple DOF/forces, as clipping is likely: https://www.xsimulator.net/communit...-loss-moving-while-stopped.10397/#post-135974

Total axis allocation for general aviation flight profiles can be closer to 80-90% of both the available roll and pitch axis, as it is unlikely both will be at their extreme range at the same time. But be a bit more conservative in axis allocation for acrobatic and combat profiles that do use extreme maneuvers.

For flight profiles start with roll and pitch, or where supported by the plugin you can use Extra 1 and 2 in place of pitch and roll, as the later invert from one axis extreme to the other at 180 degree in-game inversion. You will also likely need to use the washout, gain and return filters for best flight effect.

If you do use Pitch and Roll in Axis Assignments make sure Axis Type is Advanced and in the FLT box of Roll and Pitch use the Anti-Rollover checkbox. Anti RollOver is designed to eliminate the 180 degree in-game inversion in rolls and loops. This setting returns the output value to zero when the input is at its max or min setting. For Instance, if we had a Max and a Min of 180°/-180° for an input and this setting was on, any values after 90° start counting back to zero. Making an input of 100° = 80°, 120° = 60°, and 180° = 0°. The same thing happens for the negative values also meaning that a -180° = 0°. (Note: This setting is only intended for the Roll and Pitch inputs from a game.): https://www.xsimulator.net/community/threads/simtools-v2-3-is-out.12483/#post-163409

84338

Next, you capture base settings for the Tuning Center: http://www.xsimulator.net/community/faq/set-base-tuning-motion-values-in-the-tuning-center.122/

From there manually tweak the settings. Raising the Tuning Center values will soften the motion over a greater axis movement, lowering the value will do the reverse. See here for an expanded explanation: https://www.xsimulator.net/community/threads/graphic-simtools-parameter-adjustment.9054/#post-113925

Test surge in game and manually adjust Tuning Center Values until surge feels right: http://www.xsimulator.net/community/faq/tuning-center-entering-manual-values.210/

With surge the Max value is generally smaller than the Min value in the Tuning Center, to give the effect of a snappy gear changes: http://www.xsimulator.net/community/faq/snappy-gear-change-motion.121/

Temporarily disable surge by setting is allocation to - (which effectively means none), that leaves the Axis Allocation % in place so you can easily re-enable it.

Do Sway next and follow the same procedure, then do heave the same way. Heave can in many cases be far less of an Axis allocation than 20%, while sway may be significantly more for best results. However, avoid allocating too much Axis % in total: http://www.xsimulator.net/community/faq/axis-assignment-percentage-totals.120/

Once you have surge, sway and heave sorted then you can then try adding roll and pitch.

Once you are satisfied with each you can re-enable them all and SimTools will mix the results. You may need to do some minor manual tweaking in the Tuning Center with all enabled.

When you are satisfied with the generic motion profile you created then you can refine it even further by creating specific car/track profiles in the Profile Editor, located in the SimTools Game Manager. Copy the Default Profile in Profile Editor under the Editor tab, name the copy by the Car/Track then use the sliders in the Editor to further tweak the settings.

You can change the Main Level % for different Game Manager profiles, this applies smoothing to All of the data coming from the game. (its how it adjusts the strength if you will). When this value is at 100 %, it uses no smoothing at all, and you are riding the direct data supplied from the game. As you lower the Main Level % value you are applying smoothing to all inputs from the game plugin: https://www.xsimulator.net/community/threads/simtools-v2-3-is-out.12483/#post-163173

Once the fundamentals are sorted you can use this handy tool by @perdixero to compare axis and analyze/refine filter settings: https://www.xsimulator.net/community/threads/application-to-compare-axis-filters-etc.10695/

Check here for further SimTools Settings, Tips and Tricks: http://www.xsimulator.net/community/faq/simtools-settings-tips-and-tricks.18/category

Credit @noorbeast
Sticky

Tuning Centre and Axis Settings

To get you started you can check here to find member Tuning Centre and Axis Settings: http://www.xsimulator.net/community/threads/tuning-centre-and-axis-settings.8363/

Check here if you want to dive in a little deeper to refine your motion profile: http://www.xsimulator.net/community/faq/steps-to-create-a-motion-profile.228/

Here is a very handy animated graphical representation of Axis Assignment and Tuning Center setting effects by @fzxj520: https://www.xsimulator.net/community/threads/graphic-simtools-parameter-adjustment.9054/

Tuning Center:

[​IMG]
Capture Max Min:

[​IMG]
Axis Assignments:
[​IMG]
Sticky

Comprehensive guide to SimTools and Arduinos

Sticky

SimTools Language setting bug - Change to English Local

Sticky

Simulating a 2DOF simulator

Sinusoid Generator

A curve plugin by @value1 to output a sine wave, so that you can have a programmable amplitude and frequency to exercise motors and test throws: https://www.xsimulator.net/community/threads/output-a-sinusoid.10283/#post-132905


[​IMG]

• Drag'n'drop the zip file into the SimTools_PluginUpdater.exe as usual
• Run GameManager in admin mode
• Patch the "game" (select SimTools installation directory; that's also the reason, why you need to run GameManager in admin mode when patching)
• Start GameEngine
• Run SimTools_CurveGenerator.exe from the SimTools installation directory
• Select the type of curve you want, select the simulated force, the IP address of GameEngine (127.0.0.1 if you run in single PC configuration) and press start.

Output Testing - Default Profile required

Output Testing is a useful way to safely manually test if your rig reacts as expected with SimTools.

You need a properly configured Default Profile in Axis Assignments, as that is what Output Testing uses.

Testing a rig - Live For Speed in SimTools Demo version

The demo version of SimTools includes the fully functional plugin for Live For Speed, specifically for testing purposes. Download LFS here: https://www.lfs.net/downloads

Make sure you run a LFS race in first person mode before patching it for motion, as that generates some required files.

If you did not run LFS prior to patching for motion then un-patch LFS, close SimTools, run a race in first person mode, then re-patch LFS for motion.

Boundary Filter

The Axis Allocation should total around 100%, not be 100% for each force: https://www.xsimulator.net/community/faq/axis-assignment-percentage-totals.120/

The Axis Allocation is how much of the total movement is available for each force. The boundary filter is a sort of limiter.

If you set the Axis Allocation force to use 20% of the axis, say for heave, it will use all of the 20% of the axis movement only when the game input for heave is at 100%.

If you set the Axis Allocation force to use 100% of the axis for heave, with a 20% boundary, it will use 20% of the axis movement when the game input for heave is at 20% and will ignore any higher inputs.

Anti Rollover

Anti-Rollover - This setting returns the output value to zero when the input is at its max or min setting.For Instance, if we had a Max and a Min of 180°/-180° for an input and this setting was on, any values after 90° start counting back to zero. Making an input of 100° = 80°, 120° = 60°, and 180° = 0°. The same thing happens for the negative values also meaning that a -180° = 0°. (Note: This setting is only intended for the Roll and Pitch inputs from a game.): https://www.xsimulator.net/communit...mulator-–-dcs-plugin.4762/page-19#post-173000

SimTools USB issues - Can cause crashes

SimTools is sensitive to any USB disruption when in use and it is useful to understand USB bandwidth, as on most sims there are also a multitude of peripherals, and of late VR devices (particularly the Rift), which combined can put a lot of strain on USB bandwidth.

A single on-board USB host controller almost always serves more than one USB port, so the total bandwidth available to those ports will be shared. The maximum bandwidth of devices connected to a single host controller is usually about 400MB/s in USB 3.0 mode and 36MB/s in USB 2.0 mode.

A significant problem with USB 3 ports is poor implementation of the Standards, which is also why high demand devices like the Rift often have issues with some USB 3 ports, particularly those on-board.

USB 2 is more stable and SimTools USB bandwidth needs are not high, so try using those USB 2 ports if possible, but keep in mind not to overload shared USB 2 controllers.

There are quality powered USB PCI cards you can add to a system to alleviate overloading on-board shared ports, though be aware that many do not have dedicated channels, but some do.

You can use USBtreeview to check out what devices are plugged in to which controllers, to help make the most of the USB ports you have, download it here: https://www.majorgeeks.com/files/details/usb_device_tree_viewer.html

Just as important is to ensure good cable management and shielding to avoid interference, so use quality USB cables and ferrite shields: https://www.ebay.com/sch/i.html?LH_... shield&_sacat=&_sadis=&_sop=12&_udhi=&_udlo=

See here for cable management tips: https://www.xsimulator.net/community/faq/cable-management.166/

In addition Windows by default has Selective Suspend enabled for USB ports and that should be turned off: https://www.windowscentral.com/how-prevent-windows-10-turning-usb-devices

Credit @noorbeast: https://www.xsimulator.net/community/threads/simtools-usb-issues-can-cause-crashes.12434/

Washout - Gain and Return

A flight sim profile takes a little finesse and digging into the SimTools Filters.

One of the most useful tweaks is properly understanding and setting up Washout Gain and Return.

This is yobuddy's overview: https://www.xsimulator.net/communit...s-in-the-washout-filter-do.12224/#post-159230

(Washout) Gain – This is how much we will react to changes in the input from the game. If your simulator is not moving enough from the output from the game, Increase this value.

(Washout) Return – This is how fast we try to return to zero after a movement has occurred. If your simulator is not homing (re-centering) fast enough after a movement, Increase this value.

The Washout Filter is needed when your DOF input fails to return to center after the force is applied to the Axis.

Example: when car's rear end slides out. The Axis is left in a non centered position. If the car then needs to slide out in the same direction again, there would be no room left for the needed travel. To overcome these circumstances, we use a washout filter as to slowly move the axis back to center without the rider’s knowledge of it occurring. A Gain of 1 or above must be used for the Washout system to be considered active. A setting of 50% for both Gain and Return is a good place to start for any game.


Here is @Spit40's succinct summary of how Gain and Return function, though please note the Smoothing settings are a bit too high in his example settings: https://www.xsimulator.net/community/threads/aerofly-fs-2-plugin.9096/page-6#post-135790

Washout Gain/Return (Updated and Corrected)

After many hours and some extra help from @yobuddy I now have a much better handle on washout gain/return and my flying feels a lot better. I really think its essential to use this properly with flight sim to get a good feeling. The problem is if you don't know quite what both gain & return do then pure experimentation can give very confusing results.

I'm mainly using this for banking mapped to the Extra2 roll/sec DOF. What I was after was a fairly responsive roll without being snatchy which would imperceptibly return to neutral once I had completed applying the roll, so that I feel the force of the roll taking effect but not the return axis movement. I'm also using it for yaw mapped to Extra3 yaw/sec. This is my current setting, though I may tweak it more now I know what's going on.

These are my main DOF mappings.
[​IMG]

I'm finding 100% fine as I'm flying cessna's rather than fast jets, so no extreme combined DOFs.

This is the Extra2 setting.
[​IMG]

Smoothing: I want it very smooth so 100%
Washout Gain: This determines how responsive SimTools is to the DOF input. 100% means very responsive. 1% means very unresponsive, which means changes to this DOF would have a very diluted impact. 0% means all washout functionality disabled. I'm not sure if 100% is what you get if washout is disabled, but I found 100% too snatchy for flying, in fact it seemed to undermine all that 100% smoothness. Settings around 75% seem to give the smooth responsiveness I was after when applying the roll.

Washout Return: This is all about the subtle return to neutral. Without it if I, for example, start banking to the right then hold the bank angle at 20 degrees what I feel is a strong banking force followed by an often stronger returning force once I reach 20 degrees. Very unnatural. Now once I reach 20 degrees and my roll acceleration returns to 0, the axis returns gently to neutral. It can feel a little gritty but I think I'm now hitting the limits of the motors & gearing and their ability to make smooth fine adjustments.

Devs - how to add Telemetry output into a game + Unity and UE4 code

If you are using either Unity or Unreal Engine 4 then @Claudio Silva has done the hard work for you in creating function code for SimTools integration, including a UDP server, see the original post here: https://www.xsimulator.net/community/threads/generic-unity-plugin.7804/page-2#post-146168

And the GitHub QuplaySimTools repository where you can grab the code: https://github.com/ddkclaudio/QuplaySimTools

The SimTools dev @yobuddy gives this example guide to adding telemetry to your game: https://www.xsimulator.net/communit...ow-to-add-telemetry-output-into-a-game.11080/

First, let’s make the game a settings file to hold the Telemetry settings for the game.
I’m suggesting a ‘Telemetry.cfg’ file that holds the motion configuration for the game.

You may already have a configuration file for the game that you want to put these settings in, this is just an example. (This also gives SimTools a file to patch for motion, and allows the telemetry outputting to be on or off as needed.)

The Telemetry.cfg file holds these 4 settings:
- Enable_Telemitry = False
- IpAddress = 127.0.0.1
- Port = 4123
- MS_OutputRate = 10

I wrote the following example code in VB.net, as its dead simple to read and see what I’m doing.
Basically thou, I’m creating a looping background thread that builds and sends the needed output with UDP.
Once you have ‘something like’ this code in the game, all you have to do is:
Call ‘Start_Telemetry_Output()’ when the game starts up.
And ‘Stop_Telemety_Output()’ when the game shuts down.

Ok, now some code:
Private Telemetry_Sender As New UdpClient
Private Telemetry_Loop_ms As Integer
Private Telemetry_Running As Boolean = False
Private Telemetry_Thread As Threading.Thread

'Starts up the Telemetry Sender.
Private Sub Start_Telemetry_Output()
'only startup if not already started.
If Telemetry_Running = False Then
'read from Telemtry cfg file.
Dim Telemitry_Enabled AsString = "Get Enabled_Telemetry value from the Telemetry.cfg file"
Dim IpAddress AsString = "Get IpAddress value from the Telemetry.cfg file"
Dim Port AsString = "Get Port value from the Telemetry.cfg file"
Dim MS_OutputRate AsString = "Get MS_OutputRate value from the Telemetry.cfg file"

If CBool(Telemitry_Enabled) = True Then
Try
'startup a new client.
Telemetry_Sender = New UdpClient
Telemetry_Sender.Connect(IpAddress, CInt(Port))

'set loop speed & start sending data.
Telemetry_Loop_ms = CInt(MS_OutputRate)
Telemetry_Running = True
Telemetry_Thread = New Threading.Thread(AddressOf Telemetry_Loop)
Telemetry_Thread.IsBackground = True
Telemetry_Thread.Start()
Catch ex As Exception
'Could not create the UDP sender, no need to do anything.
End TryEnd IfEnd IfEnd Sub

'Send Telemetry
Public Sub SendTelemetry()
Try
'Collect the data.
Dim Roll As String = ""
Dim Pitch As String = ""
Dim Yaw As String = ""
Dim RollSpeed As String = ""
Dim PitchSpeed As String = ""
Dim YawSpeed As String = ""
Dim Vertical As String = ""
Dim Lateral As String = ""
Dim Longitudinal As String = ""
'add anything else you want to add, its easy now!
'Dim Rpm As String = ""
'Dim Speed As String = ""

'check the status to see if the game is being played (In Game, In Menus, Paused).
Dim Game_Is_Playing As Boolean = 'Get if the game is being played)

'game is actually being played check.
If Game_Is_Playing = True Then

'If game is actually being played (not in menus or paused).
Roll = "Get value from your game" 'in degrees - (-180 to 180)
Pitch = "Get value from your game" 'in degrees - (-180 to 180)
Yaw = "Get value from your game" 'in degrees - (-180 to 180)
RollSpeed = "Get value from your game" 'in (rad/sec)
PitchSpeed = "Get value from your game" 'in (rad/sec)
YawSpeed = "Get value from your game" 'in (rad/sec)
Vertical = "Get value from your game" 'in g's acceleration
Lateral = "Get value from your game" 'in g's acceleration
Longitudinal = "Get value from your game" 'in g's acceleration
Else
'If the game is paused or in the menus. (not actually being played)
Roll = "0" 'in degrees - (-180 to 180)
Pitch = "0" 'in degrees - (-180 to 180)
Yaw = "0" 'in degrees - (-180 to 180)
RollSpeed = "0" 'in (rad/sec)
PitchSpeed = "0" 'in (rad/sec)
YawSpeed = "0" 'in (rad/sec)
Vertical = "0" 'in g's acceleration
Lateral = "0" 'in g's acceleration
Longitudinal = "0" 'in g's acceleration
End If

'Build the output string. (The 'S~' and the '~E' is so the user can see if they have a complete string of inputs)
Dim WhatToSend As String = "S~Roll:" & Roll & "Pitch:" & Pitch & ":Yaw:" & Yaw & "RollSpeed:" & RollSpeed & "PitchSpeed:" & PitchSpeed & ":YawSpeed:" & YawSpeed & "Vertical:" & Vertical & ":Lateral:" & Lateral & ":Longitudinal:" & Longitudinal & "~E"

'Send the string
Dim bytCommand As Byte() = NewByte() {}
bytCommand = Encoding.ASCII.GetBytes(WhatToSend)
Telemetry_Sender.Send(bytCommand, bytCommand.Length)Catch ex As Exception
'something went wrong, turn off telemetry output.
Stop_Telemity_Output()
End TryEnd Sub

'Stop Telemetry Output
Public Sub Stop_Telemetry_Output()
'only shutdown if already started.
If Telemetry_Running = True Then
'turn output off.
Telemetry_Running = False
'let it finish what its doing.
Threading.Thread.Sleep(100)
'Close Client.
Telemetry_Sender.Close()
End IfEnd Sub

'Send Telemetry Loop
Private Sub Telemetry_Loop()
'Send Telemetry.
SendTelemetry()
'pause till next packet is needed.
Threading.Thread.Sleep(Telemetry_Loop_ms)
'loop again if needed.
If Telemetry_Running = True Then
Telemetry_Thread = New Threading.Thread(AddressOf Telemetry_Loop)
Telemetry_Thread.IsBackground = True
Telemetry_Thread.Start()
End IfEnd Sub

Source Code:
https://www.xsimulator.net/community/attachments/telemetryoutputexample-zip.45557/