How to Add Hardware Force Trim to any Helicopter with any Joystick using SPAD (Simple Tutorial)

Hello,

This is a very simple idea/how-to for those using SPAD.next.

In the latest releases Spad changed how axis are managed and now we can add a condition to trigger the axis events, this means we can enable/disable the axis programatically.
For advanced users that is all you need to know but for the mortals keep reading.

TL;DR: We will use a local variable to determine if our joystick controls the elevator and aileron axis in the heli or not. We will map a button to enable or disable that variable.

Instructions:

  • Disable the aileron and elevator axis for your joystick in MSFS, in other words nothing should happen when you move your joystick.
  • Choose a button in your joystick that will be used as the force trim button.
  • In SPAD create two events for that button: on press set a local variable to 1 and on release set the same local variable to 0. I named my local variable HW_FT_TRIM you can name it as you want, like Louise or something like that.
  • Choose your joystick axis and add event, choose default axis and choose the aileron and elevator axis from the options, as the condition add the name of your local variable equal to 1.

So how it works:
While you press the button you can use your joystick to move the heli controls, when you release the button the axis stops working so the heli controls will stay fixed (trimmed) in the position you released the button. Simply press the button to move again.

It should work in any helicopter, AFAIK only the HPG helis have this so it is a big help for all the other Helis.

More Advanced Ideas:

  • You can also bind a button to enable disable the mode and have it permanently on or off without the need to keep a button pressed (for convenience).
  • Once the joystick is disabled we might add hat buttons to slightly change the aileron or elevator position using MSFS Axis Set events, then we can fine-adjust the trimming without needing to touch the joystick.

Even more advanced:

This solution just couples/decouples your joystick from the cyclic which is not the most realistic operation. With some time you can store elevator and aileron positions and then when the joystick is moved start from those positions and if released return to those so you can adjust and return to the previously trimmed position. This would need adding a “reset trim” button to get elevator and aileron back to 0.

Note: Elevator and Aileron used in this post as they are mapped 1:1 with the rotor longitudinal and lateral axis not sure if for all helis but I think it is the most standard way to handle any aircraft in MSFS.

7 Likes

Thanks for this and info on Spad! Spad definitely ups flight simming realism 1000% with capabilities like this. Could not imagine going back to FSUIPC or Microsoft in game for controls.

Please keep posting more gems!

If you are talking about joystick with hardware FFB, then SimFFB program already does what you explained.

Well obviously I didn’t know about that software because I tried to do part of that with Spad.
Thanks for the reference!
Does it work ok with MSFS? Are you using it?

Yes, it works with every sun, it works even with no sim running. It’s a stand alone application that just stimulates Force Trim using FFB. You can assign any button as Trim Release and it uses hat to beep trim. You can adjust more forces like damping for example. It has more functions too, and on HPG discord one user uploaded modified version that uses reduced frequency of cyclic displacement when holding hat beep trim, because default one was pretty fast.

Edit:
And yes, I have been using it for years.

Actually, your post made me think, if Spad:next can read L:vars from MSFS and it supports FFB, then in theory it maybe would be possible for FFB joysticks to be moved by Autopilot like in real thing in HPG H-145 and H-160 (there is one joystick manufacturer that already implemented that feature in its gear, but the software that is used doesn’t support any hardware except for one made by that manufacturer)

@anon4683901 found your post and used your Idea, beacuse SimFFB seems not to work with non FFB Joysticks (@N46MajiAho if it works, maybe you can tell me how, iam getting only the message: “NO FFB Joystick Found”).

Basic Situation:

I want to Fly Helos like the R44 or the H125 with a similar way you can fly the H145 without a FFB Stick. So i dont have to hold the Stick all day, or trim it the whole time.

So i created 3 Local Variables:

OWN_Elevator_save
OWN_Aileron_save
OWN_FT

(Elevator and Aileron only for easier understating)

I maped one Button throug Spad.Next as “ForceTrim” Button. Here i added this 5 Actions for a press:

  1. Set OWN_Aileron_save with this Expression: (([LOCAL:JOY_0X40980XBEA8_X_AXIS] * (32768/100) - 16384) * (-1)) + [PROFILE:OWN_Aileron_save]
  2. SET OWN_Elevator_save with this Expression: (( [LOCAL:JOY_0X40980XBEA8_Y_AXIS] * (32768/100) - 16384) * (-1)) + [PROFILE:OWN_Elevator_save]
  3. SET OWN_FT to Value 1
  4. Add Delay of 500ms
  5. SET OWN-FT to Value 0

Explanation:
(LOCAL:JOY_0X40980XBEA8_Y_AXIS and [LOCAL:JOY_0X40980XBEA8_X_AXIS] needs to be changed to your specific axis on your Joystick)

  1. and 2. to save the current Stick Position
  2. till 5. to set the OWN_FT to 1 to disable the Stick Input to allow the user to get the stick back to center within the added delay

The two axises i mapped as follow:

X-Axis:
Trigger: Value Change
Condition: OWN_FT = 0
TargetData: SIMCONNECT:AILERON_SET
Expression: (([LOCAL:JOY_0X40980XBEA8_X_AXIS] * (32768/100) - 16384) * (-1)) + [PROFILE:OWN_Aileron_save]

X-Axis:
Trigger: Value Change
Condition: OWN_FT = 0
TargetData: SIMCONNECT:ELEVATOR_SET
Expression: (( [LOCAL:JOY_0X40980XBEA8_Y_AXIS] * (32768/100) - 16384) * (-1)) + [PROFILE:OWN_Elevator_save]

With this settings it takes your Joystick Input (0 → 100) to -16384 → 16384 units and add the saved stick position, as long as OWN_FT = 0.

IF OWN_FT = 1 your Stick input is not send to the sim. Which allows you to get your Stick back to the center.

Last but not least you need to bind a “Trim Reset” on a seconde button:

Trigger: Press
Actions:
OWN_Aileron_save set to value: 0
OWN_Elevator_save set to value: 0
SIMCONNECT:ELEVATOR_SET set to value: 0
SIMCONNECT:AILERON_SET set to value: 0
(optional to reset also the “normal” trim) SIMCONNECT:ROTOR_TRIM_RESET set Sim Event

With that you can bring back you stick in the sim to the center.

Hopes that will help anybody on the search for the same Problem .

Greetings

7 Likes

if you can make a video tutorial please.

When iam back at home this evening i will check if i can take a video. Never did that :slight_smile:
But iam not sure if i can do it this evening.

Thanks!
I would really appreciate it if you could show us step by step how you do it. looks very good but i’m confused. :smiley:

Hello Luis,
if I understand your idea correctly it is going to work similar to DCS’s sollution and HPG’s H145 and H160 modules. It’s a clever way to emulate Force Trim function for joystick without FFB. To be honest I had no idea MSFS doesn’t support it natively that way, so it’s great that you figured it out!
As for SimFFB it is only meant to be used with FFB joystick, because it’s sole function is to control Force Feedback forces. It has no influence on the simulator itself, only on the hardware part.
Edit: one more thing, you might want to think about having some value that would let you set some time interval (for example 2 seconds) that would freeze your joystick input when you let go of the Trim Release button. That way you can return your joystick to the center within 2 seconds without that displacement influencing the aircraft (unless you already had that implemented, I am sorry, I am not that well versed in those variables that you posted)
Edit2: After reading your post again I can see you already have that idea included, so ignore my suggestion, you figured it out yourself here

" 1. till 5. to set the OWN_FT to 1 to disable the Stick Input to allow the user to get the stick back to center within the added delay"

Happy flying!

1 Like

I just posted a simple idea mainly to serve as inspiration for those that are better than me.

I think what Wassergeist8980 did is the right way to do this with Spad, thank you so much for posting it! It will let you have a force trim simulation with any regular joystick, push button move etc.

I wouldn’t have considered the 500ms delay to release the stick, that was brilliant.

If you make the video only about 10 crazy guys will enjoy it but it will mean the world for them and for me so thanks again!

3 Likes

Hi guys,

i made the video :slight_smile: Because it got a little bit longer (approx. 20 Minutes) i uploaded it to Youtube. And there it is now processed.

Since it’s my first YouTube video and YouTube doesn’t make it that easy to upload longer videos with links, it will take a while before I can link it here. (Validate your Account, Validate that you are a real person …)

It’s currently 11:50 pm here, I hope I can link it here tomorrow morning UTC.

1 Like

It worked faster than i expected. Here is the Video:

First of all this my first youtube Video i made, so please give me some feedback :slight_smile: Also i hope you all can understand everything. English is not my mother tongue.

And sorry for beeing louder in last part of the video. I dont know what happend there.

Hope it helps some of you guys.

5 Likes

Hi @Wassergeist8980 Marc! Thanks for the great video on this. By chance have you uploaded this to Spad? I can do it myself but would love to start with the snippets directly! Either way - very nice and clear!

This isn’t working for me in the Cowan R66. When I press the button, I get no reset of trim, seems to hold direction and attitude a bit, and then when I move joystick at all I get immediate upward right jerk. Not stable during flight - often engaging will force a dive.

Re-looked at my bindings and everything looks correct. It’s jumpy, unstable and very awkward right now - but I really want this to work!

2 Likes

Hi,

sorry no i dont uploaded it.

Never did that till now. I will try it, and post here when i did it here. But iam not sure when i will be back to my pc.

I dont have the R66, but i have the H125 from Cowan Sim, i will recheck it with the H125.

Maybe try it with this:

https://de.flightsim.to/file/45703/robinson-r44-raven-ii-helicopter-40th-anniversary-edition

i used this to make the video.

Please also check your raw Inputs of your axis. Is it 0 to 100?

Greetings

Following the video by Wassergeist8980 is easy, as it is very detailed.
I have this now in the CH47 and it is a game-changer in how to fly the heli. It just stays in trim and you can adjust as you need re-trim, etc. All with a simple joystick.

1 Like

I missed the 0 to 100. Thanks!! Much better.

1 Like

Excellent video, thanks, I’ll be giving it a go tomorrow.

1 Like