• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

FSXA Prop Feathering

Confirming Roy's observation, (A:PROP FEATHERED:index,bool) doesn't change to "1", even when the prop is at its feathered position.


Drew up some custom prop lever and feathering code which seems to work well.

Exemplary prop lever for the virtual cockpit (FSX syntax, requires animation header for the Modeldef):
Code:
<PartInfo>
<Name>Prop_Lever_L</Name>
<AnimLength>100</AnimLength>
<Animation>
<Parameter>
<Code>(L:Prop Lever L, number)</Code>
<Lag>400</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>Hand</Cursor>
<TooltipText>Left Propeller Lever: %((L:Prop Lever R, number))%!3.2f! Beta: %((A:PROP BETA:1, radians) rddg)%!2.1f! deg</TooltipText>
<MouseFlags>LeftSingle+LeftDrag+LeftRelease+WheelUp+WheelDown</MouseFlags>
<CallbackCode>
(M:Event) 'LeftSingle' scmp 0 ==
if{ (M:Y) (&gt;L:MOUSEPOSY,number) (M:X) (&gt;L:MOUSEPOSX,number) }

(M:Event) 'LeftRelease' scmp 0 ==
if{ (M:Y) (&gt;L:MOUSEPOSY,number) (M:X) (&gt;L:MOUSEPOSX,number) }

(M:Event) 'LeftDrag' scmp 0 ==
if{ (M:Y) (L:MOUSEPOSY,number) - 3 + 0 &lt;
  (M:X) (L:MOUSEPOSX,number) - 3 + 0 &lt; or
  if{ (L:Prop Lever L, number) (M:Y) (L:MOUSEPOSY,number) - (M:X) (L:MOUSEPOSX,number) - + abs 0.25 * + 100 min (&gt;L:Prop Lever L, number) (M:Y) (&gt;L:MOUSEPOSY,number) (M:X) (&gt;L:MOUSEPOSX,number) }

  (M:Y) (L:MOUSEPOSY,number) - 3 - 0 &gt;
  (M:X) (L:MOUSEPOSX,number) - 3 - 0 &gt; or
  if{ (L:Prop Lever L, number) (M:Y) (L:MOUSEPOSY,number) - (M:X) (L:MOUSEPOSX,number) - + abs 0.25 * - 0 max (&gt;L:Prop Lever L, number) (M:Y) (&gt;L:MOUSEPOSY,number) (M:X) (&gt;L:MOUSEPOSX,number) } }

(M:Event) 'WheelUp' scmp 0 ==
if{ (L:Prop Lever L, number) ++ 100 min (&gt;L:Prop Lever L, number) } }

(M:Event) 'WheelDown' scmp 0 ==
if{ (L:Prop Lever L, number) -- 0 max (&gt;L:Prop Lever L, number) } }
</CallbackCode>
</MouseRect>
</PartInfo>

Exemplary feather button for the virtual cockpit (FSX syntax, requires animation header for the Modeldef):

Code:
<PartInfo>
<Name>Feather_Button_L</Name>
<AnimLength>50</AnimLength>
<Animation>
<Parameter>
<Code>(L:Feather Button L, bool) 50 *</Code>
<Lag>400</Lag>
</Parameter>
</Animation>
<MouseRect>
<Cursor>Hand</Cursor>
<TooltipText>Feather Left Propeller%((L:Prop Feathered L, bool))%{if} (Feathered!)</TooltipText>
<MouseFlags>LeftSingle</MouseFlags>
<CallbackCode>
(L:Feather Button L, bool) ! (>L:Feather Button L, bool)
</CallbackCode>
</MouseRect>
</PartInfo>

The rest of the feathering related code is executed in a 2D gauge, because I'm a lazy sod and save-compile-copy-paste-overwrite-reload is way too much work (save-reload is much faster).

FS9 syntax becasue why not. The value for the feathered prop beta is specified in the aircraft.cfg, in this case 89.5 degrees. Since this is an R1830 (see post #15 by Roy), the feather button will pop back out once the prop is feathered.

The event traps are necessary to avoid interference via keyboard when the prop is feathered.
Not sure whether use of external throttle quadrants with prop controls will pop the prop out of feather.

Code:
<Gauge Name="Bjoern_K_is_the_smartest_person_on_the_planet" Version="2.0">
<Element>
<Select>
<Value>
(L:Feather Button L, bool)
if{ 0 (>K:PROP_PITCH1_SET) (>K:PROP_PITCH1_DECR) }

(A:PROP BETA:1, radians) rddg 89.5 ==
if{ 1 (>L:Prop Feathered L, bool) }
els{ (L:Prop Feathered L, bool) if{ 0 (>L:Prop Feathered L, bool) } }

(L:Prop Feathered L, bool)
(L:Feather Button L, bool) and
if{ 0 (>L:Feather Button L, bool) }

(L:Prop Feathered L, bool) !
(L:Feather Button L, bool) ! and
if{ (L:Prop Lever L, number) 163.83 * (>K:PROP_PITCH1_SET) }
</Value>
</Select>
</Element>
<Keys>
<!-- CTRL+F1/2/3/4 event traps -->
<On Event="PROP_PITCH_LO">
(L:Prop Feathered L, bool) ! (L:Feather Button L, bool) ! and if{ 100 (>L:Prop Lever L, number) } els{ 0 (>K:PROP_PITCH1_SET) (>K:PROP_PITCH1_DECR) }
</On>
<On Event="PROP_PITCH_INCR">
(L:Prop Feathered L, bool) ! (L:Feather Button L, bool) ! and if{ (L:Prop Lever L, number) 10 + 100 min (>L:Prop Lever L, number) } els{ 0 (>K:PROP_PITCH1_SET) (>K:PROP_PITCH1_DECR) }
</On>
<On Event="PROP_PITCH_INCR_SMALL">
(L:Prop Feathered L, bool) ! (L:Feather Button L, bool) ! and if{ (L:Prop Lever L, number) ++ 100 min (>L:Prop Lever L, number) } els{ 0 (>K:PROP_PITCH1_SET) (>K:PROP_PITCH1_DECR) }
</On>
<On Event="PROP_PITCH_DECR_SMALL">
(L:Prop Feathered L, bool) ! (L:Feather Button L, bool) ! and if{ (L:Prop Lever L, number) -- 0 max (>L:Prop Lever L, number) } els{ 0 (>K:PROP_PITCH1_SET) (>K:PROP_PITCH1_DECR) }
</On>
<On Event="PROP_PITCH_DECR">
(L:Prop Feathered L, bool) ! (L:Feather Button L, bool) ! and if{ (L:Prop Lever L, number) 10 - 0 max (>L:Prop Lever L, number) } els{ 0 (>K:PROP_PITCH1_SET) (>K:PROP_PITCH1_DECR) }
</On>
<On Event="PROP_PITCH_HI">
(L:Prop Feathered L, bool) ! (L:Feather Button L, bool) ! and if{ 0 (>L:Prop Lever L, number) } els{ 0 (>K:PROP_PITCH1_SET) (>K:PROP_PITCH1_DECR) }
</On>
<!-- Single engine event traps -->
<On Event="PROP_PITCH1_LO">
(L:Prop Feathered L, bool) ! (L:Feather Button L, bool) ! and if{ 100 (>L:Prop Lever L, number) } els{ 0 (>K:PROP_PITCH1_SET) (>K:PROP_PITCH1_DECR) }
</On>
<On Event="PROP_PITCH1_INCR">
(L:Prop Feathered L, bool) ! (L:Feather Button L, bool) ! and if{ (L:Prop Lever L, number) 10 + 100 min (>L:Prop Lever L, number) } els{ 0 (>K:PROP_PITCH1_SET) (>K:PROP_PITCH1_DECR) }
</On>
<On Event="PROP_PITCH1_INCR_SMALL">
(L:Prop Feathered L, bool) ! (L:Feather Button L, bool) ! and if{ (L:Prop Lever L, number) ++ 100 min (>L:Prop Lever L, number) } els{ 0 (>K:PROP_PITCH1_SET) (>K:PROP_PITCH1_DECR) }
</On>
<On Event="PROP_PITCH1_DECR_SMALL">
(L:Prop Feathered L, bool) ! (L:Feather Button L, bool) ! and if{ (L:Prop Lever L, number) -- 0 max (>L:Prop Lever L, number) } els{ 0 (>K:PROP_PITCH1_SET) (>K:PROP_PITCH1_DECR) }
</On>
<On Event="PROP_PITCH1_DECR">
(L:Prop Feathered L, bool) ! (L:Feather Button L, bool) ! and if{ (L:Prop Lever L, number) 10 - 0 max (>L:Prop Lever L, number) } els{  }
</On>
<On Event="PROP_PITCH1_HI">
(L:Prop Feathered L, bool) ! (L:Feather Button L, bool) ! and if{ 0 (>L:Prop Lever L, number) } els{ 0 (>K:PROP_PITCH1_SET) (>K:PROP_PITCH1_DECR) }
</On>
</Keys>
</Gauge>

(Rinse and repeat for more engines.)

Note: No trap for PROP_PITCH1_DECR because it would lead to fatal command flooding when using the feathering button.

Note 2: You will still have to close the throttle or cut the mixture to stop the engine.
 
I now have the RAF Pilots Notes for the DAKOTA I & III with two Twin Wasp R-1830-92 engines. The words about feathering are identical to those in the Fortress III pilots Notes (B-17G)
Out of interest I also got the Piper Apache notes and its engines are feathered by moving the RPM control fully aft through the low RPM detent into the feathering position.

I had forgotten about the cockpit heater in that plane which runs off a nice little stove that used 91/96 octane aviation gas. I suppose it was quite safe but I was not keen on using it.
Perhaps I'll give your gauge a try in the mighty Fortress.
Roy
 
Out of interest I also got the Piper Apache notes and its engines are feathered by moving the RPM control fully aft through the low RPM detent into the feathering position.

That's exactly how it works in the default Baron, the minor difference being that the lever's animations do not account for the detent and feathering position.

I had forgotten about the cockpit heater in that plane which runs off a nice little stove that used 91/96 octane aviation gas. I suppose it was quite safe but I was not keen on using it.

According to Ernie Gann, a co-pilot who could properly operate the stove in a DC-2 was worth his weight in gold.
 
Back
Top