MobiFlight Community Support

Welcome to the forum for MobiFlight! Feel free to reach out to the community in case you have questions, issues or just want to share great ideas or details about your latest home cockpit project.

You like MobiFlight? Donate via PayPal and support the MobiFlight development. Thanks! 

Go to page 1Go to page 012Go to page 2Go to page 2
Avatar
bennnozgurum
Posts: 39
Hi friends,

Once we tried very hard with pizman and we managed the auto reset function with multiple conditions and using some free offsets. However that method was not stable after my experiences. I see some people still asking about it. Now I will share my another easy solution with details. If you find it usefull, you can use it.

First, let me tell you how it works.

When we start a flight our servos in ready position, so we can make the starter switch GRD. When the switch come to OFF position in PMDG. Our servo moves and make our switch also OFF position. However this servo stays in that position. You know in a flight we wont make it GRD again unless the engine stops. If the engine stops, servo reset itself and now we can make it GRD. When it gets OFF automatically, our servo moves again make our switch OFF.

As you see when you shutdown your engines, servos reset again and ready for another flight to make your switch GRD to OFF position.

Now I will show you in detail. How I made this. I will show only for one engine you can duplicate it yourself for the second engine.


VERY IMPORTANT!!! In my actual design when servo "1" it resets, when it is "0" it moves and make GRD to OFF. Be carefull if your design vice versa, you should be careful in compare sections.!!!

1) Look at the picture 1, these are the configs that we need.



2) In the first config you see "ENG1 N2 offset no servo (condition)". This is the config I used for condition. Please there should be nothing in compare, display and precondition sections.



3) In the second config, you see "Fake Offset servo1". This is the config which is used to make our servos to ready position (in my design "1"). In FSUIPC Tab: Just leave it as original 0X0000 offset Int 1. Transform it "1". In Compare Tab: Do nothing. In Display tab: Choose your servo and you can see my settings 90 is enough for me. It can change accrording to your mechanism. In Precondition Tab: this is important, choose "ENG1 N2 offset no servo (condition)" and <(smaller) 30 click apply.



4) In the third config, you see "SWITCH servo1". This is the config which is used to make our servo GRD to OFF position. (In my design "0"). In FSUIPC Tab, Write 0x64FC offset which is for PMDG Left eng starter switch positions. In Compare Tab: Apply comparison. If current value is = "0", set it to "1", else set it to "0". This is for servo not move in OFF CONT or FLT positions. In display Tab: choose your servo and adjust it. In Precondition Tab: Choose "ENG1 N2 offset no servo (condition)" >(bigger) 30.



And Bingoo... :rolleyes: :)
If you do all these, your servo will make its move when the switch comes to OFF position in PMDG. It also resets when you shut your engines...

IMPORTANT NOTE!!!
When you design your engine starter switch mechanism, adjust your servo movement (Max rotation value in Display Tab, which is 90 in my design) well so you can not make it "GRD" mistakenly when the engine(s) is/are running. As pizman82 said, you can break the Mechanic or Motor. You can see my easy design in the picture. (Servo's needle stays in the position that I can not make it "GRD" mistakenly unless the engines stops.)




I hope it is clear... Thank you very much pizman for his endless helps and contribution to this tutorial, and Sebastian for the great software in which nothing is impossible...

May be you know I am building my 757 and this is just for friends who need it.

Have a nice flight to all...

(Editted and updated because of pictures and some spelling and my friend pizman's advices... :))


PIZMAN's advice to do it with 2 configs with placeholder system.

Last Note: That logic all can be done more easy with a Placeholder if you like:
Just to show this in that example:
1. First Config is created 1:1 same way.

2. Second config is not needed and can be deleted

3. Third Config Read same Offset (64FC) Int 1 Byte.
In Placeholder section we checmark the first line.... Choose the first Config "ENG1 N2 offset no servo (condition)" as target und use symbol "a"
In transform field we use this formula: " if(a<30,1,if($=0,1,0)) "
This means.... Aslong "a" (Value N2) is less then 30 set servo to 1 ..... Else ( aslong N2 is faster then 30) check the Starting switch..... If Position is 0 ( GRD) also set servo to 1 ..... ELSE ( so if starting switch is NOT 0 and is in 1-OFF, 2-CONT or 3- FLT position then set Servo to 0

You seewith placeholder you need just 2 Configs and only 30% of entrys and no preconditions...... And result is the same with less work!
[Last edited by bennnozgurum, 2020-05-20 11:20]
2020-05-02 16:36
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3417
Supporter
Thank You my friend !

Whatever we meanwhile recommend to use a solonoid..... This guide is still working and lots of people use Servos here.
Nice Work !
Good Luck !
2020-05-04 19:11
Avatar
bennnozgurum
Posts: 39
Everytime there is an other way, my friend...

This is (I think) a good and stable solution. I wanted to share with the community.

Thank you very much my friend... :) :) :) :thumbup:
2020-05-06 23:56
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3417
Supporter
Sure.
Building with solonoid is a nice thing if you got the right machines to build the holding case.... Also a solonoid for that costs pretty much more like a simple servo.
Our Solution you finaly build is already a working and stable system that can be build with lower skills and with basic machines like a handsaw and a driller.
I just wrote that, cause maybe other users who read that i meanwhile recommend solonoids are confused if i now say again servo is the best solution.
Good Luck !
2020-05-07 00:43
Avatar
pierclav
From: Bangkok VTBD/VTBS
Posts: 30
Supporter
I gave up on solenoids because they are a bit short on torque. I concocted my solution with off-the-shelf components and my 3D printer. It required sacrificing a rotary switch but I had a bunch of various switch parts in my junk box. The front part of the switch is used to mount the assembly to the panel. It is coupled to a 3D printed back part. 4 bolts connect the 3D printed parts. I originally used SG90 servos that did the job fine but I replaced them with metal geared MG90's which have a bit more torque and should last much longer.



2020-05-07 02:43
Avatar
pierclav
From: Bangkok VTBD/VTBS
Posts: 30
Supporter
Working link for photos:

https://imgur.com/a/pZMyXFr
2020-05-07 02:45
Avatar
bennnozgurum
Posts: 39
Thank you very much pierclav,

If you share your 3d .stl file, this will be great contribution to our community, too. :thumbup: :)
2020-05-08 15:58
Avatar
tomcel
Posts: 5
Thanks so much for this tutorial. I have only one problem: the servo in the end position is still growling. What should I edit where?
2020-05-17 11:50
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3417
Supporter
Hi Guys

Shame on me.... I recommned this guide without reading it.... cause i thought its 1:1 the same i build with "bennozgutum" long time ago....
After todays reply i read it and see .....
iconbennnozgurum:


However that method was not stable after my experiences..... Now I will share my another easy solution with details.



So now i hope it´s OK for Özgür if i say the system is a little "unpracticable". It work for him so it´s fine but i will finaly add some recomendations to it.

1. The first Config ""ENG1 N2 offset no servo (condition)" is fine ! I woukd build it same way

2. The Second Config "ENG1 N2 servo1" is unlogical or better unpracticable !
You say there: <<<<Apply comparison and if it is smaller than 30, set it to "1" else set it to "1">>>> This means If <30 then 1 else 1 .... in easy words "Always 1"
For this we not need to read a 8 Byte Float here.... We can read a FAKE Offset cause all we like to do is build a Config that campared always "1"
So read here Offset 0000 ( Automatic choosen if you do no entry yourself) . Also let Typ INt and Size 1 Byte as preselected.
Then Enable Transform and write 1 in the line..... This means that config is transformed to "1" at all time.
SURE the Precondition and Display( Servo) settings must be done again like in Özgürs Config.

3. The Third Config Is technical also already Ok..... whatever i would not use interpolation here
You say ..... <<<<Apply interpolation "0=1", "1=0", "2=0", "3=0".>>>> Means in easy words If value is "0" then set to "1" everytime else set to "0"
Same can be done with Compare : IF Value = 0 THEN "1" ELSE "0"
OR with transform line if($=0,1,0)
And sure also here the Precondition and Display settings are correct and needed as Özgür says.


NOTE: That System get one Disadvantage! The Servo is active in the "OFF" Position at all time after Engine Startup.
Özgür is right.... After a Engine shutdown the N2 decrease and servo resets ( Failure or manual shoutdown after landing) BUT Aslong engine is running the Servo "block" the Switch left from OFF Position!
If you did a mistake and turn the switch while flight to GND ( instead of CONT e.g. ) by mistake you will move the active servo against its direction and broke the Mechanic or Motor.
Thats why in "old" logic i try to build a system where servo is all time in "standby" position to get sure it could never "block".


Last Note: That logic all can be done more easy with a Placeholder if you like:
Just to show this in that example:
1. First Config is created 1:1 same way.

2. Second config is not needed and can be deleted

3. Third Config Read same Offset (64FC) Int 1 Byte.
In Placeholder section we checmark the first line.... Choose the first Config "ENG1 N2 offset no servo (condition)" as target und use symbol "a"
In transform field we use this formula: " if(a<30,1,if($=0,1,0)) "
This means.... Aslong "a" (Value N2) is less then 30 set servo to 1 ..... Else ( aslong N2 is faster then 30) check the Starting switch..... If Position is 0 ( GRD) also set servo to 1 ..... ELSE ( so if starting switch is NOT 0 and is in 1-OFF, 2-CONT or 3- FLT position then set Servo to 0

You seewith placeholder you need just 2 Configs and only 30% of entrys and no preconditions...... And result is the same with less work!
[Last edited by pizman82, 2020-05-17 18:12]
Good Luck !
2020-05-17 17:35
Avatar
bennnozgurum
Posts: 39
Hello my friend Pizman.

First of all thank you very much for your contribution for the tutorial.

HOWEVER!!!

1) " 1. The first Config ""ENG1 N2 offset no servo (condition)" is fine ! I woukd build it same way"

You said there is no problem with this. I want to add sth. You can ask why I choose corrected offset instead of normal. The reason is: It shows more correct values in PMDG aircraft, so it is more reliable.

2) "2. The Second Config "ENG1 N2 servo1" is unlogical or better unpracticable !
You say there: <<<<Apply comparison and if it is smaller than 30, set it to "1" else set it to "1">>>> This means If <30 then 1 else 1 .... in easy words "Always 1"
For this we not need to read a 8 Byte Float here.... We can read a FAKE Offset cause all we like to do is build a Config that campared always "1"
So read here Offset 0000 ( Automatic choosen if you do no entry yourself) . Also let Typ INt and Size 1 Byte as preselected.
Then Enable Transform and write 1 in the line..... This means that config is transformed to "1" at all time.
SURE the Precondition and Display( Servo) settings must be done again like in Özgürs Config."

You said here it is always 1. Why did I do this?
The reason is: According to my experience, if I use fake offset for this config which is always "1". And assign the servo to this config. When N2 goes beyond %30. Servo stays at 1. However, for a second it does an instant movement. I don't know why servo does this actually but I think It does this because when mobi looks at offset 0000 which is originally 0 but with transform"1", over 30 it looks at 64fc. During this instant change servo does a nonsense behaviour. Maybe, it is not a problem for you but it is a problem to hear this nonsense servo sound for a milisecond. :) If you try, u will understand me better my friend. Thus, I didn't use fake offset and use "ENG1 N2 servo1" 0x2018 offset and my configs as I stated. Sorry but I don't agree with you when you stated "...unlogical or better unpracticable !". If you try my config and comparison Servo doesn't do that nonsense instant action which is more stable for me.

3)"3. The Third Config Is technical also already Ok..... whatever i would not use interpolation here
You say ..... <<<<Apply interpolation "0=1", "1=0", "2=0", "3=0".>>>> Means in easy words If value is "0" then set to "1" everytime else set to "0"
Same can be done with Compare : IF Value = 0 THEN "1" ELSE "0"
OR with transform line if($=0,1,0)
And sure also here the Precondition and Display settings are correct and needed as Özgür says."

The reason is: First I did this via comparison like u offer but somehow it didn't worked stable and I tried this way.
(EDIT: I changed my setup from interpolation to comparison like u said the nonsense servo movement occured again. I changed to interpolation nothing happened and it is more stable)


4) "NOTE: That System get one Disadvantage! The Servo is active in the "OFF" Position at all time after Engine Startup.
Özgür is right.... After a Engine shutdown the N2 decrease and servo resets ( Failure or manual shoutdown after landing) BUT Aslong engine is running the Servo "block" the Switch left from OFF Position!
If you did a mistake and turn the switch while flight to GND ( instead of CONT e.g. ) by mistake you will move the active servo against its direction and broke the Mechanic or Motor.
Thats why in "old" logic i try to build a system where servo is all time in "standby" position to get sure it could never "block"."

Sorry my friend but again I don't agree with you. In my design u can not make it GRD mistakenly. WHY? The servo moves and make the switch OFF However it stays where u can not make it GRD again. IT stops you if you want to turn it left to GRD again. You will say if you use mouse click what happens? Again it is not a problem. Servo goes to reset position it doesn't breake any mechanism like u said. Because the real switch in OFF position and it doesn't touch servo mechanism when it is OFF position. Look at the picture it shows finished servo action and make it GRD is impossible unless u shut the engines and servo resets...



:D :D :D However there are still chances to break the servo if you push with your full power when the motors running and you deliberately want to make it GRD. :D :D :D

5) I didn't use my system with placeholder and it can be another option as you said.

Finally...

I think you send your post with your experience and I bet you din't set your servos or PMDG and TRY. :) As an old friend, I advice you TRY and SEE the results. ;)

I only wanted to help the community, if you do not like my way, you can delete my post my friend. :) However I used it in this way without any problem and also helped some friends I never met in real life but from this community. Do not misunderstand me, I know you want to help and you are the best and the most helpful person I have ever met. Just to be friend from the past I think you could ask me first before this post: Why did you do like this while there are other easy ways ??? But do not forget may be the nonsense behaviors of servo that I mention may happen only in my PC and sim. Your way may work without any problem in your PC/sim. As I said before, the configs in the tutorial I wrote was stable and used for a year without any problem.

See you my friend... :) :) :)
[Last edited by bennnozgurum, 2020-05-18 18:35]
2020-05-18 17:07
Avatar
bennnozgurum
Posts: 39
icontomcel:

Thanks so much for this tutorial. I have only one problem: the servo in the end position is still growling. What should I edit where?



Try to reduce the servo max rotation value which is %90 percent in my config. If it is 100 it growls in my setup also. This is why I make it 90 you can change this value according to your designs.
2020-05-18 17:40
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3417
Supporter
Hi Özgür my friend !

At first.... I hope you not missunderstand..... Thats why i wrote " i hope its ok for you if i recommend my ideas" ......
You know my main policy.... Every System is perfect aslong it finaly work for the user.... In theroy you can bild a lot of things in 100+ different ways.
So i like your system and i pretty sure not want to delete this posting..... I´m happy you did this work and support us a nice guide.

Now the crazy fact.... My recommendations just try to simpilfy the config..... Cause you know a lot of people ask here in forum " why i have dealys in my system" and if i check there configs i see lots of difficult unpracticable stuff and after delete this "trash" the systems work more stable.

Funny is.... For you it work inverted.
Technical a config with Offset 0000--- 1 BYTE INT ---- Transform "1" do exactly the same like your config via read the 8Byte Float and use compare....
With only one little difference.....
My config will need less resources in Mobiflight and work faster ( milliseconds) .
Ironic... Exactly this little speedup ( that is normaly a benefit) now is a problem cause here the Servo will move for some milliseconds until the other config come back to it.
In easy words... You slowdown the system by using a 8 Byte Config.... But this slowing occure in finaly a perfect running of the Servo.

I hope you accept my apollogy..... For me your Guide and config is just virtual. i not build this stuff and just see the programming part of it. And here in theroy as i said my config idea will do exactly the same like yours.... But sure it will be faster. I´m sorry but i could not figure out that it will be finaly to fast and struggle the servo !
Good Luck !
2020-05-18 19:00
Avatar
bennnozgurum
Posts: 39
Dear pizman82,

There is no need to apologize my friend. :) I also stated thank you for your contribution. "First of all thank you very much for your contribution for the tutorial." I didn't understand the nonsense behavior so why I tried these ways. Also, there is no need to worry about breaking the Mechanic or Motor. If you see the picture to make it GRD when the eng running is impossible. If I have time, I will try all the things you add from fresh start. If it works like u said, I can update the tutorial, my friend.

Easier is better all the time... :) ;)

Thx again, my friend... :) :) :)
2020-05-18 19:17
Avatar
bennnozgurum
Posts: 39
Dear pizman82,

I tried your advices with a fresh start and it worked perfect just like mine and decided to update the tutorial according to your advices. I updated the tutorial and changed it accordingly. If you still see there is a mistake or better way, tell me my friend and edit the first post. I know not everybody reads all the answer posts :)... I also added your Last note to my tutorial.

Thank you my friend...
2020-05-20 11:19
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3417
Supporter
Thanks again for that incredible work.
Updating the guide is much more usefull .... As you said most users not read the whole topic.
Wondering why it now work fine.... Whatever not think about it. It work and that the fact !

I looking forward to build this myself..... Ordering my first panels last week and wait for dilivery. Whatever not the Overhead at the moment. I start with FMC and EFIS/MCP. But if all work as i expect then the overhead ( inlcuding your starting Switch) will be the next big step ! I will try this myself and the i choose for solonoid or servo wichever i like more.

Hoşçakal arkadaşım
Good Luck !
2020-05-20 19:26
Go to page 1Go to page 012Go to page 2Go to page 2