Wing42 Boeing 247D FSUIPC throttle binds

Now that I was finally able to get the engines started, I dug into solving the problem of getting the throttles bound. The Boeing 247 implementation uses LVARS for throttle control, so binding via FSUIPC isn’t completely straightforward. What is required is to select FSUIPC offsets to bind the LVARs to and then bind the throttle axes to those offsets. Since the throttle axis ranges over a signed 16-bit value, a scalar is applied to change the range from 0-100, which will fit easily in an unsigned byte. Additionally, you must enable WASM via Add-ons->WASM->Enable. You may need to restart FSUIPC for this to take effect. If you don’t have that option in your menu, be sure to download the latest version of FSUIPC (7.3.2, released March 20, 2022).

Anyway, here are the FSUIPC7.ini settings to bind the throttles to a two-axis controller:

[Profile.Boeing 247D]
1=Boeing 247D United Air Lines (1941)

[LvarOffsets.Boeing 247D]
1=L:ENG THROTTLE 1=UB0xA000
2=L:ENG THROTTLE 2=UB0xA001

[Axes.Boeing 247D]

3=BX,256,F,x0100A000,0,0,0,*0.0030518,+50 -{ FSUIPC: offset byte set, offset A000 }-
4=BY,256,F,x0100A001,0,0,0,*0.0030518,+50 -{ FSUIPC: offset byte set, offset A001 }-

A couple of notes:

  • This assumes a separate profile for the 247. Mine is called “Boeing 247D,” but any name can be used.
  • Under the axes settings I just included the throttle binds, so don’t wipe out your other existing axes when copying and pasting.
  • I used offsets 0xA000 and 0xA001 (scaled down to byte values). If these offsets are already in use for other reasons, choose new ones.
  • To bind to a single throttle axis, just assign both LVARS to a single FSUIPC offset and then bind the throttle to that offset.
2 Likes

Thanks, this has been helpful to map the throttle. Is the same possible for Propellor and Mixture controls?I tried adding more LVarOffsets as per the LVars but they don’t change the controls.

Yes, it should be possible. If it isn’t working, double check that you have allocated enough space for the LVAR value that you are trying to map. Assuming you have, note that offsets have to have to be aligned to match the size; i.e. an offset for a UD (four byte unsigned double) needs to be divisible by four such as x0100A000, x0100A004, x0100A008, etc. The other thing you can do is enable logging in FSUIPC_WASM.ini to see if that gives you any useful information (see page 49 of the “FSUIPC for Advanced Users” guide.

Just a suggestion: This can be much easier achieved with Easycontrols for MSFS (witten by me) and available on flightsim.to.

You can run this next to stuff like FSUIP, it just needs the FSUIPC wasm module in the community folder.

To be honest, I never got into the FSUIPC offset stuff, I found it too complex :wink:

1 Like

Thanks, yes it was a number of errors and typos on my side. Sorted out and all working!

Thank you very much! @geoffda

I just tried using LVAR to bind the propeller and mixture and all of them works for this amazing aircraft!

Hi, I use FSUIPC for my controls but haven’t a clue about how LVARs work etc. Any ‘Dummies Guides’ available to get this working for the 247D please?

Hi,

For a better understanding of the basic of LVAR, you need to refer to the advanced user guide of FSUIPC

1 Like

Yeah, I had a look at that, couldn’t make head nor tail of it! :rofl:

Don’t know if it help you much, but here is my setting:

[Profile.Boeing]
1=Boeing 247D Lufthansa
2=

[LvarOffsets.Boeing]
0=L:ENG THROTTLE 1=UB0xA000
1=L:ENG THROTTLE 2=UB0xA001
2=L:ENG MIXTURE 1=UB0xA002
3=L:ENG MIXTURE 2=UB0xA003
4=L:ENG PROPELLER 1=UBA004
5=L:ENG PROPELLER 2=UBA005
6=L:LEVER PARKING BRAKE=UBA006
7=L:LEVER OIL SHUTTER 1=UBA007
8=L:LEVER OIL SHUTTER 2=UBA008
10=L:ELEVATOR TRIM=SBA009
11=L:RUDDER TRIM=SBA00a
12=L:AILERON TRIM=SBA00b
13=L:LEVER CARBURETOR HEAT 1=UBA00c
14=L:LEVER CARBURETOR HEAT 2=UBA00d


[WAPI]
EnableWAPI=Yes

[Axes.Boeing]
RangeRepeatRate=10
0=DX,128,F,65763,0,0,0	-{ TO SIM: AXIS_AILERONS_SET }-
1=DY,128,F,65762,0,0,0	-{ TO SIM: AXIS_ELEVATOR_SET }-
2=DS,128,F,x0100A000,0,x0100A001,0,*0.003052,+50	-{ FSUIPC: offset byte set, offset A000, offset byte set, offset A001 }-
3=CX,R0,F,65720,0,0,0	-{ TO SIM: BRAKES_LEFT }-
4=CY,R0,F,65721,0,0,0	-{ TO SIM: BRAKES_RIGHT }-
5=CR,R0,F,65764,0,0,0	-{ TO SIM: AXIS_RUDDER_SET }-

[Monitor]
Display=4
Monitor0=0,C1003,1,0

[Buttons.Boeing]
0=RD,6,Cx1100A002,x00640001 	-{offset ubyte increment, offset A002 (Incr=1, Limit=100)}-
1=RD,7,Cx2100A002,x00000001 	-{offset ubyte decrement, offset A002 (Decr=1, Limit=0)}-
2=RD,6,Cx1100A003,x00640001 	-{offset ubyte increment, offset A003 (Incr=1, Limit=100)}-
3=RD,7,Cx2100A003,x00000001 	-{offset ubyte decrement, offset A003 (Decr=1, Limit=0)}-
4=RD,8,Cx1100A004,x00640001 	-{offset ubyte increment, offset A004 (Incr=1, Limit=100)}-
5=RD,9,Cx2100A004,x00000001 	-{offset ubyte decrement, offset A004 (Decr=1, Limit=0)}-
6=RD,8,Cx1100A005,x00640001 	-{offset ubyte increment, offset A005 (Incr=1, Limit=100)}-
7=RD,9,Cx2100A005,x00000001 	-{offset ubyte decrement, offset A005 (Decr=1, Limit=0)}-
8=PD,3,Cx0D00A006,x64 	-{offset byte togglebits, offset A006}-
1 Like

Thanks Donald, that will help me as I’ll have another read of the advanced user guide and look at your numbers to understand what it all maens.

If you have question I can maybe answer them. I have spend last Saturday to figure out many things, so my experience is fresh :slight_smile:

1 Like

Hello! I am tryingt to understand all of this, and I have no idea. I am trying to move both oil shutters with one axis and both carburetor heats with other axis… and I see the varialbles you are using (UBA007 and UBA008) for oil, and (UBA00c and UBA00c) for carburetor.
I go to fsiupc choose my axis and then send to FSUIPC offset.
Then I don’t know what to choose from both menus, and the varialbles here copied cannot be inserted as only accept an “x” at the beggining.
I have tried to see how to apply an axis offset in internet with no luck. Can someone help here please?

Thanks!

Ok… I managed to make it work, but I have some questions.

  1. I made the offset axis and set both offsets as (xA007 and xA008) for oil, and (xA00c and xA00d) for carburator.

  2. once set the lines appear in the fsuipc7.ini so I can modify them and add the (*0.003052,+50) parameter to (I suppose) scale the motion:
    [Axes.Boeing 247D]
    RangeRepeatRate=10
    0=DU,256,F,x0100A007,0,x0100A008,0,*0.003052,+50 -{ FSUIPC: offset byte set, offset A007, offset byte set, offset A008 }-
    1=DV,256,F,x0100A00C,0,x0100A00D,0,*0.003052,+50 -{ FSUIPC: offset byte set, offset A00C, offset byte set, offset A00D }-

  3. I add this lines above the point2:
    [LvarOffsets.Boeing 247D]
    1=L:LEVER OIL SHUTTER 1=UBA007
    2=L:LEVER OIL SHUTTER 2=UBA008
    3=L:LEVER CARBURETOR HEAT 1=UBA00c
    4=L:LEVER CARBURETOR HEAT 2=UBA00d

save and reload fsuipc and works.

here comes the questions:

  1. how I invert the Oil shutters. The carburator is right, but If I want to invert the oil shutters axis how I can do it. I suppose I have to add something in the *0.003052,+50 parameter but I changed to -50 without any good result.

  2. How I can find the variable directions (lvars) to make any other axis of any other aircraft?
    For example I would like to asiggn a button for neutral landing gear but I don’t know the variable to assign it.

Thanks!

1 Like

sorry to reply… now only 1 question left. To invert it just copy this code:
*-0.003052,+50

so only left question 2. and if possible… how to make this visually in the fsuipc menus without modifying the fsuipc.ini. Thanks!

1 Like

Hi, great to hear that you solve all your question, expect the last one, alone :slight_smile: If I understand you right you ask what LVARS OTHER planes use?
You get the list of the ACTIVE plane with FSUIPC in the WASM Menu, with ‘List Lvars’
As I understand LVARS are defined by the plane developer, so there is no list of all possibilities.

In the Boing 247D manual there is a description of the landing gear problem.

Landing gear
The landing gear lever of MSFS is a simple Boolean variable, meaning that it only has two settings:
“UP” and “DOWN”. Furthermore, most controllers that have a dedicated gear switch also utilize a
simple ON/OFF solution.

If there is a LVAR for the landing gear lever available you could try to mapping the Neutral position of the 247D landing gear. Assign a button which set the LVAR of the axis to 50. Currently I don’t know if there is a axis LVAR for the landing gear lever is available.

1 Like

The x is the symbol for values in hexadecimal notation.
All addresses of the LVARS, like A000 are in hexadecimal notation.
So A000 is the same as xA000.

UBA007 isn’t the name it is a description of the type and address of the mapping.
In this case UB means unsigned Byte and A007 is the address (eq. xA007)
Description is in FSUIPC7 advanced user guide on site 46 at the bottom.

Is there the slightest possibility to find a step by step guide somewhere?
I have spent countless hours reading the guide and trying to make sense of what I am reading here but I just can’t get it to work.
When I am in the WASM screen and do SET LVAR, I can move the lever I want to move, but even then it moves too fast and skips. Of course I dont see how to set this in the offset screen in FSUIPC in the Axes screen.
I also tried to directly enter the text as in Donald4 post above but the levers dont move…

HEEEELLLPPP please :frowning:

1 Like

I got it working. Found a couple other posts about offsets in FSUIPC and finally made sense.

This is a two (or three) step process…

  1. Set your FSUIPC controls as below for each axis (4 in my case). Note the axis you are setting (BZ in this case)
    image

  2. Set the offset A000 for Throttle 1, A001 for Throttle 2, A004 for Prop 1 and A005 for Prop 2

After this is set, you should see your axis moving

  1. Open FSUIPC.INI and for each line add the fine tune posted above.
    The lines should be like this. Note I didnt have to offset my mixtures
2 Likes

That look’s useful, I’ll have a look at that :slight_smile:

Thanks very much. :+1:

1 Like