Skip to content
View in the app

A better way to browse. Learn more.

The AVSIM Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Auto Throttles. How I Coded them.

Featured Replies

Auto Throttles that realy move present a real challnge for us do-it-yourself sim builders. Sure you could buy an auto throttle set, however I haven't seen any, that move anyway. and the cost is way out of my range. So I have built my own and they follow the sim when auto is engaged. I won't go into a lot of detail in this post about the construction, I'll do a post on this with Photos, rather show how FS COMM made it happen with ease. using a servo and two analog pots for each throttle. a 4" gear which the leaver is attached to and a 1" gear attached to the servo and pot's. This allows the leaver travel to give the pot's full throw. pot 1 is the throttle analog and pot 2 is the feedback pot. here is the EPL code to control the servo. throttle1 senser is pot 2 of a ganged or stereo pot. the analog pot that sends the value to FSxxx is pot 1. I did this so the analog pot 1 could be disabled so it will not fight FSxxx when in auto throttle mode. So with auto disarmed you move the throttle leaver foward or back, the servo moves and the two pots move sending value to FSxxx. With auto armed, I dissconect the analog pot 1, and FSxxx sends the leaver position to FS Comm, I scale it down to a workable value then send this to EPIC and compare the value of the senser pot to the FSxxx value.//****** AUTO THROTTLE PIEGON HOLES******************************* ph PH13(13) // get throttle1 senser position { byte B0; byte B1; word W1; Auto_Throttle1_Senser = PH13.W1; jump(Auto1); }; ph PH14(14) // get throttle1 FS value { byte B0; byte B1; word W1; Auto_Throttle1_FS_Value = PH14.W1; jump (Auto1); }; ph PH15(15) // get throttle2 senser position { byte B0; byte B1; word W1; Auto_Throttle2_Senser = PH15.W1; jump(Auto2); }; ph PH16(16) // get throttle2 FS value { byte B0; byte B1; word W1; Auto_Throttle2_FS_Value = PH16.W1; jump (Auto2); }; :Auto1 { if (f_Auto_Throttle_Arm) { if (Auto_Throttle1_Senser < Auto_Throttle1_FS_Value) {setpoint(0,2,0b00001000); //turn on power to servo. clockwise clearpoint(0,2,0b00000100);} // turn off direction relay. { if (Auto_Throttle1_Senser > Auto_Throttle1_FS_Value) {setpoint(0,2,0b00000100); // turn on direction relay setpoint(0,2,0b00001000);} // turn on power to servo else { if (Auto_Throttle1_Senser == Auto_Throttle1_FS_Value ) {clearpoint(0,2,0b00001100);} turn off both relays } } } } :Auto2 { if (f_Auto_Throttle_Arm) { if (Auto_Throttle2_Senser < Auto_Throttle2_FS_Value){setpoint(0,2,0b00010000); // turn on power to servo. clockwise clearpoint(0,2,0b00001000);} //turn off direction relay. { if (Auto_Throttle2_Senser > Auto_Throttle2_FS_Value){setpoint(0,2,0b00001000); // turn on direction relay counterclock setpoint(0,2,0b00010000);} // turn on power to relay else { if (Auto_Throttle2_Senser == Auto_Throttle2_FS_Value ) {clearpoint(0,2,0b00110000);} turn off both relays. } } } }//**********************END*******************************************AS you can see it is very simple. the hard part aside from the construction, was getting the scaling correct. the Auto_Throttle1_FS_Value is a read of offset 088C this is direct from FSUIPC thru FS COMM. and is scaled. Auto_Throttle1_Senser is the scaled value of analog feedback pot from FS COMM. the setpoint/clearpoint simply turn the the power relay on and off. the second set of set/clear turn on the direction relay ( + or - ) to the servo. now about the scaling. in FS COMM you can scale the analog ch several ways. the fact that if you used the raw values you would be using number in the range of -16383 to 16383, big numbers. tring to == those numbers between the analog senser pot and the value sent from the sim, well lets just say you can't. but if you scale to say 100 now you can. If you want, load FS Comm then load the attched file "Ron.cfv" this is the varible config file for FS Comm. then look at the control sub set. there you will see how I copyed and scaled the analog and FS values then sent them via pigeon holes to Epic. Note that I have NOT disabled the analog pot 1 as yet. Also note the pigeon hole numbers are what ever number I want to give them. Not limited by EPICOINFO. With FS Comm you don't ues EPICINFO but talk direct to FSUIPC. Now I know the above code could be writen better but I am still in the design and testing mode. I hope the above makes some sense. You pretty much have to load up FS Comm and my .cfv file to understand all this. Last a little on the servo. I played around with all kinds of motors,steper,geared you name it. I even found motorized pots, they were cool, however they did not have the power to move the leaver. The servo I ended up with are off the shelf hobby servos. $13.00 each. I'am sure you can find them cheaper but I was in a hurry. The gearing in the servo allows you to move it and gives you a nice feel or drag as you push the throttles to full power. I reduced the power to 3 vdc so the servo move rather slow, about the speed you see in the FSxxx. Well thats all for now. Next the construction of the throttles. Ron.

Ron,One question, if I'm using FS-Comm can I remove EpicInfo from my system ?I wonder if this is why i cannot get FS-Comm to work correctly !Julian.:-hmmm

Hi Julian: Yes you should just move the EPICINFO.DLL from your FSxxx folder.I forget now where it used to be FS, modules?. Do keep EPICIO in your system folder. The best part of FS Comm is I don't need to be home with the epic hardware to write and test my FS Comm code. Another thing is I do use the FSUIPC advanced offset docs as well as FSinterrogator program to find the offsets to read and write to. Ron.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.