C310 Redux Prop Feather

Chris.Laughery
Posts: 12
Joined: Sun Jun 24, 2018 11:23 am
Location: Texas
C310 Redux Prop Feather

Post by Chris.Laughery » Mon Jun 25, 2018 4:59 pm

Mods, I completed a support request (I think) but I do not see my query posted here.

Please remove if this is a duplicate...

I have a question regarding prop feathering on the C310 using a CH Products throttle quadrant.

I know that you can feather the props by right-clicking the lower third of the prop lever knob, but I am wondering if there is some way to move the lever into the feather range using hardware?

Each axis on the CH Products throttle quadrant has a detent at the aft portion of travel. Using the most-recent registered version of FSUIPC, I was able to calibrate the quadrant to go into: Reverse (for turboprops), feather, and idle cutoff for most default and payware P3D v4.2 aircraft.

Unfortunately the C310 prop levers do not go into the feather range when I move the CH Products prop levers aft of the detent.

Using FSUIPC, I tried assigning a repeating "prop decr" key command to the hardware prop lever range aft of the detent, but that had no effect on the C310 props.

Is it possible to move the C310 props into the feather range using hardware, if so how may this be accomplished?

Thanks!
Chris
Last edited by Chris.Laughery on Mon Jun 25, 2018 7:26 pm, edited 1 time in total.

N4GIX
Posts: 1023
Joined: Mon Sep 06, 2010 3:47 pm
Re: C310 Redux Prop Feather

Post by N4GIX » Mon Jun 25, 2018 5:24 pm

There are three events that occur when right-clicking to enable the feathered condition. One is a control variable for the prop lever's movement, the second sets the 'visual 3D prop', and the last toggles the sim's 'feather switch'. Note also that the next right-click will reset the first and second variables back to FALSE (0), and toggle the sim's feather switch again. The following code section is for the left prop:

Code: Select all

      <CallbackCode>
        (M:Event) 'RightSingle' scmp 0 == if{
        (L:Prop1_Feathered,bool) !
        if{ 1 (>L:Prop1_Feathered,bool) -1 (>K:PROP_PITCH1_SET) (>K:TOGGLE_FEATHER_SWITCH_1) }
        els{ 0 (>L:Prop1_Feathered,bool) 0 (>K:PROP_PITCH1_SET) (>K:TOGGLE_FEATHER_SWITCH_1) }
        }
      </CallbackCode>
Similarly, the right prop is:

Code: Select all

      <CallbackCode>
        (M:Event) 'RightSingle' scmp 0 == if{
        (L:Prop2_Feathered,bool) !
        if{ 1 (>L:Prop2_Feathered,bool) -1 (>K:PROP_PITCH2_SET) (>K:TOGGLE_FEATHER_SWITCH_2) }
        els{ 0 (>L:Prop2_Feathered,bool) 0 (>K:PROP_PITCH2_SET) (>K:TOGGLE_FEATHER_SWITCH_2) }
        }
      </CallbackCode>
      
You could probably achieve the desired result using FSUIPC's built in Lua scripting. I've just recently replaced my second CH Pro Yoke with a shiny new Saitek Cessna Yoke and throttle quad, but haven't had the time to experiment with the detent switches on the quad's levers myself.

Chris.Laughery
Posts: 12
Joined: Sun Jun 24, 2018 11:23 am
Location: Texas
Re: C310 Redux Prop Feather

Post by Chris.Laughery » Mon Jun 25, 2018 6:08 pm

Great! This gives me some direction and offers a starting point for writing a custom script.

I'll post here if I have success via FSUIPC scripting so others may benefit too.

Likewise, if you have success, I'd like to hear about it.

Thanks Again,
--Chris

Chris.Laughery
Posts: 12
Joined: Sun Jun 24, 2018 11:23 am
Location: Texas
Re: C310 Redux Prop Feather

Post by Chris.Laughery » Mon Jun 25, 2018 10:43 pm

I managed to stack two ranges for my prop axis (aft of the detent) to be sent via FSUIPC for PROP_PITCH1_SET and TOGGLE_FEATHER_SWITCH by simply working though the GUI.

As you may have guessed, this does not trigger the 'Prop1_Feathered' animation (L:Prop1_Feathered).

I've not worked with FSUIPC's built in Lua scripting before, but I am a professional C# developer so I should be able to figure it out.

Before I go down that route, can you confirm that the 'L' variables, like your 'Prop1_Feathered' implementation, can be controlled using Lua script in FSUIPC?

Thanks Again,
Chris

N4GIX
Posts: 1023
Joined: Mon Sep 06, 2010 3:47 pm
Re: C310 Redux Prop Feather

Post by N4GIX » Tue Jun 26, 2018 1:31 am

Yes. All variables are accessible via Lua scripting. ;)

Just to be clear, the ! is a "not" token (i.e., FALSE)

Chris.Laughery
Posts: 12
Joined: Sun Jun 24, 2018 11:23 am
Location: Texas
Re: C310 Redux Prop Feather

Post by Chris.Laughery » Wed Jun 27, 2018 10:46 pm

I managed to create two simple Lua scripts for feathering and un-feathering the C310 props using a throttle quadrant.

Using FSUIPC:

Once the prop levers are calibrated and a narrow axis trigger range has been created aft of the lever detents, I call the appropriate script when the prop levers enter or exit the feather range:

Here's the Feather script which lives in the "FeatherProps.lua" file:

Code: Select all

ipc.log("ipcPARAM: "..ipcPARAM)
	
	EngineNumber = ipcPARAM

	if EngineNumber == 1 then
		
		ipc.log("EngineNumber is 1")

		--Write the new Feathered value to our variable
		ipc.writeLvar("Prop1_Feathered", 1)

		--Set the prop pitch
            	ipc.control(65923, -1)

		--Toggle Feather Switch
        	ipc.control(66537)

		ipc.log("Feather Prop 1 Done")
	end

	if EngineNumber == 2 then
		
                ipc.log("EngineNumber is 2")
		
                --Write the new Feathered value to our variable
		ipc.writeLvar("Prop2_Feathered", 1)

		--Set the prop pitch
            	ipc.control(65924, -1)

		--Toggle Feather Switch
        	ipc.control(66538)

		ipc.log("Feather Prop 2 Done")
	end	
Using the axis assignment tab in FSUIPC, I specify a "1" parameter for the left engine, and a "2" parameter for the right engine.

The Un-feathering script lives in a file called "UnFeather.lua" and it simply executes the reciprocal values on exit of the range.

There's likely a better way using events that call functions with parameters, but this approach works (for my limited Lua knowledge).

Interestingly, I found the CH Throttle quadrant to require "finesse." If you slam the levers the code may or may not work. Operating the levers in a smooth fashion works every time. I suspect the axis has some signal noise which could possibly be filtered, but I wouldn't go slamming the levers IRL, so I won't in the sim.

Thanks for the direction and ideas Milviz!

Good stuff.

--Chris
Last edited by Chris.Laughery on Fri Jul 06, 2018 4:41 pm, edited 3 times in total.

N4GIX
Posts: 1023
Joined: Mon Sep 06, 2010 3:47 pm
Re: C310 Redux Prop Feather

Post by N4GIX » Thu Jun 28, 2018 4:09 pm

Outstanding, Chris! :ugeek:

Millzy
Posts: 24
Joined: Mon Feb 23, 2015 12:57 am
Re: C310 Redux Prop Feather

Post by Millzy » Mon Oct 01, 2018 3:59 am

Hello Everyone,

Has this been tried on the Saitek Throttles in the feather position?



Thanks,

John

Chris.Laughery
Posts: 12
Joined: Sun Jun 24, 2018 11:23 am
Location: Texas
Re: C310 Redux Prop Feather

Post by Chris.Laughery » Mon Oct 01, 2018 5:08 am

Hi John:

If you are using FSUIPC to calibrate the throttles, then the actual throttle device does not matter.

You simply need to set the feather range using the FSUIPC calibration utility.

The guide posted here http://www.uk2000scenery.com/fsuipc-guide-v1.pdf specifically illustrates how to set up the ranges on the CH Products quadrant, but the principles would be the same with the Saitek quadrants.

One important thing to consider; does the Saitek throttle have built in range detents?

If you're interested in trying this, I can post the un-feather script here as well - After looking at the code I posted originally, it occurred to me that the un-feather script might not be as obvious as I had presumed...

--Chris

Millzy
Posts: 24
Joined: Mon Feb 23, 2015 12:57 am
Re: C310 Redux Prop Feather

Post by Millzy » Mon Oct 01, 2018 5:35 am

Hello Chris,

Thank you for the help with setting up my Saitek Throttles for piston engine light twins.

I have and use that procedure you have provided for Turbo Props with Beta settings and jets with reverse thrust (great write up from John Cook). What I'm looking at here for the C-310 is to pull the Prop Lever back to the detent (Saitek Lever Button) position. At that time the button would call up the script to feather the prop. When the button is released then the unfeather script would need to be actioned.

I hope this helps to determine what it is that I'm trying to accomplish and hopefully you can help me out with this.



Cheers,

John

Chris.Laughery
Posts: 12
Joined: Sun Jun 24, 2018 11:23 am
Location: Texas
Re: C310 Redux Prop Feather

Post by Chris.Laughery » Mon Oct 01, 2018 5:50 am

John:

I do not own Saitek throttles, but if the feather ranges are actually buttons, then I think it would be easy to simply call my Feather and Un-Feather scripts using the FSUIPC button assignments -- as opposed to the lever ranges that trigger the calls used in the procedure I posted above.

Are you familiar with Lua script and how it can be called in FSUIPC?

One word of caution, the code I've provided here works only for the Milviz C310.

You should not need any custom code to feather the props on other light twins (default aircraft and other third party devs).

With that being said, I have seen no other aircraft that models prop feathering as accurately as Milviz (maybe A2A?).

My script is specific to the Milviz 310 since I'm calling LVARS that are unique to that aircraft.

I am away from my simulator PC at the moment, but can post the un-feather script tomorrow morning.

You can email me privately at chris at aquaorb dot net if you like, we may be able to get you set up with a quick phone call.

What time zone are you in?

--Chris

Millzy
Posts: 24
Joined: Mon Feb 23, 2015 12:57 am
Re: C310 Redux Prop Feather

Post by Millzy » Mon Oct 01, 2018 6:55 am

Hello Chris,

I live in the CMT (-6) timezone, Canada.

I'm learning about the Lua as I read tonight and I agree that it could be accomplished via buttons. Yes, I'm aware that this is custom code that works only with the Milviz Cessna 310. With other piston engine light twins I set the button to repeat the "Prop Decrease" command and that feathers the prop. I agree that prop feathering in the Milviz model is excellent compared to other models such as the Baron 58.

I have made a Lua File in Notepad++ and copied it to the "Modules" directory in my P3D v4.3 installation. I copied your code but FSUIPC does not detect the file, "C_310_Final Release_V101".



John

Millzy
Posts: 24
Joined: Mon Feb 23, 2015 12:57 am
Re: C310 Redux Prop Feather

Post by Millzy » Tue Oct 02, 2018 4:03 am

Hello Chris,

I have managed to get the Lua file to be recognized. I believe that the name was to long. Shortened to "Test_C310".

Now I just need to get the feather command to action when the Saitek Button is pressed.



Thanks,

John

Millzy
Posts: 24
Joined: Mon Feb 23, 2015 12:57 am
Re: C310 Redux Prop Feather

Post by Millzy » Tue Oct 02, 2018 7:11 am

Hello Chris,

I have now built a working Lua file with "Notepad ++" for feathering the props the C-310R with a Saitek Throttle Quadrant. Below is a copy of the code that I wrote for the Lua that others may feel free to use.

--------------------------------------------
-- Milviz Cessna 310 Redux
--------------------------------------------
--------------------------------------------
-- Version
--------------------------------------------
-- 1.01
--------------------------------------------
-- Parameters by Number
--------------------------------------------
--1 Prop 1 Feather
--2 Prop 2 Feather
--------------------------------------------
-- Variables
--------------------------------------------
Prop1_Feathered = "L:Prop1_Feathered"
Prop2_Feathered = "L:Prop2_Feathered"
--------------------------------------------
-- Scripts
--------------------------------------------
-- Propellor 1 Feathered
if ipcPARAM == 1 then
ipc.writeLvar(Prop1_Feathered, 1)
end
-- Propellor 2 Feathered
if ipcPARAM == 2 then
ipc.writeLvar(Prop2_Feathered, 1)
end

Again thank you for the help on getting this figured out.



Cheers,

John

Chris.Laughery
Posts: 12
Joined: Sun Jun 24, 2018 11:23 am
Location: Texas
Re: C310 Redux Prop Feather

Post by Chris.Laughery » Tue Oct 02, 2018 7:17 am

John:

I'm glad you got it sorted.

I noticed that you did not set the pitch, but only triggered the animation.

I think you have to set the pitch to get the proper flight characteristics.

IIRC, the LVAR only does the animation, nothing more. Maybe Milviz can chime in on this?

I recommend you add the following lines to your feather code:

Code: Select all

--Set the prop pitch
ipc.control(65923, -1)

--Toggle Feather Switch
ipc.control(66537)
Since you were able to implement the feather code, you likely don't need an explanation of the un-feather code, but I'll post it so others may benefit.

Let me know if you have any questions.

Code: Select all

--UnFeather C310 prop when hardware prop lever moves forward of detent

	--ipc.log("unFeatherProp() called")
	ipc.log("ipcPARAM: "..ipcPARAM)
	
	EngineNumber = ipcPARAM

	if EngineNumber == 1 then
		ipc.log("EngineNumber is 1")

 		--Write the new Feathered value to our variable
		ipc.writeLvar("Prop1_Feathered", 0)

		--Set the prop pitch
            	ipc.control(65923, 0)

		--Toggle Feather Switch
        	ipc.control(66537)

		ipc.log("UnFeather Prop 1 Done")
	end

	if EngineNumber == 2 then
		
		--Write the new Feathered value to our variable
		ipc.writeLvar("Prop2_Feathered", 0)

		--Set the prop pitch
            	ipc.control(65924, 0)

		--Toggle Feather Switch
        	ipc.control(66538)

		ipc.log("UnFeather Prop 2 Done")
	end



Locked

Return to “310 Redux Support Forum”