Jump to content
The simFlight Network Forums

Fenix A320 - working independent reverse thrust control for both engines using FSUIPC


Recommended Posts

Hi fellow pilots,

I just would like to share with you my solution for working and independent reverse thrust control for Fenix A320 for MSFS using FSUIPC. I have been strugling with this for a long time. I couldn't find any solution that I would like. Migrating the settings that worked in MSFS config did not work using FSUIPC and even that (using sort of official steps from Fenix) was not separate control for each engine reverse thrust. And MSFS cannot switch profiles separately and it drove me crazy to have to switch controls profile in MSFS just for this single bird, when I have almost everything else configured using FSUIPC (call me old school if you want :))

But, back to the solution. I spend some time hunting events and axes to find out, that the Fenix does not respond to them. So, Lvars should do it, right? And they do. Bt which ones? After some other time, I found the right ones:


I guess I don't have to specify which one drives which throttle lever 🙂 Each of them, can have floating point value in the range 0.0 to 5.0, where each integer corresponds to one detent position of the lever:

  • 0.0 – Full reverse thrust
  • 1.0 – Idle reverse thrust
  • 2.0 – Idle thrust
  • 3.0 – CLB detent
  • 4.0 – Flex MCT
  • 5.0 – TOGA detent

so, 0.5 for example equals half reverse thrust…

I don’t have “axis” control for reverse thrust, I am using the Bravo throttle quadrant and here is how I set it up. Actually, some prerequisites first. I created the following macro to work with the mentiond Lvars using FSUIPC:



Than, there are two butons on the throttle axis with Bravo throttle quadrant (if using the airline handle). One is the button that is triggered when pulling the lever all the way down to the detent. To continue with concrete example, for me, this button is number 25 on K joystick (K is letter for my Bravo Throttle Quadrant).


What I've setup using FSUIPC, is this:

  • Set the value of A_FC_THROTTLE_LEFT_INPUT to 1.0 when the buttons is pressed – thus IDLE REVERSE when I pull the left TQ lever to the down detent.

  • Set the value of A_FC_THROTTLE_LEFT_INPUT to 2.0 when the buttons is relased – thus IDLE thrust when I move the left TQ lever outside the down detent.

You can see that on the following picture from FSUIPC:


The second buttons is the one that is activated when flipping the small lever on the “Bravo airliner lever extension”. I am sure you know what I mean. This one is little more complex, as it should change from idle reverse thrust to max reverse thrust, but I only wanted it to do so when the lever is physically in the down detent, so I cannot engage reverse thrust accidentally when I don’t want to. Ok, it is not that much of issue, if you ever tried compound button definitions within FSUIPC – you have to go to the ini file for that. The button which triggers these actions for me is number 9 (for left TQ lever) and this is how it is programmed:

332=CP(+K,25)K,9,CM4:4,0 	-{Macro FNXA320: L:A_FC_THROTTLE_LEFT_INPUT dec}-  
334=CU(+K,25)K,9,CM4:3,1 	-{Macro FNXA320: L:A_FC_THROTTLE_LEFT_INPUT inc}-  

The above are lines from my FenixA320.ini profile file. They are compound button definitions. The first one says to decrease the value of A_FC_THROTTLE_LEFT_INPUT when button 9 and 25 are both pressed. Thus, when the left TQ lever is in down detent (button 25 is pressed) and when buttons for reverse thrust on left TQ (button 9) is pressed. The value will be decremented to the max value of 0 – the last parameter. Because in previous setup the value of A_FC_THROTTLE_LEFT_INPUT was set to 1.0 (by press of button 25), its value will actually decrement just by 1 from 1 to 0. But that means a command from idle reverse thrust to max reverse thrust. The change will not happen immediately, but within a couple of seconds (like about 2 literally :)). You could probably use the macro command to set the value instead of decrement, but I tested it first like that and it worked, so…

The other line is the other way around for decreasing from maximum reverse thrust to idle reverse thrust. That is,when button 9 is released while button 25 is still being pressed. What happens is that the value of A_FC_THROTTLE_LEFT_INPUT will be incremented to the max of 1.0 – from non-idle reverse thrust to idle reverse thrust. Even here we could probably use just “set” value.

If you move the lever from down detent with button 9 pressed – so full reverse thrust still commanded, the action for release of button 25 will still set the value A_FC_THROTTLE_LEFT_INPUT to 2.0 and bringing the throttle back to IDLE thrust.

The reverse thrust for the right engine is set the same way. You can setup the first button in FSUIPC GUI, but the second one will need to be done in the ini file. Here’s mine:

333=CP(+K,26)K,10,CM4:6,0 	-{Macro FNXA320: L:A_FC_THROTTLE_RIGHT_INPUT dec}-
335=CU(+K,26)K,10,CM4:5,1 	-{Macro FNXA320: L:A_FC_THROTTLE_RIGHT_INPUT inc}- 

I attached the macro file and my FenixA320.ini profile file. It is not copy and paste setup, you need to know a little bit of FSUIPC background and here is not the place to explain the syntax of the lines. But, you most likely just need to change the joystick letter/number and line numbers in the lines provided above and it should work. So, it is not so much of a rocket science then 🙂 The  FenixA320.ini profile is more likely for inspiration. Maybe that someone may find something helfull for him/her. It contains more stuff than just what I described, some are historical copied from other of my aircraft profiles. 🤷‍♂️ 

Hopy you will find it usefull and maybe someone will even write a script to map the Lvars to axis input for really smooth reverse thrust control. And maybe even forward thrust, but I left mine mapped to THROTTLE1_AXIS_SET_EX1 and THROTTLE2_AXIS_SET_EX1 events.


  • Like 1
Link to comment
Share on other sites

Thanks for this detailed and well explained contribution!

17 minutes ago, Mouseviator said:

maybe someone will even write a script to map the Lvars to axis input for really smooth reverse thrust control

The best way to do this would be using a preset (calculator code). The calc. code of the preset would have to scale the axis value range (usually -16384 to +16383) to the lvar value range before setting the lvar. You can assign an axis directly to a preset - as long as the preset contains a parameter placeholder ($Param or the @ symbol).



Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.