<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.flightgear.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Servo</id>
	<title>FlightGear wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.flightgear.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Servo"/>
	<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/Special:Contributions/Servo"/>
	<updated>2026-07-29T16:30:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User:Servo&amp;diff=146699</id>
		<title>User:Servo</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User:Servo&amp;diff=146699"/>
		<updated>2026-07-29T07:46:50Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The wiki refresh has been completed. {{progressbar|100}} {{done}}&lt;br /&gt;
&lt;br /&gt;
The wiki backup is at https://gitlab.com/flyer02/flightgear-wiki-backup/-/tree/main and will be periodically updated.&lt;br /&gt;
&lt;br /&gt;
For how I clear old content on this wiki, see [[User:Celesta/removing old contents]]. For why I do this, see [[User:Servo/AI Agent]].&lt;br /&gt;
&lt;br /&gt;
[[File:A320 copilot pic.png|700px]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=File:A320_copilot_pic.png&amp;diff=146698</id>
		<title>File:A320 copilot pic.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=File:A320_copilot_pic.png&amp;diff=146698"/>
		<updated>2026-07-29T07:45:38Z</updated>

		<summary type="html">&lt;p&gt;Servo: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=A320 copilot}}&lt;br /&gt;
|date=2026-07-29&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:Servo|Servo]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Areas_populated_with_osm2city_scenery&amp;diff=146697</id>
		<title>Areas populated with osm2city scenery</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Areas_populated_with_osm2city_scenery&amp;diff=146697"/>
		<updated>2026-07-29T06:30:58Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:SOTM-Mar19.jpg|thumb|OSM2City output for Madrid, Spain. See [[:Category:Screenshots_of_scenery_with_OSM2City_output|here]] for more screenshots.]]&lt;br /&gt;
&lt;br /&gt;
This article contains a list of areas having [[osm2city.py|osm2city]] generated scenery available for ''manual'' download. The [http://osm2city.readthedocs.io/en/latest/using.html OSM2City manual] describes how to use the sceneries in FlightGear.  &lt;br /&gt;
&lt;br /&gt;
== Available areas ==&lt;br /&gt;
Announcements of new sceneries should be made in https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32254.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Download link !! Area !! In [[TerraSync]] !! Min. FG version !! Created Date !! Created By !! [[Project3000]]&amp;lt;ref&amp;gt;Meaning that the scenery was generated respecting objects placed by Project3000, but does not contain it&amp;lt;/ref&amp;gt; !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| [https://cdn.merspieler.tk/osm2city/current/ '''World''']&lt;br /&gt;
| '''Entire World''' || '''Yes'''&lt;br /&gt;
| '''2020.1''' || '''Completed''' || '''Nia''' ||  || Downloaded ''automatically'' in FlightGear 2020.3.7 and later. Requires at least FlightGear 2020.1. See [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=35581 forum thread]. See [[OSM2City_1st_Worldbuild |1st world-build of OSM2City]] for info and tips on performance.&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/file/d/1z8706fqh2G5sCSRwkEAHZAo2UbnduyRd Iceland] || The island of Iceland || || 2017.2 and 2020.1 || 2020-05-11 || vanosten || &lt;br /&gt;
||&lt;br /&gt;
To see buildings :&amp;lt;/br&amp;gt; &lt;br /&gt;
Flightgear 2020.1 and later: Rename &amp;lt;code&amp;gt;Buildings_list&amp;lt;/code&amp;gt; folder to &amp;lt;code&amp;gt;Buildings&amp;lt;/code&amp;gt; for faster buildings&amp;lt;/br&amp;gt;&lt;br /&gt;
Flightgear 2017.2 and later: Rename &amp;lt;code&amp;gt;Buildings_mesh&amp;lt;/code&amp;gt; folder to &amp;lt;code&amp;gt;Buildings&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/open?id=1kRormoV7na2WzPRrpMjQsBB8XhCpP_Cw Falkland] || All islands || || 2017.2 and 2020.1 || 2019-12-26 || vanosten || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/open?id=196_ZMkIejQPGSyyKVArJc8mJseqAVekZ Kansas] || 37-39N, 96-98W || || 2017.2 and 2020.1 || 2019-12-24 || vanosten || || Using OWBB_GENERATE_BUILDINGS=True, i.e. placing buildings in plausible places even though no OSM information available.&lt;br /&gt;
|-&lt;br /&gt;
| [https://github.com/legoboyvdlp/London-OSM-fg-CustomScenery London]&lt;br /&gt;
| London area || || 2017.2 || 2019-10-04|| legoboyvdlp || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://sites.google.com/site/ecuadorflightgear/ Ecuador]&lt;br /&gt;
| Entire country|| || 2017.2 || 2019-07-28 || || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32254&lt;br /&gt;
|-&lt;br /&gt;
| [https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=34582 Sweden]&lt;br /&gt;
| Entire country|| || 2017.2? || 2019-07-28 || || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=34582&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [https://my.pcloud.com/publink/show?code=XZwMCT7ZAImYyISByDJsWLHR4BWgjBFwJum7 Hawaii]&lt;br /&gt;
| Hawaii main islands [-160.25_18.875_-154.75_22.25] || || 2017.2 || 2018-11-18 || vanosten || March 2017 ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://my.pcloud.com/publink/show?code=XZup1T7Z3YpnkdPdHtHq9GFcrFDx0JRP6nqX Holland]&lt;br /&gt;
| Most of North and South Holland plus Flevoland in the Netherlands [4_52_6_53] || || 2017.2 || 2018-11-16 || vanosten || March 2017 || &lt;br /&gt;
|-&lt;br /&gt;
| [https://1drv.ms/u/s!AuIh-169bDZ9tlKlP3GQ1Ez1r64p w060n10]&lt;br /&gt;
| Barbados [bottom=10 left=-60 top=20 right=-50] || || 2017.2 || 2017-11-04 || dutchguy || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://1drv.ms/u/s!AuIh-169bDZ9tlPnC1UGd7CjdgMf w070n10]&lt;br /&gt;
| Eastern Caribbean [bottom=10 left=-70 top=20 right=-60] || || 2017.2 || 2017-11-04 || dutchguy || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://my.pcloud.com/publink/show?code=XZa8Nk7Z5jaeflLeCvS9VpyVWS3k28jKEASV LKPR]&lt;br /&gt;
| Area around LKPR Prague airport [14-14.75 East, 49.875-50.25  North] || || 2017.2 || 2017-10-08 || vanosten || March 2017 || &lt;br /&gt;
|-&lt;br /&gt;
| [https://my.pcloud.com/publink/show?code=XZrMy3Ze3rXYVgAurYFp96YIHMj9X9ptLoy Switzerland]&lt;br /&gt;
| Swiss national boundaries || || 2017.2 || 2017-05-23 || vanosten || March 2017 ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://my.pcloud.com/publink/show?code=XZqjqaZtxBUwA5KJr5CeuqTYzk9Yk9KXbDk KBOS]&lt;br /&gt;
| bottom=59 left=4.5 top=62 right=6 || || 2017.2 || 2017-05-20 || vanosten || March 2017 ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://my.pcloud.com/publink/show?code=XZaSqaZsbS9ltAfHozgY335PnEIE4sPwutV ENBR]&lt;br /&gt;
| bottom=42.125 left=-72 top=42.625 right=-70.5 || || 2017.2 || 2017-05-20 || vanosten || March 2017 ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/file/d/1aR1jF0AbeLkKk21SZc-Tg-0f3-GSg5nc/view?usp=sharing Europe/Spain]&lt;br /&gt;
| || || 2017.2 || || || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32062&amp;amp;start=15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Old and most probably obsolete sceneries ==&lt;br /&gt;
These sceneries are not supported, the links might be broken and they might not work. The Table is kept just for reference.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Download link !! Area !! In [[TerraSync]] !! Forum thread !! Min. FG version !! Created Date !! Created By !! [[Project3000]]&amp;lt;ref&amp;gt;Meaning that the scenery was generated respecting objects placed by Project3000, but does not contain it&amp;lt;/ref&amp;gt; !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| [https://onedrive.live.com/redir?resid=7d366cbd5efb21e2!1642&amp;amp;authkey=!APsD2Zn-Jq3m5OA&amp;amp;ithint=folder%2czip The Netherlands]&lt;br /&gt;
| [[File:EHoutline.png|thumb|150px]] || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://onedrive.live.com/redir?resid=7d366cbd5efb21e2!1645&amp;amp;authkey=!AAx41T78jYrL4KI&amp;amp;ithint=file%2czip Southern UK]&lt;br /&gt;
| [[File:EGOutline.png|thumb|150px]] || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://onedrive.live.com/redir?resid=7d366cbd5efb21e2!1646&amp;amp;authkey=!AFAFUx-rFpUiRPk&amp;amp;ithint=file%2czip Ireland]&lt;br /&gt;
| [[File:EIOutline.png|thumb|150px]] || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://onedrive.live.com/redir?resid=7D366CBD5EFB21E2!1651&amp;amp;authkey=!APsD2Zn-Jq3m5OA&amp;amp;ithint=file%2czip Switzerland]&lt;br /&gt;
| [[File:LSOutline.png|thumb|150px]] || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/open?id=0B2CN49kDuXHgZ3U0LUFnU2ZJREE Phuket]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=30113 || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://dl.dropboxusercontent.com/u/24846517/fg/osm2city/LOWI_OSM_buildings_20140928.tgz LOWI]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=19625 || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/open?id=0B5TeZxXfefn3NUp4NkM2b1hPVDQ African/Canary islands]&lt;br /&gt;
| || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/open?id=0B5TeZxXfefn3Vll5cGVEcndZMTg Europe/Portugal]&lt;br /&gt;
| || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Poland]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Slovakia]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Lithuania]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Latvia]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Estonia]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Bulgaria]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Hungary]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [http://zorba-osm2city.s3-website.eu-central-1.amazonaws.com/ Europe/Romania]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32172 || 2017.1 || || || ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://drive.google.com/open?id=0B5TeZxXfefn3VkViMDlCMXlrQUU Us/California]&lt;br /&gt;
| || || https://forum.flightgear.org/viewtopic.php?f=5&amp;amp;t=32187 || 2017.1 || || || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
Since FlightGear 2020.3.8, the normal way to get OSM2City is ''automatic'' downloads as you fly through [[TerraSync]] with the latest version of FlightGear. OSM2City scenery for the whole world has been generated from the objects in the OSM database - see [[OSM2City_1st_Worldbuild |1st world-build of OSM2City]].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Version !! Compatible FG versions !! Effects !! Choose which objects to show !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| 2020.1 || 2019.2 x-mas and all newer versions || traffic, regionalization || yes || The big change is the possibility to render the majority of buildings with the FG random buildings shader, which results in faster rendering and depending on the region a factor 4-10 reduction in disk size. Your FG will most probably crash immediately if you use such a scenery with an older FG version.&lt;br /&gt;
|-&lt;br /&gt;
| 2017.2 || 2017.2.2 and all newer versions || traffic, regionalization || yes || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Scenery]]&lt;br /&gt;
[[Category:Lists]]&lt;br /&gt;
[[Category:Osm2city]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Fly_a_helicopter&amp;diff=146696</id>
		<title>Howto:Fly a helicopter</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Fly_a_helicopter&amp;diff=146696"/>
		<updated>2026-07-29T06:26:37Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:SOTM-Sept17.jpg|thumb|[[Eurocopter_EC135|Eurocopter EC135]] around &amp;quot;weeping wall&amp;quot; waterfalls at Mount Waialeale on the lush island of Kauai, near PHLI.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Alouette-lll_over_the_Carpathian_Mountains_in_Romania_in_Autumn_(Flightgear_2018.x).jpg|thumb|[[Alouette-III]] has an AI simulation of an (intentionally imperfect) [[Alouette-III#Amelia|human copilot]] that can assist people learning to fly helicopters to take off, hover, and land.]]&lt;br /&gt;
&lt;br /&gt;
[[File:EC_130_on_the_slope_of_a_shield_volcano_in_Hawaii_-_Flightgear_2018.x.jpg|thumb|[[Eurocopter_EC130|Eurocopter EC130]] on the slope of a shield volcano in Hawaii. The EC130 has the most detailed systems of helicopters available through FGAddon in FlightGear.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Truman06.jpg|thumb|[[Eurocopter EC 135]] landing on the [[Howto:Carrier|carrier]] Harry S. Truman which is positioned off the island of O'ahu in Hawaii near Honolulu International Airport (PHNL). You can start on a carrier from the [[Howto:Carrier#From_the_launcher_.28Version_2020.1_and_later.29|launcher]].]]&lt;br /&gt;
&lt;br /&gt;
[[File:EC135_Heer.jpeg|thumb|[[Eurocopter_EC135|Eurocopter EC135]] showing rotor downwash on grass. Individual grass blades react to the local windfield. Enable overlays to show grass (transparency anti-aliasing should be set to MSAA or higher).]]&lt;br /&gt;
&lt;br /&gt;
[[File:Alouette_gallery04.jpg|thumb|[[Alouette-III]] has a winch rope with a soft-body simulation of rope physics. Flightgear has a [[Cargo Towing Addon]] that will allow you attach ropes and move/assemble objects on a range of helicopters.]]&lt;br /&gt;
&lt;br /&gt;
[[File:EC_130_in_Zurich,_Switzerland_in_Autumn_(Flightgear_2018.x).jpg|thumb|[[Eurocopter_EC130|Eurocopter EC130]] over Zurich in Switzerland. OSM2City output with buildings, roads, and other objects such as pylons for regions and entire countries are available for [[Areas_populated_with_osm2city_scenery|separate downloads]].]]&lt;br /&gt;
&lt;br /&gt;
This article describes how to fly a helicopter in FlightGear.&lt;br /&gt;
&lt;br /&gt;
== Preface ==&lt;br /&gt;
In principle everything that applies to real helicopters, applies also to helicopters in [[FlightGear]]. It is important to be familiar with fundamental {{wikipedia|Helicopter flight controls|helicopter flight controls}}. Some details are simplified in FlightGear, in particular the engine handling and some overstresses are not simulated or are without any consequence.&lt;br /&gt;
&lt;br /&gt;
[[File:bo105_cockpit.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Control hardware ===&lt;br /&gt;
&lt;br /&gt;
==== Stick and Pitch control ====&lt;br /&gt;
&lt;br /&gt;
On the hardware side a use of a good [[joystick]] is recommended:A joystick without centering springs is recommended for cyclic control. You can achieve this with a normal joystick by removing or disabling the centring spring(s), or you could use a [[force feedback]] joystick with a disconnected voltage supply. Further, the joystick should have a “thrust controller” (throttle). &lt;br /&gt;
&lt;br /&gt;
==== Tail rotor controls ====&lt;br /&gt;
&lt;br /&gt;
For controlling the tail rotor you should have pedals, or at least a joystick that can twist in in a yawing motion. You may have to turn off auto-coordination, as you need full controls for the tail rotor. This can be done by clicking &amp;quot;Settings&amp;quot;, then clicking the &amp;quot;Show more&amp;quot; button to the right of &amp;quot;General&amp;quot;, and clicking &amp;quot;Enable auto-coordination&amp;quot; in the [[FlightGear Qt launcher|launcher]], or by adding the flag &amp;lt;code&amp;gt;--enable-auto-coordination&amp;lt;/code&amp;gt; to the command line.&lt;br /&gt;
&lt;br /&gt;
==== Joystick ====&lt;br /&gt;
&lt;br /&gt;
While a joystick feels more natural, it won't have the same deflections like a real heli stick. In most cases it is even less, which makes the heli in FlightGear more difficult to control than the real thing. Usually the full control travel way of a real helicopter stick is between 6 inches and 11 inches depending on the helicopter. The deflections of a real heli stick can be also asymmetrical depending on the helicopter, while our joysticks always have symmetrical deflections. &lt;br /&gt;
&lt;br /&gt;
==== Mouse ====&lt;br /&gt;
&lt;br /&gt;
A mouse can be also used, Joystick and mouse has both advantages and disadvantages. The mouse won't feel natural, but you can change the control travel in &amp;lt;code&amp;gt;mice.xml&amp;lt;/code&amp;gt; to your need. By decreasing the &amp;lt;factor&amp;gt; you can increase the control travel way and having less sensitive controls, which might improve the handling.&lt;br /&gt;
&lt;br /&gt;
==== Keyboard ====&lt;br /&gt;
&lt;br /&gt;
Flying helicopters by keyboard is not possible, as it won't provide sensitive enough control!&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
&lt;br /&gt;
=== Launch ===&lt;br /&gt;
&lt;br /&gt;
The number of available helicopters in FlightGear is increasing rather quickly. As helicopters have become more popular in FlightGear, many others have been developed. Each of them have their unique flight behaviour.&lt;br /&gt;
&lt;br /&gt;
In my opinion the [[Eurocopter Bo105|Bo105]] is the easiest to fly, since it reacts substantially more directly than other helicopters. &lt;br /&gt;
The Bell UH-1 is also recommended, though behaving completely different as the Bo105. Nevertheless both models shows very realistic handling qualities, are tested by their real pilots, and their real counterparts are used in some armies for training of pilot novices.&lt;br /&gt;
The [[Robinson R44]], is also very easy to fly, although possibly unrealistically so.&lt;br /&gt;
&lt;br /&gt;
Once you have loaded FlightGear, take a moment to centralize the controls by moving them around. However, as noted below, the throttle should be at maximum to equal the same as low throttle.&lt;br /&gt;
&lt;br /&gt;
[[File:s76c_landed.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
&lt;br /&gt;
The helicopter is controlled by four functions. The stick controls two of them, the inclination of the rotor disc (and thus the inclination of the helicopter) to the right/left and forwards/back. Together these functions are called [https://en.wikipedia.org/wiki/Helicopter_flight_controls#Cyclic cyclic blade control]. Next there is the [https://en.wikipedia.org/wiki/Helicopter_flight_controls#Collective collective blade control], which is controlled by the thrust controller. This causes a change of the thrust produced by the rotor. Since the powering of the main rotor transfers torque (as a twisting or turning force) to the fuselage, this must be compensated by the tail rotor. Since the torque is dependent on the collective and on the flight condition as well as wind can add additional torque on the fuselage, the [https://en.wikipedia.org/wiki/Tail_rotor tail rotor] is also controlled by the pilot using the pedals. If you push the right pedal, the helicopter turns to the right. The pedals are not a steering wheel. Using the pedals you can yaw helicopter around the vertical axis. The number of revolutions of the rotor is kept constant (if possible) by the aircraft.&lt;br /&gt;
&lt;br /&gt;
[[File:ec135_in_the_air.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Behavior of helicopters ===&lt;br /&gt;
&lt;br /&gt;
Helicopters are natural unstable. It is like balancing a ball sitting on another bigger ball, which is sitting on a much bigger ball. &lt;br /&gt;
Every control input leads to another control input to compensate: So if you increase the collective, you have to push the pedals to compensate the torque. With this you are increasing&lt;br /&gt;
the tail rotor thrust and the helicopter wants to drift to the side. So you have to compensate this with the stick...And so on, and so on.&lt;br /&gt;
&lt;br /&gt;
This makes helicopter flying much more difficult than fixed-wings. But with some practice it will become as easy as riding a bicycle!&lt;br /&gt;
&lt;br /&gt;
== Lift-Off ==&lt;br /&gt;
&lt;br /&gt;
{{Note|Increasing the throttle (pushing the throttle forward) will cause the helicopter to go down, not up. Likewise, decreasing the throttle (pulling back on the throttle) will cause the helicopter to go up.}}&lt;br /&gt;
&lt;br /&gt;
First reduce the collective to minimum. To increase the rotor thrust, you have to “pull” the collective. Therefore for minimum collective you have to push the control down (that is the full acceleration position of the thrust controller). Equally, “full power” has the thrust controller at idle. Started the engine by pressing {{key press|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}}. After few seconds the rotor will start to turn and accelerates slowly. Keep the stick and the pedals approximately entered. Wait until the rotor has finished accelerating. For the Bo105 there is an instruments for engine and rotor speed on the left of the upper row. The RPM percentage of the rotor should be at 97-100%.&lt;br /&gt;
&lt;br /&gt;
Once rotor acceleration is complete, pull the collective very slowly. Keep your eye on the horizon. If the heli tilts or turns even slightly, stop increasing the collective and correct the position/movement with stick and pedals. If you are successful, continue pulling the collective (slowly!).&lt;br /&gt;
&lt;br /&gt;
As the helicopter takes off, increase the collective a little bit more and try to keep the helicopter in a levelled position. The main challenge is reacting to the inadvertent rotating motion of the helicopter with the correct control inputs. Only three things can help you: practice, practice and practice. It is quite common for it to take hours of practice to achieve a halfway good looking hovering flight. It should be noted that the stick position in a stable hover is not the centre position of the joystick.&lt;br /&gt;
&lt;br /&gt;
{{Note|Making small inputs will lead you to success! Most helicopters are controlled just by small inputs by the fingers or the hand, the forearm resting on the thigh.}}&lt;br /&gt;
&lt;br /&gt;
Quick Reference:&lt;br /&gt;
# Press {{key press|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}} to start the turbines; use Automatic startup from the aircraft menu or follow the specific startup tutorial, depending on the helicopter.&lt;br /&gt;
# Disengage parking or rotor brake. (If applicable)&lt;br /&gt;
# Wait for your turbine to come to full speed&lt;br /&gt;
# '''Push the throttle down, not up.''' Pushing up makes the chopper go down.&lt;br /&gt;
# When at desired altitude, push throttle to about 60%&lt;br /&gt;
# Fly freely&lt;br /&gt;
&lt;br /&gt;
== In the air ==&lt;br /&gt;
To avoid the continual frustration of trying to achieve level flight, you may want to try forward flight. After take off continue pulling the collective a short time and then lower the nose a slightly using the control stick. The helicopter will accelerate forward. With forward speed the tail rotor does not have to be controlled as precisely due to the relative wind coming from directly ahead. Altogether the flight behaviour in forward flight is quite similar to that of a badly trimmed airplane. The “neutral” position of the stick will depend upon airspeed and collective.&lt;br /&gt;
&lt;br /&gt;
Transitioning from forward flight to hovering is easiest if you reduce speed slowly by raising the nose of the helicopter. At the same time, reduce the collective to stop the helicopter from climbing. As the helicopter slows, “translation lift” is reduced, and you will have to compensate by pulling the collective. When the speed is nearly zero, lower the nose to the position it was when hovering. Otherwise the helicopter will accelerate backwards!&lt;br /&gt;
&lt;br /&gt;
You may wonder about that the heli banking to the side. Don't worry, thats normal for helicopters. Due to the thrust of the tail rotor and the fins which also prevents the effect of the main rotor torque, the helicopter is pushed to one side. The helicopter would drift laterally. So to keep the heli straight you have to counteract this effect. That means you have to steer the helicopter so that you don't drift away- so bank the heli against the drift. The more tail rotor thrust you give, the more banking you will have. As an example while hovering. In cruise the fins will take over more and more the work of the tail rotor and will produce the same effect. &lt;br /&gt;
&lt;br /&gt;
The side of the banking depends on the direction of turn of the main rotor: Counterclockwise --&amp;gt; left banking. Clockwise --&amp;gt; right banking.&lt;br /&gt;
That's the reason why on modern helicopters like the [[EC135]] the attitude indicator is even mounted with a bank on the panel.&lt;br /&gt;
&lt;br /&gt;
== Back to Earth I ==&lt;br /&gt;
To land the helicopter transition to a hover as described above while reducing the altitude using the collective. Briefly before hitting the ground reduce the rate of descent slowly. A perfect landing is achieved if you managed to zero the altitude, speed and descent rate at the same time (gently). However, such landing are extremely difficult. Most pilots perform a hover more or less near to the ground and then decent slowly to the ground. Landing with forward velocity is easier, however you must make sure you don't land with any lateral (sideways) component to avoid a rollover. &lt;br /&gt;
&lt;br /&gt;
Quick Reference&lt;br /&gt;
# Get to the airport&lt;br /&gt;
# Throttle up slowly to about 80%&lt;br /&gt;
# Keep it level&lt;br /&gt;
# Don't come down too hard&lt;br /&gt;
# Land and turn your turbines off  by pressing {{key press|&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
[[File:bo105_landed.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Back to Earth II ==&lt;br /&gt;
It is worth mentioning autorotation briefly. This is an unpowered flight condition, where the flow of air through the rotors rotates the rotor itself. At an appropriate altitude select a landing point (at first in the size of a larger airfield) and then switch the engine off by pressing {{key press|&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;}}. Reduce collective to minimum, place the tail rotor to approximately 0 degrees incidence (with the Bo push the right pedal about half , with Russian or French helicopters (like the [[Aérospatiale Alouette II|Alouette 2]]) the left). Approach at approximately 80 knots. Don't allow the rotor speed to rise more than a few percent over 100%, otherwise the rotor will be damaged (though this is not currently simulated).&lt;br /&gt;
&lt;br /&gt;
As you reach the ground, reduce the airspeed by lifting the nose. The descent rate will drop at the same time, so you do not need to pull the collective. It may be the case that the rotor speed rises beyond the permitted range. Counteract this by raising the collective if required. Just above the ground, reduce the descent rate by pulling the collective. The goal is it to touch down with a very low descent rate and no forward speed. With forward speed it is easier, but there is a danger of a roll over if the skids are not aligned parallel to the flight direction. During the approach it is not necessary to adjust the tail rotor, since without power there is almost no torque. If you feel (after some practice), that autorotation is too easy, try it with a more realistic payload via the payload menu.&lt;br /&gt;
&lt;br /&gt;
[[File:bo105_auto.jpg]]&lt;br /&gt;
&lt;br /&gt;
==The real thing ==&lt;br /&gt;
Watch a pilot flying the real thing from his own perspective. Note the small inputs he is making. Before takeoff the stick is already centered at the needed position, due to the asymmetrical deflection it looks different than in FGFS: https://www.youtube.com/watch?v=HArfICZs5H4&lt;br /&gt;
&lt;br /&gt;
== Challenging places to fly ==&lt;br /&gt;
Once you have mastered to take off and land safely, you might want to try more challenging places to take your heli. Here are a few suggestions:&lt;br /&gt;
* One of the [[aircraft carrier]]s&lt;br /&gt;
* An [[oil platform]] in the North Sea&lt;br /&gt;
* After all - [http://www.youtube.com/watch?v=j7aHqDkCzCw who needs a helipad?]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;br /&gt;
&lt;br /&gt;
[[de:Fliegen mit dem Helikopter]]&lt;br /&gt;
[[es:Volando el helicoptero]]&lt;br /&gt;
[[fr:Piloter l'hélicoptère]]&lt;br /&gt;
[[it:Pilotare un elicottero]]&lt;br /&gt;
[[nl:Vliegen met de helicopter‎]]&lt;br /&gt;
[[pl:Lot śmigłowcem]]&lt;br /&gt;
[[pt:Voando_de_Helicóptero]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Fly_a_helicopter&amp;diff=146695</id>
		<title>Howto:Fly a helicopter</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Fly_a_helicopter&amp;diff=146695"/>
		<updated>2026-07-29T06:25:59Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:SOTM-Sept17.jpg|thumb|[[Eurocopter_EC135|Eurocopter EC135]] around &amp;quot;weeping wall&amp;quot; waterfalls at Mount Waialeale on the lush island of Kauai, near PHLI.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Alouette-lll_over_the_Carpathian_Mountains_in_Romania_in_Autumn_(Flightgear_2018.x).jpg|thumb|[[Alouette-III]] has an AI simulation of an (intentionally imperfect) [[Alouette-III#Amelia|human copilot]] that can assist people learning to fly helicopters to take off, hover, and land.]]&lt;br /&gt;
&lt;br /&gt;
[[File:EC_130_on_the_slope_of_a_shield_volcano_in_Hawaii_-_Flightgear_2018.x.jpg|thumb|[[Eurocopter_EC130|Eurocopter EC130]] on the slope of a shield volcano in Hawaii. The EC130 has the most detailed systems of helicopters available through FGAddon in FlightGear.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Truman06.jpg|thumb|[[Eurocopter EC 135]] landing on the [[Howto:Carrier|carrier]] Harry S. Truman which is positioned off the island of O'ahu in Hawaii near Honolulu International Airport (PHNL). You can start on a carrier from the [[Howto:Carrier#From_the_launcher_.28Version_2020.1_and_later.29|launcher]].]]&lt;br /&gt;
&lt;br /&gt;
[[File:EC135_Heer.jpeg|thumb|[[Eurocopter_EC135|Eurocopter EC135]] showing rotor downwash on grass. Individual grass blades react to the local windfield. Enable overlays to show grass (transparency anti-aliasing should be set to MSAA or higher).]]&lt;br /&gt;
&lt;br /&gt;
[[File:Alouette_gallery04.jpg|thumb|[[Alouette-III]] has a winch rope with a soft-body simulation of rope physics. Flightgear has a [[Cargo Towing Addon]] that will allow you attach ropes and move/assemble objects on a range of helicopters.]]&lt;br /&gt;
&lt;br /&gt;
[[File:EC_130_in_Zurich,_Switzerland_in_Autumn_(Flightgear_2018.x).jpg|thumb|[[Eurocopter_EC130|Eurocopter EC130]] over Zurich in Switzerland. OSM2City output with buildings, roads, and other objects such as pylons for regions and entire countries are available for [[Areas_populated_with_osm2city_scenery|separate downloads]]. OSM2City for Flightgear 2020.x or later have buildings that render faster. For nice airports to start at and fly around with OSM2City see [[Suggested_airports#Developed_airports_situated_in_developed_regions|developed airports in developed regions]]. ]]&lt;br /&gt;
&lt;br /&gt;
This article describes how to fly a helicopter in FlightGear.&lt;br /&gt;
&lt;br /&gt;
== Preface ==&lt;br /&gt;
In principle everything that applies to real helicopters, applies also to helicopters in [[FlightGear]]. It is important to be familiar with fundamental {{wikipedia|Helicopter flight controls|helicopter flight controls}}. Some details are simplified in FlightGear, in particular the engine handling and some overstresses are not simulated or are without any consequence.&lt;br /&gt;
&lt;br /&gt;
[[File:bo105_cockpit.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Control hardware ===&lt;br /&gt;
&lt;br /&gt;
==== Stick and Pitch control ====&lt;br /&gt;
&lt;br /&gt;
On the hardware side a use of a good [[joystick]] is recommended:A joystick without centering springs is recommended for cyclic control. You can achieve this with a normal joystick by removing or disabling the centring spring(s), or you could use a [[force feedback]] joystick with a disconnected voltage supply. Further, the joystick should have a “thrust controller” (throttle). &lt;br /&gt;
&lt;br /&gt;
==== Tail rotor controls ====&lt;br /&gt;
&lt;br /&gt;
For controlling the tail rotor you should have pedals, or at least a joystick that can twist in in a yawing motion. You may have to turn off auto-coordination, as you need full controls for the tail rotor. This can be done by clicking &amp;quot;Settings&amp;quot;, then clicking the &amp;quot;Show more&amp;quot; button to the right of &amp;quot;General&amp;quot;, and clicking &amp;quot;Enable auto-coordination&amp;quot; in the [[FlightGear Qt launcher|launcher]], or by adding the flag &amp;lt;code&amp;gt;--enable-auto-coordination&amp;lt;/code&amp;gt; to the command line.&lt;br /&gt;
&lt;br /&gt;
==== Joystick ====&lt;br /&gt;
&lt;br /&gt;
While a joystick feels more natural, it won't have the same deflections like a real heli stick. In most cases it is even less, which makes the heli in FlightGear more difficult to control than the real thing. Usually the full control travel way of a real helicopter stick is between 6 inches and 11 inches depending on the helicopter. The deflections of a real heli stick can be also asymmetrical depending on the helicopter, while our joysticks always have symmetrical deflections. &lt;br /&gt;
&lt;br /&gt;
==== Mouse ====&lt;br /&gt;
&lt;br /&gt;
A mouse can be also used, Joystick and mouse has both advantages and disadvantages. The mouse won't feel natural, but you can change the control travel in &amp;lt;code&amp;gt;mice.xml&amp;lt;/code&amp;gt; to your need. By decreasing the &amp;lt;factor&amp;gt; you can increase the control travel way and having less sensitive controls, which might improve the handling.&lt;br /&gt;
&lt;br /&gt;
==== Keyboard ====&lt;br /&gt;
&lt;br /&gt;
Flying helicopters by keyboard is not possible, as it won't provide sensitive enough control!&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
&lt;br /&gt;
=== Launch ===&lt;br /&gt;
&lt;br /&gt;
The number of available helicopters in FlightGear is increasing rather quickly. As helicopters have become more popular in FlightGear, many others have been developed. Each of them have their unique flight behaviour.&lt;br /&gt;
&lt;br /&gt;
In my opinion the [[Eurocopter Bo105|Bo105]] is the easiest to fly, since it reacts substantially more directly than other helicopters. &lt;br /&gt;
The Bell UH-1 is also recommended, though behaving completely different as the Bo105. Nevertheless both models shows very realistic handling qualities, are tested by their real pilots, and their real counterparts are used in some armies for training of pilot novices.&lt;br /&gt;
The [[Robinson R44]], is also very easy to fly, although possibly unrealistically so.&lt;br /&gt;
&lt;br /&gt;
Once you have loaded FlightGear, take a moment to centralize the controls by moving them around. However, as noted below, the throttle should be at maximum to equal the same as low throttle.&lt;br /&gt;
&lt;br /&gt;
[[File:s76c_landed.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
&lt;br /&gt;
The helicopter is controlled by four functions. The stick controls two of them, the inclination of the rotor disc (and thus the inclination of the helicopter) to the right/left and forwards/back. Together these functions are called [https://en.wikipedia.org/wiki/Helicopter_flight_controls#Cyclic cyclic blade control]. Next there is the [https://en.wikipedia.org/wiki/Helicopter_flight_controls#Collective collective blade control], which is controlled by the thrust controller. This causes a change of the thrust produced by the rotor. Since the powering of the main rotor transfers torque (as a twisting or turning force) to the fuselage, this must be compensated by the tail rotor. Since the torque is dependent on the collective and on the flight condition as well as wind can add additional torque on the fuselage, the [https://en.wikipedia.org/wiki/Tail_rotor tail rotor] is also controlled by the pilot using the pedals. If you push the right pedal, the helicopter turns to the right. The pedals are not a steering wheel. Using the pedals you can yaw helicopter around the vertical axis. The number of revolutions of the rotor is kept constant (if possible) by the aircraft.&lt;br /&gt;
&lt;br /&gt;
[[File:ec135_in_the_air.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Behavior of helicopters ===&lt;br /&gt;
&lt;br /&gt;
Helicopters are natural unstable. It is like balancing a ball sitting on another bigger ball, which is sitting on a much bigger ball. &lt;br /&gt;
Every control input leads to another control input to compensate: So if you increase the collective, you have to push the pedals to compensate the torque. With this you are increasing&lt;br /&gt;
the tail rotor thrust and the helicopter wants to drift to the side. So you have to compensate this with the stick...And so on, and so on.&lt;br /&gt;
&lt;br /&gt;
This makes helicopter flying much more difficult than fixed-wings. But with some practice it will become as easy as riding a bicycle!&lt;br /&gt;
&lt;br /&gt;
== Lift-Off ==&lt;br /&gt;
&lt;br /&gt;
{{Note|Increasing the throttle (pushing the throttle forward) will cause the helicopter to go down, not up. Likewise, decreasing the throttle (pulling back on the throttle) will cause the helicopter to go up.}}&lt;br /&gt;
&lt;br /&gt;
First reduce the collective to minimum. To increase the rotor thrust, you have to “pull” the collective. Therefore for minimum collective you have to push the control down (that is the full acceleration position of the thrust controller). Equally, “full power” has the thrust controller at idle. Started the engine by pressing {{key press|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}}. After few seconds the rotor will start to turn and accelerates slowly. Keep the stick and the pedals approximately entered. Wait until the rotor has finished accelerating. For the Bo105 there is an instruments for engine and rotor speed on the left of the upper row. The RPM percentage of the rotor should be at 97-100%.&lt;br /&gt;
&lt;br /&gt;
Once rotor acceleration is complete, pull the collective very slowly. Keep your eye on the horizon. If the heli tilts or turns even slightly, stop increasing the collective and correct the position/movement with stick and pedals. If you are successful, continue pulling the collective (slowly!).&lt;br /&gt;
&lt;br /&gt;
As the helicopter takes off, increase the collective a little bit more and try to keep the helicopter in a levelled position. The main challenge is reacting to the inadvertent rotating motion of the helicopter with the correct control inputs. Only three things can help you: practice, practice and practice. It is quite common for it to take hours of practice to achieve a halfway good looking hovering flight. It should be noted that the stick position in a stable hover is not the centre position of the joystick.&lt;br /&gt;
&lt;br /&gt;
{{Note|Making small inputs will lead you to success! Most helicopters are controlled just by small inputs by the fingers or the hand, the forearm resting on the thigh.}}&lt;br /&gt;
&lt;br /&gt;
Quick Reference:&lt;br /&gt;
# Press {{key press|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}} to start the turbines; use Automatic startup from the aircraft menu or follow the specific startup tutorial, depending on the helicopter.&lt;br /&gt;
# Disengage parking or rotor brake. (If applicable)&lt;br /&gt;
# Wait for your turbine to come to full speed&lt;br /&gt;
# '''Push the throttle down, not up.''' Pushing up makes the chopper go down.&lt;br /&gt;
# When at desired altitude, push throttle to about 60%&lt;br /&gt;
# Fly freely&lt;br /&gt;
&lt;br /&gt;
== In the air ==&lt;br /&gt;
To avoid the continual frustration of trying to achieve level flight, you may want to try forward flight. After take off continue pulling the collective a short time and then lower the nose a slightly using the control stick. The helicopter will accelerate forward. With forward speed the tail rotor does not have to be controlled as precisely due to the relative wind coming from directly ahead. Altogether the flight behaviour in forward flight is quite similar to that of a badly trimmed airplane. The “neutral” position of the stick will depend upon airspeed and collective.&lt;br /&gt;
&lt;br /&gt;
Transitioning from forward flight to hovering is easiest if you reduce speed slowly by raising the nose of the helicopter. At the same time, reduce the collective to stop the helicopter from climbing. As the helicopter slows, “translation lift” is reduced, and you will have to compensate by pulling the collective. When the speed is nearly zero, lower the nose to the position it was when hovering. Otherwise the helicopter will accelerate backwards!&lt;br /&gt;
&lt;br /&gt;
You may wonder about that the heli banking to the side. Don't worry, thats normal for helicopters. Due to the thrust of the tail rotor and the fins which also prevents the effect of the main rotor torque, the helicopter is pushed to one side. The helicopter would drift laterally. So to keep the heli straight you have to counteract this effect. That means you have to steer the helicopter so that you don't drift away- so bank the heli against the drift. The more tail rotor thrust you give, the more banking you will have. As an example while hovering. In cruise the fins will take over more and more the work of the tail rotor and will produce the same effect. &lt;br /&gt;
&lt;br /&gt;
The side of the banking depends on the direction of turn of the main rotor: Counterclockwise --&amp;gt; left banking. Clockwise --&amp;gt; right banking.&lt;br /&gt;
That's the reason why on modern helicopters like the [[EC135]] the attitude indicator is even mounted with a bank on the panel.&lt;br /&gt;
&lt;br /&gt;
== Back to Earth I ==&lt;br /&gt;
To land the helicopter transition to a hover as described above while reducing the altitude using the collective. Briefly before hitting the ground reduce the rate of descent slowly. A perfect landing is achieved if you managed to zero the altitude, speed and descent rate at the same time (gently). However, such landing are extremely difficult. Most pilots perform a hover more or less near to the ground and then decent slowly to the ground. Landing with forward velocity is easier, however you must make sure you don't land with any lateral (sideways) component to avoid a rollover. &lt;br /&gt;
&lt;br /&gt;
Quick Reference&lt;br /&gt;
# Get to the airport&lt;br /&gt;
# Throttle up slowly to about 80%&lt;br /&gt;
# Keep it level&lt;br /&gt;
# Don't come down too hard&lt;br /&gt;
# Land and turn your turbines off  by pressing {{key press|&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
[[File:bo105_landed.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Back to Earth II ==&lt;br /&gt;
It is worth mentioning autorotation briefly. This is an unpowered flight condition, where the flow of air through the rotors rotates the rotor itself. At an appropriate altitude select a landing point (at first in the size of a larger airfield) and then switch the engine off by pressing {{key press|&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;}}. Reduce collective to minimum, place the tail rotor to approximately 0 degrees incidence (with the Bo push the right pedal about half , with Russian or French helicopters (like the [[Aérospatiale Alouette II|Alouette 2]]) the left). Approach at approximately 80 knots. Don't allow the rotor speed to rise more than a few percent over 100%, otherwise the rotor will be damaged (though this is not currently simulated).&lt;br /&gt;
&lt;br /&gt;
As you reach the ground, reduce the airspeed by lifting the nose. The descent rate will drop at the same time, so you do not need to pull the collective. It may be the case that the rotor speed rises beyond the permitted range. Counteract this by raising the collective if required. Just above the ground, reduce the descent rate by pulling the collective. The goal is it to touch down with a very low descent rate and no forward speed. With forward speed it is easier, but there is a danger of a roll over if the skids are not aligned parallel to the flight direction. During the approach it is not necessary to adjust the tail rotor, since without power there is almost no torque. If you feel (after some practice), that autorotation is too easy, try it with a more realistic payload via the payload menu.&lt;br /&gt;
&lt;br /&gt;
[[File:bo105_auto.jpg]]&lt;br /&gt;
&lt;br /&gt;
==The real thing ==&lt;br /&gt;
Watch a pilot flying the real thing from his own perspective. Note the small inputs he is making. Before takeoff the stick is already centered at the needed position, due to the asymmetrical deflection it looks different than in FGFS: https://www.youtube.com/watch?v=HArfICZs5H4&lt;br /&gt;
&lt;br /&gt;
== Challenging places to fly ==&lt;br /&gt;
Once you have mastered to take off and land safely, you might want to try more challenging places to take your heli. Here are a few suggestions:&lt;br /&gt;
* One of the [[aircraft carrier]]s&lt;br /&gt;
* An [[oil platform]] in the North Sea&lt;br /&gt;
* After all - [http://www.youtube.com/watch?v=j7aHqDkCzCw who needs a helipad?]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;br /&gt;
&lt;br /&gt;
[[de:Fliegen mit dem Helikopter]]&lt;br /&gt;
[[es:Volando el helicoptero]]&lt;br /&gt;
[[fr:Piloter l'hélicoptère]]&lt;br /&gt;
[[it:Pilotare un elicottero]]&lt;br /&gt;
[[nl:Vliegen met de helicopter‎]]&lt;br /&gt;
[[pl:Lot śmigłowcem]]&lt;br /&gt;
[[pt:Voando_de_Helicóptero]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Fly_a_helicopter&amp;diff=146694</id>
		<title>Howto:Fly a helicopter</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Fly_a_helicopter&amp;diff=146694"/>
		<updated>2026-07-29T06:25:28Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:SOTM-Sept17.jpg|thumb|[[Eurocopter_EC135|Eurocopter EC135]] around &amp;quot;weeping wall&amp;quot; waterfalls at Mount Waialeale on the lush island of Kauai, near PHLI.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Alouette-lll_over_the_Carpathian_Mountains_in_Romania_in_Autumn_(Flightgear_2018.x).jpg|thumb|[[Alouette-III]] has an AI simulation of an (intentionally imperfect) [[Alouette-III#Amelia|human copilot]] that can assist people learning to fly helicopters to take off, hover, and land.]]&lt;br /&gt;
&lt;br /&gt;
[[File:EC_130_on_the_slope_of_a_shield_volcano_in_Hawaii_-_Flightgear_2018.x.jpg|thumb|[[Eurocopter_EC130|Eurocopter EC130]] on the slope of a shield volcano in Hawaii. The EC130 has the most detailed systems of helicopters available through FGAddon in FlightGear.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Truman06.jpg|thumb|[[Eurocopter EC 135]] landing on the [[Howto:Carrier|carrier]] Harry S. Truman which is positioned off the island of O'ahu in Hawaii near Honolulu International Airport (PHNL). You can start on a carrier from the [[Howto:Carrier#From_the_launcher_.28Version_2020.1_and_later.29|launcher]].]]&lt;br /&gt;
&lt;br /&gt;
[[File:EC135_Heer.jpeg|thumb|[[Eurocopter_EC135|Eurocopter EC135]] showing rotor downwash on grass. Individual grass blades react to the local windfield. Enable overlays to show grass (transparency anti-aliasing should be set to MSAA or higher).]]&lt;br /&gt;
&lt;br /&gt;
[[File:Alouette_gallery04.jpg|thumb|[[Alouette-III]] has a winch rope with a soft-body simulation of rope physics. Flightgear has a [[Cargo Towing Addon]] that will allow you attach ropes and move/assemble objects on a range of helicopters.]]&lt;br /&gt;
&lt;br /&gt;
[[File:EC_130_in_Zurich,_Switzerland_in_Autumn_(Flightgear_2018.x).jpg|thumb|[[Eurocopter_EC130|Eurocopter EC130]] over Zurich in Switzerland. OSM2City output with buildings, roads, and other objects such as pylons for regions and entire countries are available for [[Areas_populated_with_osm2city_scenery|separate downloads]]. OSM2City for Flightgear 2020.x or later have buildings that render faster. For nice airports to start at and fly around with OSM2City see [[Suggested_airports#Developed_airports_situated_in_developed_regions|developed airports in developed regions]]. ]]&lt;br /&gt;
&lt;br /&gt;
This page describes how to fly a helicopter in FlightGear.&lt;br /&gt;
&lt;br /&gt;
== Preface ==&lt;br /&gt;
In principle everything that applies to real helicopters, applies also to helicopters in [[FlightGear]]. It is important to be familiar with fundamental {{wikipedia|Helicopter flight controls|helicopter flight controls}}. Some details are simplified in FlightGear, in particular the engine handling and some overstresses are not simulated or are without any consequence.&lt;br /&gt;
&lt;br /&gt;
[[File:bo105_cockpit.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Control hardware ===&lt;br /&gt;
&lt;br /&gt;
==== Stick and Pitch control ====&lt;br /&gt;
&lt;br /&gt;
On the hardware side a use of a good [[joystick]] is recommended:A joystick without centering springs is recommended for cyclic control. You can achieve this with a normal joystick by removing or disabling the centring spring(s), or you could use a [[force feedback]] joystick with a disconnected voltage supply. Further, the joystick should have a “thrust controller” (throttle). &lt;br /&gt;
&lt;br /&gt;
==== Tail rotor controls ====&lt;br /&gt;
&lt;br /&gt;
For controlling the tail rotor you should have pedals, or at least a joystick that can twist in in a yawing motion. You may have to turn off auto-coordination, as you need full controls for the tail rotor. This can be done by clicking &amp;quot;Settings&amp;quot;, then clicking the &amp;quot;Show more&amp;quot; button to the right of &amp;quot;General&amp;quot;, and clicking &amp;quot;Enable auto-coordination&amp;quot; in the [[FlightGear Qt launcher|launcher]], or by adding the flag &amp;lt;code&amp;gt;--enable-auto-coordination&amp;lt;/code&amp;gt; to the command line.&lt;br /&gt;
&lt;br /&gt;
==== Joystick ====&lt;br /&gt;
&lt;br /&gt;
While a joystick feels more natural, it won't have the same deflections like a real heli stick. In most cases it is even less, which makes the heli in FlightGear more difficult to control than the real thing. Usually the full control travel way of a real helicopter stick is between 6 inches and 11 inches depending on the helicopter. The deflections of a real heli stick can be also asymmetrical depending on the helicopter, while our joysticks always have symmetrical deflections. &lt;br /&gt;
&lt;br /&gt;
==== Mouse ====&lt;br /&gt;
&lt;br /&gt;
A mouse can be also used, Joystick and mouse has both advantages and disadvantages. The mouse won't feel natural, but you can change the control travel in &amp;lt;code&amp;gt;mice.xml&amp;lt;/code&amp;gt; to your need. By decreasing the &amp;lt;factor&amp;gt; you can increase the control travel way and having less sensitive controls, which might improve the handling.&lt;br /&gt;
&lt;br /&gt;
==== Keyboard ====&lt;br /&gt;
&lt;br /&gt;
Flying helicopters by keyboard is not possible, as it won't provide sensitive enough control!&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
&lt;br /&gt;
=== Launch ===&lt;br /&gt;
&lt;br /&gt;
The number of available helicopters in FlightGear is increasing rather quickly. As helicopters have become more popular in FlightGear, many others have been developed. Each of them have their unique flight behaviour.&lt;br /&gt;
&lt;br /&gt;
In my opinion the [[Eurocopter Bo105|Bo105]] is the easiest to fly, since it reacts substantially more directly than other helicopters. &lt;br /&gt;
The Bell UH-1 is also recommended, though behaving completely different as the Bo105. Nevertheless both models shows very realistic handling qualities, are tested by their real pilots, and their real counterparts are used in some armies for training of pilot novices.&lt;br /&gt;
The [[Robinson R44]], is also very easy to fly, although possibly unrealistically so.&lt;br /&gt;
&lt;br /&gt;
Once you have loaded FlightGear, take a moment to centralize the controls by moving them around. However, as noted below, the throttle should be at maximum to equal the same as low throttle.&lt;br /&gt;
&lt;br /&gt;
[[File:s76c_landed.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
&lt;br /&gt;
The helicopter is controlled by four functions. The stick controls two of them, the inclination of the rotor disc (and thus the inclination of the helicopter) to the right/left and forwards/back. Together these functions are called [https://en.wikipedia.org/wiki/Helicopter_flight_controls#Cyclic cyclic blade control]. Next there is the [https://en.wikipedia.org/wiki/Helicopter_flight_controls#Collective collective blade control], which is controlled by the thrust controller. This causes a change of the thrust produced by the rotor. Since the powering of the main rotor transfers torque (as a twisting or turning force) to the fuselage, this must be compensated by the tail rotor. Since the torque is dependent on the collective and on the flight condition as well as wind can add additional torque on the fuselage, the [https://en.wikipedia.org/wiki/Tail_rotor tail rotor] is also controlled by the pilot using the pedals. If you push the right pedal, the helicopter turns to the right. The pedals are not a steering wheel. Using the pedals you can yaw helicopter around the vertical axis. The number of revolutions of the rotor is kept constant (if possible) by the aircraft.&lt;br /&gt;
&lt;br /&gt;
[[File:ec135_in_the_air.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Behavior of helicopters ===&lt;br /&gt;
&lt;br /&gt;
Helicopters are natural unstable. It is like balancing a ball sitting on another bigger ball, which is sitting on a much bigger ball. &lt;br /&gt;
Every control input leads to another control input to compensate: So if you increase the collective, you have to push the pedals to compensate the torque. With this you are increasing&lt;br /&gt;
the tail rotor thrust and the helicopter wants to drift to the side. So you have to compensate this with the stick...And so on, and so on.&lt;br /&gt;
&lt;br /&gt;
This makes helicopter flying much more difficult than fixed-wings. But with some practice it will become as easy as riding a bicycle!&lt;br /&gt;
&lt;br /&gt;
== Lift-Off ==&lt;br /&gt;
&lt;br /&gt;
{{Note|Increasing the throttle (pushing the throttle forward) will cause the helicopter to go down, not up. Likewise, decreasing the throttle (pulling back on the throttle) will cause the helicopter to go up.}}&lt;br /&gt;
&lt;br /&gt;
First reduce the collective to minimum. To increase the rotor thrust, you have to “pull” the collective. Therefore for minimum collective you have to push the control down (that is the full acceleration position of the thrust controller). Equally, “full power” has the thrust controller at idle. Started the engine by pressing {{key press|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}}. After few seconds the rotor will start to turn and accelerates slowly. Keep the stick and the pedals approximately entered. Wait until the rotor has finished accelerating. For the Bo105 there is an instruments for engine and rotor speed on the left of the upper row. The RPM percentage of the rotor should be at 97-100%.&lt;br /&gt;
&lt;br /&gt;
Once rotor acceleration is complete, pull the collective very slowly. Keep your eye on the horizon. If the heli tilts or turns even slightly, stop increasing the collective and correct the position/movement with stick and pedals. If you are successful, continue pulling the collective (slowly!).&lt;br /&gt;
&lt;br /&gt;
As the helicopter takes off, increase the collective a little bit more and try to keep the helicopter in a levelled position. The main challenge is reacting to the inadvertent rotating motion of the helicopter with the correct control inputs. Only three things can help you: practice, practice and practice. It is quite common for it to take hours of practice to achieve a halfway good looking hovering flight. It should be noted that the stick position in a stable hover is not the centre position of the joystick.&lt;br /&gt;
&lt;br /&gt;
{{Note|Making small inputs will lead you to success! Most helicopters are controlled just by small inputs by the fingers or the hand, the forearm resting on the thigh.}}&lt;br /&gt;
&lt;br /&gt;
Quick Reference:&lt;br /&gt;
# Press {{key press|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}} to start the turbines; use Automatic startup from the aircraft menu or follow the specific startup tutorial, depending on the helicopter.&lt;br /&gt;
# Disengage parking or rotor brake. (If applicable)&lt;br /&gt;
# Wait for your turbine to come to full speed&lt;br /&gt;
# '''Push the throttle down, not up.''' Pushing up makes the chopper go down.&lt;br /&gt;
# When at desired altitude, push throttle to about 60%&lt;br /&gt;
# Fly freely&lt;br /&gt;
&lt;br /&gt;
== In the air ==&lt;br /&gt;
To avoid the continual frustration of trying to achieve level flight, you may want to try forward flight. After take off continue pulling the collective a short time and then lower the nose a slightly using the control stick. The helicopter will accelerate forward. With forward speed the tail rotor does not have to be controlled as precisely due to the relative wind coming from directly ahead. Altogether the flight behaviour in forward flight is quite similar to that of a badly trimmed airplane. The “neutral” position of the stick will depend upon airspeed and collective.&lt;br /&gt;
&lt;br /&gt;
Transitioning from forward flight to hovering is easiest if you reduce speed slowly by raising the nose of the helicopter. At the same time, reduce the collective to stop the helicopter from climbing. As the helicopter slows, “translation lift” is reduced, and you will have to compensate by pulling the collective. When the speed is nearly zero, lower the nose to the position it was when hovering. Otherwise the helicopter will accelerate backwards!&lt;br /&gt;
&lt;br /&gt;
You may wonder about that the heli banking to the side. Don't worry, thats normal for helicopters. Due to the thrust of the tail rotor and the fins which also prevents the effect of the main rotor torque, the helicopter is pushed to one side. The helicopter would drift laterally. So to keep the heli straight you have to counteract this effect. That means you have to steer the helicopter so that you don't drift away- so bank the heli against the drift. The more tail rotor thrust you give, the more banking you will have. As an example while hovering. In cruise the fins will take over more and more the work of the tail rotor and will produce the same effect. &lt;br /&gt;
&lt;br /&gt;
The side of the banking depends on the direction of turn of the main rotor: Counterclockwise --&amp;gt; left banking. Clockwise --&amp;gt; right banking.&lt;br /&gt;
That's the reason why on modern helicopters like the [[EC135]] the attitude indicator is even mounted with a bank on the panel.&lt;br /&gt;
&lt;br /&gt;
== Back to Earth I ==&lt;br /&gt;
To land the helicopter transition to a hover as described above while reducing the altitude using the collective. Briefly before hitting the ground reduce the rate of descent slowly. A perfect landing is achieved if you managed to zero the altitude, speed and descent rate at the same time (gently). However, such landing are extremely difficult. Most pilots perform a hover more or less near to the ground and then decent slowly to the ground. Landing with forward velocity is easier, however you must make sure you don't land with any lateral (sideways) component to avoid a rollover. &lt;br /&gt;
&lt;br /&gt;
Quick Reference&lt;br /&gt;
# Get to the airport&lt;br /&gt;
# Throttle up slowly to about 80%&lt;br /&gt;
# Keep it level&lt;br /&gt;
# Don't come down too hard&lt;br /&gt;
# Land and turn your turbines off  by pressing {{key press|&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
[[File:bo105_landed.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Back to Earth II ==&lt;br /&gt;
It is worth mentioning autorotation briefly. This is an unpowered flight condition, where the flow of air through the rotors rotates the rotor itself. At an appropriate altitude select a landing point (at first in the size of a larger airfield) and then switch the engine off by pressing {{key press|&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;}}. Reduce collective to minimum, place the tail rotor to approximately 0 degrees incidence (with the Bo push the right pedal about half , with Russian or French helicopters (like the [[Aérospatiale Alouette II|Alouette 2]]) the left). Approach at approximately 80 knots. Don't allow the rotor speed to rise more than a few percent over 100%, otherwise the rotor will be damaged (though this is not currently simulated).&lt;br /&gt;
&lt;br /&gt;
As you reach the ground, reduce the airspeed by lifting the nose. The descent rate will drop at the same time, so you do not need to pull the collective. It may be the case that the rotor speed rises beyond the permitted range. Counteract this by raising the collective if required. Just above the ground, reduce the descent rate by pulling the collective. The goal is it to touch down with a very low descent rate and no forward speed. With forward speed it is easier, but there is a danger of a roll over if the skids are not aligned parallel to the flight direction. During the approach it is not necessary to adjust the tail rotor, since without power there is almost no torque. If you feel (after some practice), that autorotation is too easy, try it with a more realistic payload via the payload menu.&lt;br /&gt;
&lt;br /&gt;
[[File:bo105_auto.jpg]]&lt;br /&gt;
&lt;br /&gt;
==The real thing ==&lt;br /&gt;
Watch a pilot flying the real thing from his own perspective. Note the small inputs he is making. Before takeoff the stick is already centered at the needed position, due to the asymmetrical deflection it looks different than in FGFS: https://www.youtube.com/watch?v=HArfICZs5H4&lt;br /&gt;
&lt;br /&gt;
== Challenging places to fly ==&lt;br /&gt;
Once you have mastered to take off and land safely, you might want to try more challenging places to take your heli. Here are a few suggestions:&lt;br /&gt;
* One of the [[aircraft carrier]]s&lt;br /&gt;
* An [[oil platform]] in the North Sea&lt;br /&gt;
* After all - [http://www.youtube.com/watch?v=j7aHqDkCzCw who needs a helipad?]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;br /&gt;
&lt;br /&gt;
[[de:Fliegen mit dem Helikopter]]&lt;br /&gt;
[[es:Volando el helicoptero]]&lt;br /&gt;
[[fr:Piloter l'hélicoptère]]&lt;br /&gt;
[[it:Pilotare un elicottero]]&lt;br /&gt;
[[nl:Vliegen met de helicopter‎]]&lt;br /&gt;
[[pl:Lot śmigłowcem]]&lt;br /&gt;
[[pt:Voando_de_Helicóptero]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Fly_a_helicopter&amp;diff=146693</id>
		<title>Howto:Fly a helicopter</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Fly_a_helicopter&amp;diff=146693"/>
		<updated>2026-07-29T06:24:06Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:SOTM-Sept17.jpg|thumb|[[Eurocopter_EC135|Eurocopter EC135]] around &amp;quot;weeping wall&amp;quot; waterfalls at Mount Waialeale on the lush island of Kauai, near PHLI.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Alouette-lll_over_the_Carpathian_Mountains_in_Romania_in_Autumn_(Flightgear_2018.x).jpg|thumb|[[Alouette-III]] has an AI simulation of an (intentionally imperfect) [[Alouette-III#Amelia|human copilot]] that can assist people learning to fly helicopters to take off, hover, and land.]]&lt;br /&gt;
&lt;br /&gt;
[[File:EC_130_on_the_slope_of_a_shield_volcano_in_Hawaii_-_Flightgear_2018.x.jpg|thumb|[[Eurocopter_EC130|Eurocopter EC130]] on the slope of a shield volcano in Hawaii. The EC130 has the most detailed systems of helicopters available through FGAddon in FlightGear.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Truman06.jpg|thumb|[[Eurocopter EC 135]] landing on the [[Howto:Carrier|carrier]] Harry S. Truman which is positioned off the island of O'ahu in Hawaii near Honolulu International Airport (PHNL). You can start on a carrier from the [[Howto:Carrier#From_the_launcher_.28Version_2020.1_and_later.29|launcher]].]]&lt;br /&gt;
&lt;br /&gt;
[[File:EC135_Heer.jpeg|thumb|[[Eurocopter_EC135|Eurocopter EC135]] showing rotor downwash on grass. Individual grass blades react to the local windfield. Enable overlays to show grass (transparency anti-aliasing should be set to MSAA or higher).]]&lt;br /&gt;
&lt;br /&gt;
[[File:Alouette_gallery04.jpg|thumb|[[Alouette-III]] has a winch rope with a soft-body simulation of rope physics. Flightgear has a [[Cargo Towing Addon]] that will allow you attach ropes and move/assemble objects on a range of helicopters.]]&lt;br /&gt;
&lt;br /&gt;
[[File:EC_130_in_Zurich,_Switzerland_in_Autumn_(Flightgear_2018.x).jpg|thumb|[[Eurocopter_EC130|Eurocopter EC130]] over Zurich in Switzerland. OSM2City output with buildings, roads, and other objects such as pylons for regions and entire countries are available for [[Areas_populated_with_osm2city_scenery|separate downloads]]. OSM2City for Flightgear 2020.x or later have buildings that render faster. For nice airports to start at and fly around with OSM2City see [[Suggested_airports#Developed_airports_situated_in_developed_regions|developed airports in developed regions]]. ]]&lt;br /&gt;
&lt;br /&gt;
== Preface ==&lt;br /&gt;
In principle everything that applies to real helicopters, applies also to helicopters in [[FlightGear]]. It is important to be familiar with fundamental {{wikipedia|Helicopter flight controls|helicopter flight controls}}. Some details are simplified in FlightGear, in particular the engine handling and some overstresses are not simulated or are without any consequence.&lt;br /&gt;
&lt;br /&gt;
[[File:bo105_cockpit.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Control hardware ===&lt;br /&gt;
&lt;br /&gt;
==== Stick and Pitch control ====&lt;br /&gt;
&lt;br /&gt;
On the hardware side a use of a good [[joystick]] is recommended:A joystick without centering springs is recommended for cyclic control. You can achieve this with a normal joystick by removing or disabling the centring spring(s), or you could use a [[force feedback]] joystick with a disconnected voltage supply. Further, the joystick should have a “thrust controller” (throttle). &lt;br /&gt;
&lt;br /&gt;
==== Tail rotor controls ====&lt;br /&gt;
&lt;br /&gt;
For controlling the tail rotor you should have pedals, or at least a joystick that can twist in in a yawing motion. You may have to turn off auto-coordination, as you need full controls for the tail rotor. This can be done by clicking &amp;quot;Settings&amp;quot;, then clicking the &amp;quot;Show more&amp;quot; button to the right of &amp;quot;General&amp;quot;, and clicking &amp;quot;Enable auto-coordination&amp;quot; in the [[FlightGear Qt launcher|launcher]], or by adding the flag &amp;lt;code&amp;gt;--enable-auto-coordination&amp;lt;/code&amp;gt; to the command line.&lt;br /&gt;
&lt;br /&gt;
==== Joystick ====&lt;br /&gt;
&lt;br /&gt;
While a joystick feels more natural, it won't have the same deflections like a real heli stick. In most cases it is even less, which makes the heli in FlightGear more difficult to control than the real thing. Usually the full control travel way of a real helicopter stick is between 6 inches and 11 inches depending on the helicopter. The deflections of a real heli stick can be also asymmetrical depending on the helicopter, while our joysticks always have symmetrical deflections. &lt;br /&gt;
&lt;br /&gt;
==== Mouse ====&lt;br /&gt;
&lt;br /&gt;
A mouse can be also used, Joystick and mouse has both advantages and disadvantages. The mouse won't feel natural, but you can change the control travel in &amp;lt;code&amp;gt;mice.xml&amp;lt;/code&amp;gt; to your need. By decreasing the &amp;lt;factor&amp;gt; you can increase the control travel way and having less sensitive controls, which might improve the handling.&lt;br /&gt;
&lt;br /&gt;
==== Keyboard ====&lt;br /&gt;
&lt;br /&gt;
Flying helicopters by keyboard is not possible, as it won't provide sensitive enough control!&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
&lt;br /&gt;
=== Launch ===&lt;br /&gt;
&lt;br /&gt;
The number of available helicopters in FlightGear is increasing rather quickly. As helicopters have become more popular in FlightGear, many others have been developed. Each of them have their unique flight behaviour.&lt;br /&gt;
&lt;br /&gt;
In my opinion the [[Eurocopter Bo105|Bo105]] is the easiest to fly, since it reacts substantially more directly than other helicopters. &lt;br /&gt;
The Bell UH-1 is also recommended, though behaving completely different as the Bo105. Nevertheless both models shows very realistic handling qualities, are tested by their real pilots, and their real counterparts are used in some armies for training of pilot novices.&lt;br /&gt;
The [[Robinson R44]], is also very easy to fly, although possibly unrealistically so.&lt;br /&gt;
&lt;br /&gt;
Once you have loaded FlightGear, take a moment to centralize the controls by moving them around. However, as noted below, the throttle should be at maximum to equal the same as low throttle.&lt;br /&gt;
&lt;br /&gt;
[[File:s76c_landed.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
&lt;br /&gt;
The helicopter is controlled by four functions. The stick controls two of them, the inclination of the rotor disc (and thus the inclination of the helicopter) to the right/left and forwards/back. Together these functions are called [https://en.wikipedia.org/wiki/Helicopter_flight_controls#Cyclic cyclic blade control]. Next there is the [https://en.wikipedia.org/wiki/Helicopter_flight_controls#Collective collective blade control], which is controlled by the thrust controller. This causes a change of the thrust produced by the rotor. Since the powering of the main rotor transfers torque (as a twisting or turning force) to the fuselage, this must be compensated by the tail rotor. Since the torque is dependent on the collective and on the flight condition as well as wind can add additional torque on the fuselage, the [https://en.wikipedia.org/wiki/Tail_rotor tail rotor] is also controlled by the pilot using the pedals. If you push the right pedal, the helicopter turns to the right. The pedals are not a steering wheel. Using the pedals you can yaw helicopter around the vertical axis. The number of revolutions of the rotor is kept constant (if possible) by the aircraft.&lt;br /&gt;
&lt;br /&gt;
[[File:ec135_in_the_air.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Behavior of helicopters ===&lt;br /&gt;
&lt;br /&gt;
Helicopters are natural unstable. It is like balancing a ball sitting on another bigger ball, which is sitting on a much bigger ball. &lt;br /&gt;
Every control input leads to another control input to compensate: So if you increase the collective, you have to push the pedals to compensate the torque. With this you are increasing&lt;br /&gt;
the tail rotor thrust and the helicopter wants to drift to the side. So you have to compensate this with the stick...And so on, and so on.&lt;br /&gt;
&lt;br /&gt;
This makes helicopter flying much more difficult than fixed-wings. But with some practice it will become as easy as riding a bicycle!&lt;br /&gt;
&lt;br /&gt;
== Lift-Off ==&lt;br /&gt;
&lt;br /&gt;
{{Note|Increasing the throttle (pushing the throttle forward) will cause the helicopter to go down, not up. Likewise, decreasing the throttle (pulling back on the throttle) will cause the helicopter to go up.}}&lt;br /&gt;
&lt;br /&gt;
First reduce the collective to minimum. To increase the rotor thrust, you have to “pull” the collective. Therefore for minimum collective you have to push the control down (that is the full acceleration position of the thrust controller). Equally, “full power” has the thrust controller at idle. Started the engine by pressing {{key press|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}}. After few seconds the rotor will start to turn and accelerates slowly. Keep the stick and the pedals approximately entered. Wait until the rotor has finished accelerating. For the Bo105 there is an instruments for engine and rotor speed on the left of the upper row. The RPM percentage of the rotor should be at 97-100%.&lt;br /&gt;
&lt;br /&gt;
Once rotor acceleration is complete, pull the collective very slowly. Keep your eye on the horizon. If the heli tilts or turns even slightly, stop increasing the collective and correct the position/movement with stick and pedals. If you are successful, continue pulling the collective (slowly!).&lt;br /&gt;
&lt;br /&gt;
As the helicopter takes off, increase the collective a little bit more and try to keep the helicopter in a levelled position. The main challenge is reacting to the inadvertent rotating motion of the helicopter with the correct control inputs. Only three things can help you: practice, practice and practice. It is quite common for it to take hours of practice to achieve a halfway good looking hovering flight. It should be noted that the stick position in a stable hover is not the centre position of the joystick.&lt;br /&gt;
&lt;br /&gt;
{{Note|Making small inputs will lead you to success! Most helicopters are controlled just by small inputs by the fingers or the hand, the forearm resting on the thigh.}}&lt;br /&gt;
&lt;br /&gt;
Quick Reference:&lt;br /&gt;
# Press {{key press|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}} to start the turbines; use Automatic startup from the aircraft menu or follow the specific startup tutorial, depending on the helicopter.&lt;br /&gt;
# Disengage parking or rotor brake. (If applicable)&lt;br /&gt;
# Wait for your turbine to come to full speed&lt;br /&gt;
# '''Push the throttle down, not up.''' Pushing up makes the chopper go down.&lt;br /&gt;
# When at desired altitude, push throttle to about 60%&lt;br /&gt;
# Fly freely&lt;br /&gt;
&lt;br /&gt;
== In the air ==&lt;br /&gt;
To avoid the continual frustration of trying to achieve level flight, you may want to try forward flight. After take off continue pulling the collective a short time and then lower the nose a slightly using the control stick. The helicopter will accelerate forward. With forward speed the tail rotor does not have to be controlled as precisely due to the relative wind coming from directly ahead. Altogether the flight behaviour in forward flight is quite similar to that of a badly trimmed airplane. The “neutral” position of the stick will depend upon airspeed and collective.&lt;br /&gt;
&lt;br /&gt;
Transitioning from forward flight to hovering is easiest if you reduce speed slowly by raising the nose of the helicopter. At the same time, reduce the collective to stop the helicopter from climbing. As the helicopter slows, “translation lift” is reduced, and you will have to compensate by pulling the collective. When the speed is nearly zero, lower the nose to the position it was when hovering. Otherwise the helicopter will accelerate backwards!&lt;br /&gt;
&lt;br /&gt;
You may wonder about that the heli banking to the side. Don't worry, thats normal for helicopters. Due to the thrust of the tail rotor and the fins which also prevents the effect of the main rotor torque, the helicopter is pushed to one side. The helicopter would drift laterally. So to keep the heli straight you have to counteract this effect. That means you have to steer the helicopter so that you don't drift away- so bank the heli against the drift. The more tail rotor thrust you give, the more banking you will have. As an example while hovering. In cruise the fins will take over more and more the work of the tail rotor and will produce the same effect. &lt;br /&gt;
&lt;br /&gt;
The side of the banking depends on the direction of turn of the main rotor: Counterclockwise --&amp;gt; left banking. Clockwise --&amp;gt; right banking.&lt;br /&gt;
That's the reason why on modern helicopters like the [[EC135]] the attitude indicator is even mounted with a bank on the panel.&lt;br /&gt;
&lt;br /&gt;
== Back to Earth I ==&lt;br /&gt;
To land the helicopter transition to a hover as described above while reducing the altitude using the collective. Briefly before hitting the ground reduce the rate of descent slowly. A perfect landing is achieved if you managed to zero the altitude, speed and descent rate at the same time (gently). However, such landing are extremely difficult. Most pilots perform a hover more or less near to the ground and then decent slowly to the ground. Landing with forward velocity is easier, however you must make sure you don't land with any lateral (sideways) component to avoid a rollover. &lt;br /&gt;
&lt;br /&gt;
Quick Reference&lt;br /&gt;
# Get to the airport&lt;br /&gt;
# Throttle up slowly to about 80%&lt;br /&gt;
# Keep it level&lt;br /&gt;
# Don't come down too hard&lt;br /&gt;
# Land and turn your turbines off  by pressing {{key press|&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
[[File:bo105_landed.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Back to Earth II ==&lt;br /&gt;
It is worth mentioning autorotation briefly. This is an unpowered flight condition, where the flow of air through the rotors rotates the rotor itself. At an appropriate altitude select a landing point (at first in the size of a larger airfield) and then switch the engine off by pressing {{key press|&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;}}. Reduce collective to minimum, place the tail rotor to approximately 0 degrees incidence (with the Bo push the right pedal about half , with Russian or French helicopters (like the [[Aérospatiale Alouette II|Alouette 2]]) the left). Approach at approximately 80 knots. Don't allow the rotor speed to rise more than a few percent over 100%, otherwise the rotor will be damaged (though this is not currently simulated).&lt;br /&gt;
&lt;br /&gt;
As you reach the ground, reduce the airspeed by lifting the nose. The descent rate will drop at the same time, so you do not need to pull the collective. It may be the case that the rotor speed rises beyond the permitted range. Counteract this by raising the collective if required. Just above the ground, reduce the descent rate by pulling the collective. The goal is it to touch down with a very low descent rate and no forward speed. With forward speed it is easier, but there is a danger of a roll over if the skids are not aligned parallel to the flight direction. During the approach it is not necessary to adjust the tail rotor, since without power there is almost no torque. If you feel (after some practice), that autorotation is too easy, try it with a more realistic payload via the payload menu.&lt;br /&gt;
&lt;br /&gt;
[[File:bo105_auto.jpg]]&lt;br /&gt;
&lt;br /&gt;
==The real thing ==&lt;br /&gt;
Watch a pilot flying the real thing from his own perspective. Note the small inputs he is making. Before takeoff the stick is already centered at the needed position, due to the asymmetrical deflection it looks different than in FGFS: https://www.youtube.com/watch?v=HArfICZs5H4&lt;br /&gt;
&lt;br /&gt;
== Challenging places to fly ==&lt;br /&gt;
Once you have mastered to take off and land safely, you might want to try more challenging places to take your heli. Here are a few suggestions:&lt;br /&gt;
* One of the [[aircraft carrier]]s&lt;br /&gt;
* An [[oil platform]] in the North Sea&lt;br /&gt;
* After all - [http://www.youtube.com/watch?v=j7aHqDkCzCw who needs a helipad?]&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto]]&lt;br /&gt;
&lt;br /&gt;
[[de:Fliegen mit dem Helikopter]]&lt;br /&gt;
[[es:Volando el helicoptero]]&lt;br /&gt;
[[fr:Piloter l'hélicoptère]]&lt;br /&gt;
[[it:Pilotare un elicottero]]&lt;br /&gt;
[[nl:Vliegen met de helicopter‎]]&lt;br /&gt;
[[pl:Lot śmigłowcem]]&lt;br /&gt;
[[pt:Voando_de_Helicóptero]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=User:Servo&amp;diff=146692</id>
		<title>User:Servo</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=User:Servo&amp;diff=146692"/>
		<updated>2026-07-29T06:23:16Z</updated>

		<summary type="html">&lt;p&gt;Servo: done&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The wiki refresh has been completed. {{progressbar|100}} {{done}}&lt;br /&gt;
&lt;br /&gt;
The wiki backup is at https://gitlab.com/flyer02/flightgear-wiki-backup/-/tree/main and will be periodically updated.&lt;br /&gt;
&lt;br /&gt;
For how I clear old content on this wiki, see [[User:Celesta/removing old contents]]. For why I do this, see [[User:Servo/AI Agent]].&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Flight_rules&amp;diff=146691</id>
		<title>Flight rules</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Flight_rules&amp;diff=146691"/>
		<updated>2026-07-29T06:22:09Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Vertical separation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Flight rules''' are a set of regulations designed to prevent accidents in airspace. Similar to traffic rules for drivers, pilots are required to pass an exam demonstrating their knowledge of these rules. Although regulations vary by country, common provisions govern aspects such as airfield approach procedures, speed limits (e.g., maximum 240 knots below 10,000 feet), pilot qualifications, aircraft maintenance, minimum distances from ground objects, noise restrictions, and radio communication protocols.&lt;br /&gt;
&lt;br /&gt;
Two sets of rules have become synonymous with distinct methods of flying: Visual Flight Rules (VFR) and Instrument Flight Rules (IFR). Within these flight rules, several regulatory layers can be identified.&lt;br /&gt;
&amp;lt;!--- not all articles have a redirect --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Controlled airspace==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Controlled_airspace Controlled airspace] means aircraft must identify themselves with the designated [[ATC]]. The aircraft will be directed to paths and altitudes to aid separation, prevent collisions and aid in take-off and landing. The pilot must request permission (clearance) from [[ATC]] for each change in course, [[speed]] and [[altitude]]. Most airfields have controlled airspace around them.&lt;br /&gt;
&lt;br /&gt;
Communication rules within controlled airspaces in FlightGear:&lt;br /&gt;
* Use [[FGCOM]]&lt;br /&gt;
** FGCOM lets you control your aircraft without reading chat or paying attention reading a chat box.&lt;br /&gt;
** FGCOM helps the ATC to control much more aircraft at the same time, because heard and spoken commands are much faster than chat.&lt;br /&gt;
* read the [[Communications|Communications-article]] to learn more&lt;br /&gt;
* A detailed description of how ATC-procedures should be executed and which different types of controlled airspaces can be managed in FlightGear is shown in the [[ATC Tutorial|ATC-Turorial]].&lt;br /&gt;
&lt;br /&gt;
===Entering controlled airspaces===&lt;br /&gt;
In Flightgear every pilot has to contact the ATC (if there is any) via [[FGCOM]] or Chat and should obey the following syntax, when he is entering a controlled airspace:&lt;br /&gt;
&lt;br /&gt;
 PILOT: '''Callsign''' with you at FL180 for Heathrow. Information Alpha. &lt;br /&gt;
 Controller: '''Callsign''', Radar Contact 51 miles out, alpha is current. d/m 8,000 and direct OCK please.&lt;br /&gt;
The pilot is reporting his altitude, his attentions, and the letter of the actual [[ATIS]] he got on the ATIS-frequency before. In this example, he is at flightlevel 180 (18,000 ft at [[QNH]] and reports that is going to land at London Heathrow Airport. The controller confirms that he has the incoming air-plane on its radar, 51 miles out. He also confirms that ATIS information Alpha is the latest information. Additional he advices the pilot to descend and maintain 8,000 ft.&lt;br /&gt;
&lt;br /&gt;
===Regularly controlled airspaces in Flightgear===&lt;br /&gt;
* [[ATC at EDDF|Frankfurt Airspace]]&lt;br /&gt;
* [[EGKK|Cologne/Bonn Airspace]]&lt;br /&gt;
* [[Leipzig/Halle Airspace]]&lt;br /&gt;
* Luxembourg Airspace&lt;br /&gt;
&lt;br /&gt;
==Uncontrolled airspace==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Uncontrolled_airspace Uncontrolled airspace] means the pilot is fully responsible to avoid other aircraft and obstacles. There is no external radar or [[ATC]] to assist with this task.&lt;br /&gt;
&lt;br /&gt;
A good read is: https://www.faa.gov/documentlibrary/media/advisory_circular/ac_90-66b.pdf&lt;br /&gt;
&lt;br /&gt;
==Visual flight rules==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Visual_flight_rules '''VFR'''] are applicable when the pilot can see around to '''navigate''' and to avoid other aircraft and obstacles. The altitude must be low enough to identify landmarks for navigation. The weather or minimal meteorological conditions to allow VFR are defined in [http://en.wikipedia.org/wiki/Visual_meteorological_conditions Visual Meteorological Conditions ('''VMC''')]. As can be expected one of the most important condition is good visibility. If VFR is not possible [[IFR]] must be used.&lt;br /&gt;
*VFR navigation article [[Pilotage and dead reckoning]].&lt;br /&gt;
&lt;br /&gt;
===Controlled visual flight rules===&lt;br /&gt;
'''CVFR''' are applicable when the pilot is entering controlled airspace. Most often near airports but also over areas with high risks. The pilot is not free to navigate anywhere and will have to follow [[ATC]] directions. Pilots (most often) are not required to be [[IFR]] certified. When weather conditions change a pilot can often request CVFR assistance from [[ATC]]. &lt;br /&gt;
&lt;br /&gt;
===Special visual flight rules===&lt;br /&gt;
[http://en.wikipedia.org/wiki/Special_visual_flight_rules '''SVFR'''] is basically the same as [[CVFR]] but pilots must be [[IFR]] certified and navigation must be instrument based. Any condition of [[VFR]] that is exempted can be called SVFR.&lt;br /&gt;
&lt;br /&gt;
===Night visual flight rules===&lt;br /&gt;
In many countries flying [[VFR]] at night is not allowed, most often [[IFR]] must be applied. For the few countries that allow flying at night [http://en.wikipedia.org/wiki/Night_VFR '''NVFR'''] are applicable. These rules include things like landing lights and illuminated on-board equipment.&lt;br /&gt;
&lt;br /&gt;
==Instrument flight rules==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Instrument_flight_rules '''IFR'''] are applicable when [[VFR]] is not allowed. The weather or meteorological conditions when [[IFR]] is required is defined in [http://en.wikipedia.org/wiki/Instrument_meteorological_conditions Instrument meteorological conditions ('''IMC''')]. Navigation is based on [[radio beacons]] and most often a pre-approved flight plan is required. The pilot must be certified to apply IFR. All scheduled commercial flights operate exclusively under IFR.&lt;br /&gt;
*IFR navigation article [[Radio navigation]].&lt;br /&gt;
&lt;br /&gt;
==Airline flight rules==&lt;br /&gt;
The owner of an aircraft has to follow the local flight rules. The employee of a airline that owns an aircraft not only has to follow the local flight rules, the employee also has to follow airline flight rules. The airline, just as the local legislator, has an interest in preventing accidents. The airline also prefers to make a profit. The airline flight rules can not contradict local flight rules but the airline flight rules can be tighter and broader. Examples,&lt;br /&gt;
*Local flight rules allow one pilot with a max 4 passengers.&lt;br /&gt;
**Airline flight rules dictate two pilots on one aircraft.&lt;br /&gt;
*Local flight rules dictates a minimum rate of ascend so that aircraft get out of the low-altitude-danger-zone fast.&lt;br /&gt;
**Airline flight rules dictate a max. rate of ascend to prevent too much fuel burn.&lt;br /&gt;
*Local flight rules allow a VFR approach even when there is an [[ILS]].&lt;br /&gt;
**Airline flight rules disallows a VFR approach when there is an [[ILS]].&lt;br /&gt;
*Local flight rules allow a powerback (the use of reversers to push the aircraft backwards).&lt;br /&gt;
**Airline flight rules disallows a powerback since the airline will have to pay for any damage and the additional fuel burn.&lt;br /&gt;
&lt;br /&gt;
==Aircraft flight manual==&lt;br /&gt;
The Aircraft Flight Manual ('''AFM''') is a legal document that describes limitations, operating procedures and performance of a specific aircraft. Older aircraft have manuals with different names but with the same legal status. Modern light aircraft have a Pilot's Operating Handbook ('''POH''') that is part of the AFM. The owner of the aircraft is responsible to keep the AFM up-to-date. The AFM is an integral part of the aircraft. The AFM includes specific flight rules for the aircraft.&lt;br /&gt;
&lt;br /&gt;
==Vertical separation==&lt;br /&gt;
'''Despite''' many articles on the internet telling an aircraft has to fly a specified altitude when flying a magnetic course and [[VFR]] or [[IFR]] there is '''not''' '''ONE''' rule for the world!!! &lt;br /&gt;
&lt;br /&gt;
One system uses [[AGL]] as reference, the other [[AMSL]], one system separates with 500 feet intervals, the other at 1000, one uses indicated [[altitude]], the other absolute altitude. Check the rules that apply and ask [[ATC]] what altitude to fly (and on what reference).&lt;br /&gt;
&lt;br /&gt;
Below a specified [[altitude]] the pilot has to set the altimeter on [[QNH]], above the specified altitude on Standard Pressure. The moment when to reset the altimeter is named the Transition altitude and it differs from country to country, some use 18000 feet some use 3000 feet and there are many variations in between. To add to the confusion some regions require the [[flight level]] in meters.&lt;br /&gt;
&lt;br /&gt;
Does this confusion sound a bit like driving on the right side in the UK?&lt;br /&gt;
&lt;br /&gt;
More info (but you have to read carefully) is here: https://en.wikipedia.org/wiki/Flight_level&lt;br /&gt;
&lt;br /&gt;
==External articles==&lt;br /&gt;
*https://en.wikipedia.org/wiki/Freedoms_of_the_air&lt;br /&gt;
*https://en.wikipedia.org/wiki/Functional_Airspace_Block&lt;br /&gt;
*https://en.wikipedia.org/wiki/European_Aviation_Safety_Agency&lt;br /&gt;
*https://en.wikipedia.org/wiki/Federal_Aviation_Administration&lt;br /&gt;
*https://en.wikipedia.org/wiki/Joint_Aviation_Authorities&lt;br /&gt;
*https://en.wikipedia.org/wiki/Private_Pilot_License&lt;br /&gt;
*https://en.wikipedia.org/wiki/Commercial_Pilot_License&lt;br /&gt;
*https://en.wikipedia.org/wiki/Instrument_rating&lt;br /&gt;
&lt;br /&gt;
[[Category:Aviation]]&lt;br /&gt;
[[es:Reglas_de_vuelo]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Flight_rules&amp;diff=146690</id>
		<title>Flight rules</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Flight_rules&amp;diff=146690"/>
		<updated>2026-07-29T06:21:53Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* External articles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Flight rules''' are a set of regulations designed to prevent accidents in airspace. Similar to traffic rules for drivers, pilots are required to pass an exam demonstrating their knowledge of these rules. Although regulations vary by country, common provisions govern aspects such as airfield approach procedures, speed limits (e.g., maximum 240 knots below 10,000 feet), pilot qualifications, aircraft maintenance, minimum distances from ground objects, noise restrictions, and radio communication protocols.&lt;br /&gt;
&lt;br /&gt;
Two sets of rules have become synonymous with distinct methods of flying: Visual Flight Rules (VFR) and Instrument Flight Rules (IFR). Within these flight rules, several regulatory layers can be identified.&lt;br /&gt;
&amp;lt;!--- not all articles have a redirect --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Controlled airspace==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Controlled_airspace Controlled airspace] means aircraft must identify themselves with the designated [[ATC]]. The aircraft will be directed to paths and altitudes to aid separation, prevent collisions and aid in take-off and landing. The pilot must request permission (clearance) from [[ATC]] for each change in course, [[speed]] and [[altitude]]. Most airfields have controlled airspace around them.&lt;br /&gt;
&lt;br /&gt;
Communication rules within controlled airspaces in FlightGear:&lt;br /&gt;
* Use [[FGCOM]]&lt;br /&gt;
** FGCOM lets you control your aircraft without reading chat or paying attention reading a chat box.&lt;br /&gt;
** FGCOM helps the ATC to control much more aircraft at the same time, because heard and spoken commands are much faster than chat.&lt;br /&gt;
* read the [[Communications|Communications-article]] to learn more&lt;br /&gt;
* A detailed description of how ATC-procedures should be executed and which different types of controlled airspaces can be managed in FlightGear is shown in the [[ATC Tutorial|ATC-Turorial]].&lt;br /&gt;
&lt;br /&gt;
===Entering controlled airspaces===&lt;br /&gt;
In Flightgear every pilot has to contact the ATC (if there is any) via [[FGCOM]] or Chat and should obey the following syntax, when he is entering a controlled airspace:&lt;br /&gt;
&lt;br /&gt;
 PILOT: '''Callsign''' with you at FL180 for Heathrow. Information Alpha. &lt;br /&gt;
 Controller: '''Callsign''', Radar Contact 51 miles out, alpha is current. d/m 8,000 and direct OCK please.&lt;br /&gt;
The pilot is reporting his altitude, his attentions, and the letter of the actual [[ATIS]] he got on the ATIS-frequency before. In this example, he is at flightlevel 180 (18,000 ft at [[QNH]] and reports that is going to land at London Heathrow Airport. The controller confirms that he has the incoming air-plane on its radar, 51 miles out. He also confirms that ATIS information Alpha is the latest information. Additional he advices the pilot to descend and maintain 8,000 ft.&lt;br /&gt;
&lt;br /&gt;
===Regularly controlled airspaces in Flightgear===&lt;br /&gt;
* [[ATC at EDDF|Frankfurt Airspace]]&lt;br /&gt;
* [[EGKK|Cologne/Bonn Airspace]]&lt;br /&gt;
* [[Leipzig/Halle Airspace]]&lt;br /&gt;
* Luxembourg Airspace&lt;br /&gt;
&lt;br /&gt;
==Uncontrolled airspace==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Uncontrolled_airspace Uncontrolled airspace] means the pilot is fully responsible to avoid other aircraft and obstacles. There is no external radar or [[ATC]] to assist with this task.&lt;br /&gt;
&lt;br /&gt;
A good read is: https://www.faa.gov/documentlibrary/media/advisory_circular/ac_90-66b.pdf&lt;br /&gt;
&lt;br /&gt;
==Visual flight rules==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Visual_flight_rules '''VFR'''] are applicable when the pilot can see around to '''navigate''' and to avoid other aircraft and obstacles. The altitude must be low enough to identify landmarks for navigation. The weather or minimal meteorological conditions to allow VFR are defined in [http://en.wikipedia.org/wiki/Visual_meteorological_conditions Visual Meteorological Conditions ('''VMC''')]. As can be expected one of the most important condition is good visibility. If VFR is not possible [[IFR]] must be used.&lt;br /&gt;
*VFR navigation article [[Pilotage and dead reckoning]].&lt;br /&gt;
&lt;br /&gt;
===Controlled visual flight rules===&lt;br /&gt;
'''CVFR''' are applicable when the pilot is entering controlled airspace. Most often near airports but also over areas with high risks. The pilot is not free to navigate anywhere and will have to follow [[ATC]] directions. Pilots (most often) are not required to be [[IFR]] certified. When weather conditions change a pilot can often request CVFR assistance from [[ATC]]. &lt;br /&gt;
&lt;br /&gt;
===Special visual flight rules===&lt;br /&gt;
[http://en.wikipedia.org/wiki/Special_visual_flight_rules '''SVFR'''] is basically the same as [[CVFR]] but pilots must be [[IFR]] certified and navigation must be instrument based. Any condition of [[VFR]] that is exempted can be called SVFR.&lt;br /&gt;
&lt;br /&gt;
===Night visual flight rules===&lt;br /&gt;
In many countries flying [[VFR]] at night is not allowed, most often [[IFR]] must be applied. For the few countries that allow flying at night [http://en.wikipedia.org/wiki/Night_VFR '''NVFR'''] are applicable. These rules include things like landing lights and illuminated on-board equipment.&lt;br /&gt;
&lt;br /&gt;
==Instrument flight rules==&lt;br /&gt;
[http://en.wikipedia.org/wiki/Instrument_flight_rules '''IFR'''] are applicable when [[VFR]] is not allowed. The weather or meteorological conditions when [[IFR]] is required is defined in [http://en.wikipedia.org/wiki/Instrument_meteorological_conditions Instrument meteorological conditions ('''IMC''')]. Navigation is based on [[radio beacons]] and most often a pre-approved flight plan is required. The pilot must be certified to apply IFR. All scheduled commercial flights operate exclusively under IFR.&lt;br /&gt;
*IFR navigation article [[Radio navigation]].&lt;br /&gt;
&lt;br /&gt;
==Airline flight rules==&lt;br /&gt;
The owner of an aircraft has to follow the local flight rules. The employee of a airline that owns an aircraft not only has to follow the local flight rules, the employee also has to follow airline flight rules. The airline, just as the local legislator, has an interest in preventing accidents. The airline also prefers to make a profit. The airline flight rules can not contradict local flight rules but the airline flight rules can be tighter and broader. Examples,&lt;br /&gt;
*Local flight rules allow one pilot with a max 4 passengers.&lt;br /&gt;
**Airline flight rules dictate two pilots on one aircraft.&lt;br /&gt;
*Local flight rules dictates a minimum rate of ascend so that aircraft get out of the low-altitude-danger-zone fast.&lt;br /&gt;
**Airline flight rules dictate a max. rate of ascend to prevent too much fuel burn.&lt;br /&gt;
*Local flight rules allow a VFR approach even when there is an [[ILS]].&lt;br /&gt;
**Airline flight rules disallows a VFR approach when there is an [[ILS]].&lt;br /&gt;
*Local flight rules allow a powerback (the use of reversers to push the aircraft backwards).&lt;br /&gt;
**Airline flight rules disallows a powerback since the airline will have to pay for any damage and the additional fuel burn.&lt;br /&gt;
&lt;br /&gt;
==Aircraft flight manual==&lt;br /&gt;
The Aircraft Flight Manual ('''AFM''') is a legal document that describes limitations, operating procedures and performance of a specific aircraft. Older aircraft have manuals with different names but with the same legal status. Modern light aircraft have a Pilot's Operating Handbook ('''POH''') that is part of the AFM. The owner of the aircraft is responsible to keep the AFM up-to-date. The AFM is an integral part of the aircraft. The AFM includes specific flight rules for the aircraft.&lt;br /&gt;
&lt;br /&gt;
==Vertical separation==&lt;br /&gt;
'''Despite''' many articles on the internet telling an aircraft has to fly a specified altitude when flying a magnetic course and [[VFR]] or [[IFR]] there is '''not''' '''ONE''' rule for the world!!! &lt;br /&gt;
&lt;br /&gt;
One system uses [[AGL]] as reference, the other [[AMSL]], one system separates with 500 feet intervals, the other at 1000, one uses indicated [[altitude]], the other absolute altitude. Check the rules that apply and ask [[ATC]] what altitude to fly (and on what reference).&lt;br /&gt;
&lt;br /&gt;
Below a specified [[altitude]] the pilot has to set the altimeter on [[QNH]], above the specified altitude on Standard Pressure. The moment when to reset the altimeter is named the Transition altitude and it differs from country to country, some use 18000 feet some use 3000 feet and there are many variations in between. To add to the confusion some regions require the [[flight level]] in meters.&lt;br /&gt;
&lt;br /&gt;
Does this confusion sound a bit like driving on the right side in the UK?&lt;br /&gt;
&lt;br /&gt;
More info (but you have to read carefully) is here: http://en.wikipedia.org/wiki/Flight_level&lt;br /&gt;
&lt;br /&gt;
==External articles==&lt;br /&gt;
*https://en.wikipedia.org/wiki/Freedoms_of_the_air&lt;br /&gt;
*https://en.wikipedia.org/wiki/Functional_Airspace_Block&lt;br /&gt;
*https://en.wikipedia.org/wiki/European_Aviation_Safety_Agency&lt;br /&gt;
*https://en.wikipedia.org/wiki/Federal_Aviation_Administration&lt;br /&gt;
*https://en.wikipedia.org/wiki/Joint_Aviation_Authorities&lt;br /&gt;
*https://en.wikipedia.org/wiki/Private_Pilot_License&lt;br /&gt;
*https://en.wikipedia.org/wiki/Commercial_Pilot_License&lt;br /&gt;
*https://en.wikipedia.org/wiki/Instrument_rating&lt;br /&gt;
&lt;br /&gt;
[[Category:Aviation]]&lt;br /&gt;
[[es:Reglas_de_vuelo]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Navigation_references&amp;diff=146689</id>
		<title>Navigation references</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Navigation_references&amp;diff=146689"/>
		<updated>2026-07-29T06:18:46Z</updated>

		<summary type="html">&lt;p&gt;Servo: oyt of date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{out of date}}&lt;br /&gt;
This page contain '''navigation references'''. It also try to explain why it is difficult to maintain a comprehensive and complete navigational database in FlightGear.&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
=== Disclaimer ===&lt;br /&gt;
&lt;br /&gt;
'''A few words of warning ahead:''' This article (in the spirit of Wikis) is to be enhanced! It has been started by someone who has an at best crude understanding of navigation and absolutly no experience in writing Wiki-Articles. That said, he layed out a structure of which he thinks that it would help collecting the required information. Each of the following sections is incomplete and requires further information. Please add whatever you can, even if it's just a sigle line.&lt;br /&gt;
&lt;br /&gt;
=== Purpose ===&lt;br /&gt;
&lt;br /&gt;
This page should help to collect information on ''where'' and ''how'' to find references for '''Navigation'''. It is also meant to ellaborate a little bit on the ''why'' it is so difficult to maintain a comprehensive and complete navigational database in Flightgear.&lt;br /&gt;
&lt;br /&gt;
In general, many different types of documents exist to help pilots navigate, both on ground at the airport and in air. There is a plenthora of regulations, formalized procedures and documentation, each of which might differ from country to country.&lt;br /&gt;
&lt;br /&gt;
Since this is a simulation you are not obliged to heed nor read any of those. However, many people strive for a maximum amount of realism and hence challenge when they fly, so while you could just power up the engines, take off straight from the taxiway and land in an equally ''practically oriented'' manner, you might appreciate the complexity which you would be faced with in a real plane and fly accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Procedures ===&lt;br /&gt;
&lt;br /&gt;
In reality, depending on the airport, you would be instructed either by ATC and/or written airport regulations. You would have to follow precise procedures for lighting, engine control and navigating to the runway.&lt;br /&gt;
&lt;br /&gt;
On the runway, once allowed to, you take off according to your planes specifications and follow a certain path away from the airport.&lt;br /&gt;
&lt;br /&gt;
From that point on, it depends on the [http://en.wikipedia.org/wiki/Airspace_class class of Airspace] what you can and will do. For strongly regulated airspaces, you follow the exact orders of the [http://en.wikipedia.org/wiki/Air_traffic_control ATC], which in turn instructs you according to their own precise regulations and documents.&lt;br /&gt;
&lt;br /&gt;
If you are flying VFR, you normally take over navigation yourself and fly whereever the regulations allow you to. If you are flying IFR, you will follow your flightplan. This very flightplan is it that is subject to many regulations.&lt;br /&gt;
&lt;br /&gt;
=== Types of Documents ===&lt;br /&gt;
&lt;br /&gt;
For every part of your flight there are certain regulations. In general, any ATC-given instruction by...&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Air_traffic_control Ground Control] on ground at the airport&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Air_traffic_control#Approach_and_terminal_control Approach] when taking off&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Air_traffic_control#Local_control_or_air_control Air Control] on a short distance IFR flight or when not yet finished [http://en.wikipedia.org/wiki/Standard_Instrument_Departure SID transit] on a long distance IFR flight&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Air_traffic_control#Local_control_or_air_control Air Control] on a VFR flight in regulated [http://en.wikipedia.org/wiki/Airspace_class airspace]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Area_Control_Center Center] en route on an IFR long distance flight&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Air_traffic_control#Local_control_or_air_control Air Control] on a long distance IFR flight after [http://en.wikipedia.org/wiki/Standard_terminal_arrival_route transit to STAR]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Air_traffic_control#Approach_and_terminal_control Approach] when landing on an airport&lt;br /&gt;
&lt;br /&gt;
and again&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Air_traffic_control Ground Control] on ground at the destination airport&lt;br /&gt;
&lt;br /&gt;
automatically take precedence over whatever you have read, heard or want to do. For a more detailled overview on how in particular ATC interacts with pilots see the [[ATC Tutorial]]. So without any ATC anywhere on your way from your source gate to the destination gate, you would fly according to documents and regulations that you have read.&lt;br /&gt;
&lt;br /&gt;
If there is ATC in place, they will hopefully and likely instruct you to operate, just like you would operate on your own. That means that they have read and act by the very same documents and regulations that you have read, but as opposed to you they have an overview over everything that is happening and might account for that, giving instructions on a per-case basis. In aviation, the ATC is the ''Executive'' of airspace while the according governmental insitutions, such as the [http://www.faa.gov/ FAA] for the U.S. are the ''Legislative''.&lt;br /&gt;
&lt;br /&gt;
This page should document the ''Law'' itsself -- and in particular where to find it -- meaning the documents by which flying under either circumstances is governed. The cirumstances themselves can me manifold, depending on not just '''phase of flight''' but also on '''country''', '''[http://en.wikipedia.org/wiki/Airspace_class class of airspace]''' and '''type of aircraft'''.&lt;br /&gt;
&lt;br /&gt;
== Availability ==&lt;br /&gt;
&lt;br /&gt;
One could assume that ''the law of flying'' is readily available for everyone to read up and distribute, so that everyone knows it and flys according to it. Unfortunally, reality looks different. While there might have been a time when documents of this kind were freely available, this beneficial attitude has fell victim to today's capitalism and bureaucracy.&lt;br /&gt;
&lt;br /&gt;
'''The law of flying is generally not openly available'''.&lt;br /&gt;
&lt;br /&gt;
Quoting the Wikipedia article on [http://en.wikipedia.org/wiki/DAFIF DAFIF], a&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;complete and comprehensive database of up-to-date [http://en.wikipedia.org/wiki/Aeronautics aeronautical] data&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
was public domain until 2006, when copyright claims on particular pieces forced the according authorities to withdraw it. Since then, a convoluted forest of licensing has driven the data into far-spread corners of the internet and into the hands of commerical organisations and only a fraction, in particular all data owned by the FAA, has remained public domain.&lt;br /&gt;
&lt;br /&gt;
Due to these sad circumstances it became virtually impossible to obtain the ''law of flying'' from a central comprehensive repository, not to mention providing the data as part of Flightgear.&lt;br /&gt;
&lt;br /&gt;
However, the data widely remains free, yet not without license, so that this document shall collect a comprehensive list of '''free''' sources that can be used to plan and fly according to real world regulations.&lt;br /&gt;
&lt;br /&gt;
The particular usage of each of the references is beyond the scope of this document but should, with a little research, be accessible. For instance, for how [http://en.wikipedia.org/wiki/Approach_plate Approach plates] are used, you can consult [http://www.navfltsm.addr.com/ndb-appr.htm NAVFLTSM's documentation].&lt;br /&gt;
&lt;br /&gt;
Apart from that, you can can consult the article on [Naviation] which is currently still marked as ''Stub'' and not useful but could be enhanced.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
'''Note to Editors:''' Please provide, for each entry, at least the ''URL'' of the reference, ''what'' it provides, in which ''format'' or ''how'' it is provided and a ''description'', the longer the merrier. Thank you.&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! URL !! Content !! Type&lt;br /&gt;
|-&lt;br /&gt;
| http://rfinder.asalink.net/free/ || Flight Plan Generator || Plain Text, human readable on the website&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This page generates a flightplan of yet unknown quality. The service is the free version of an otherwise commerical service and is based, according to the page on a recent database of yet unknown origin. The en route waypoints appear to match real flightplans, SID and STAR are not clearly realistic.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! URL !! Content !! Type&lt;br /&gt;
|-&lt;br /&gt;
| http://www.faa.gov/library/manuals/aviation/instrument_flying_handbook/ || FAA Instrument Flying Handbook || PDF Document - Individual chapters only &lt;br /&gt;
|-&lt;br /&gt;
| http://www.faa.gov/library/manuals/aviation/instrument_procedures_handbook/ || FAA Instrument Flying Procedures || PDF Document - Individual chapters and whole book&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These two pages contain training material from the FAA. Browser further from those pages to find other useful material that teaches you how to fly and use the references provided here.&lt;br /&gt;
&lt;br /&gt;
=== Approach Plates ===&lt;br /&gt;
&lt;br /&gt;
==== United States ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! URL !! Content !! Type&lt;br /&gt;
|-&lt;br /&gt;
| http://aeronav.faa.gov/index.asp?xml=aeronav/applications/d_tpp || Approach Plates || PDF, vectorized&lt;br /&gt;
|-&lt;br /&gt;
| http://www.airnav.com/airports/ || Approach Plates || PDF, vectorized&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The FAA provides its information as part of public domain. The above page is the entry point to their database of ''Terminal Procedures''. You can obtain airport specific information per state and FAA- or ICAO-Airport identifier.&lt;br /&gt;
Airnav is a nother provider which offers about the same service in a slightly more accessible manner.&lt;br /&gt;
&lt;br /&gt;
=== SIDs and STARs ===&lt;br /&gt;
&lt;br /&gt;
==== United States ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! URL !! Content !! Type&lt;br /&gt;
|-&lt;br /&gt;
| http://aeronav.faa.gov/index.asp?xml=aeronav/applications/d_tpp || SIDs &amp;amp; STARs || PDF, vectorized&lt;br /&gt;
|-&lt;br /&gt;
| http://www.airnav.com/airports/ || SIDs &amp;amp; STARs || PDF, vectorized&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The FAA provides its information as part of public domain. The above page is the entry point to their database of ''Terminal Procedures''. You can obtain airport specific information per state and FAA- or ICAO-Airport identifier.&lt;br /&gt;
Airnav is a nother provider which offers about the same service in a slightly more accessible manner.&lt;br /&gt;
&lt;br /&gt;
=== NavAids ===&lt;br /&gt;
&lt;br /&gt;
==== United States ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! URL !! Content !! Type&lt;br /&gt;
|-&lt;br /&gt;
| http://www.airnav.com/navaids/ || NavAid Specifications || Plaintext&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Navaids can be looked up by identifier on ''Airnav'' to obtain a complete datasheet of information about them.&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[Aeronautical information publication]]&lt;br /&gt;
* [[Getting aeronautical charts]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Aviation]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Aeronautical_information_publication&amp;diff=146688</id>
		<title>Aeronautical information publication</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Aeronautical_information_publication&amp;diff=146688"/>
		<updated>2026-07-29T06:18:22Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* External links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''Aeronautical Information Publication''' ('''AIP''') contains most of the information about the regulations, air ways, navigation aids etc. in a nations air space. The AIP is published by that nations air authority or agency at regular intervals and together with notices to air men (NOTAMs) it contains all the information needed, except for the weather, for flying in that airspace unless it states otherwise.&lt;br /&gt;
&lt;br /&gt;
== Main contents ==&lt;br /&gt;
The AIP consists of three main parts, ''General'' (''GEN''), containing some general information, ''En route'' (''ENR''), containing information about the airspace, air routes and navigation aids, and ''Aerodromes'' (''AD''), with information about the airports, airfields and helipads. Sometimes there is also amendments and supplements, and  the AIP can also point to other sources for example for aerodrome information and charts.&lt;br /&gt;
&lt;br /&gt;
=== GEN ===&lt;br /&gt;
* '''GEN 1.''' National aviation authorities, national regulations regarding entry and exit of the air space and required instrumentation and radios&lt;br /&gt;
* '''GEN 2.''' Measuring systems, time zones, abbreviations, map legends, lists with positions of fixes and navigation aids, conversion and sunrise/sunset tables&lt;br /&gt;
* '''GEN 3.''' Aeronautical information, air traffic communication and meteorological services, where to get maps and search and rescue routines&lt;br /&gt;
* '''GEN 4.''' Fees and charges&lt;br /&gt;
&lt;br /&gt;
An important section is GEN 1.7, ''Differences from ICAO Standards, recommended practices and procedures'', as there can sometimes be important differences between countries.&lt;br /&gt;
&lt;br /&gt;
=== ENR ===&lt;br /&gt;
* '''ENR 1.''' Instrument and visual flight rules (IFR and VFR), altimeter setting procedures, flight planning and filing of flight plans, and time zones&lt;br /&gt;
* '''ENR 2.''' ATC air spaces&lt;br /&gt;
* '''ENR 3.''' Air routes&lt;br /&gt;
* '''ENR 4.''' Navigation aids&lt;br /&gt;
* '''ENR 5.''' Prohibited, restricted and dangerous areas, military training areas, bird migration areas and other hazards&lt;br /&gt;
&lt;br /&gt;
=== AD ===&lt;br /&gt;
* '''AD 1.''' Everything about airports, taxi procedures, traffic patterns, lightening etc.&lt;br /&gt;
* '''AD 2.''' Listings of public airports, airfields and helipads together with charts and other information&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[Getting aeronautical charts]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url = http://gis.icao.int/gallery/ONLINE_AIPs.html&lt;br /&gt;
 | title = State AIPs on the Internet&lt;br /&gt;
 | publisher = ICAO&lt;br /&gt;
 }}&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url = http://www.ead.eurocontrol.int/eadcms/eadsite/index.php.html&lt;br /&gt;
 | title = European AIS Database - EAD&lt;br /&gt;
 | publisher = EUROCONTROL&lt;br /&gt;
 }} Requires (free) registration.&lt;br /&gt;
&lt;br /&gt;
=== Individual AIPs accessible on the net ===&lt;br /&gt;
* [http://ais.anac.gov.ar/aip Argentina]&lt;br /&gt;
* [http://www.aisweb.aer.mil.br/index.cfm?i=home&amp;amp;lingua=en Brazil]&lt;br /&gt;
* [http://www.aerocivil.gov.co/AIS/AIP/Paginas/Inicio.aspx Colombia]&lt;br /&gt;
* [http://www.slv.dk/Dokumenter/dscgi/ds.py/View/Collection-94 Denmark] (also includes Greenland and the Faeroe Islands)&lt;br /&gt;
* [http://www.sia.aviation-civile.gouv.fr/aip/enligne/fr/home.htm France]&lt;br /&gt;
* [http://www.ais.fi/ais/eaip/en/ Finland]&lt;br /&gt;
* [http://www.enav.it/portal/page/portal/PortaleENAV/Home/AIP Italy] (free registration needed)&lt;br /&gt;
* [http://www.ais-netherlands.nl/aim/index.html the Netherlands]&lt;br /&gt;
* [http://aviadocs.net/AIP1404/html/eng.htm Russian Federation]&lt;br /&gt;
* [http://www.aena.es/csee/Satellite/navegacion-aerea/en/Page/1078418725020/ Spain]&lt;br /&gt;
* [http://www.lfv.se/en/FPC/IAIP/ Sweden]&lt;br /&gt;
* [http://www.nats-uk.ead-it.com/public/index.php%3Foption=com_content&amp;amp;task=blogcategory&amp;amp;id=165&amp;amp;Itemid=3.html United Kingdom]&lt;br /&gt;
&lt;br /&gt;
[[Category:Aviation]]&lt;br /&gt;
&lt;br /&gt;
[[es:Publicación de información aeronáutica]]&lt;br /&gt;
[[fr:Aeronautical information publication]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Aeronautical_information_publication&amp;diff=146687</id>
		<title>Aeronautical information publication</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Aeronautical_information_publication&amp;diff=146687"/>
		<updated>2026-07-29T06:18:08Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* External links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''Aeronautical Information Publication''' ('''AIP''') contains most of the information about the regulations, air ways, navigation aids etc. in a nations air space. The AIP is published by that nations air authority or agency at regular intervals and together with notices to air men (NOTAMs) it contains all the information needed, except for the weather, for flying in that airspace unless it states otherwise.&lt;br /&gt;
&lt;br /&gt;
== Main contents ==&lt;br /&gt;
The AIP consists of three main parts, ''General'' (''GEN''), containing some general information, ''En route'' (''ENR''), containing information about the airspace, air routes and navigation aids, and ''Aerodromes'' (''AD''), with information about the airports, airfields and helipads. Sometimes there is also amendments and supplements, and  the AIP can also point to other sources for example for aerodrome information and charts.&lt;br /&gt;
&lt;br /&gt;
=== GEN ===&lt;br /&gt;
* '''GEN 1.''' National aviation authorities, national regulations regarding entry and exit of the air space and required instrumentation and radios&lt;br /&gt;
* '''GEN 2.''' Measuring systems, time zones, abbreviations, map legends, lists with positions of fixes and navigation aids, conversion and sunrise/sunset tables&lt;br /&gt;
* '''GEN 3.''' Aeronautical information, air traffic communication and meteorological services, where to get maps and search and rescue routines&lt;br /&gt;
* '''GEN 4.''' Fees and charges&lt;br /&gt;
&lt;br /&gt;
An important section is GEN 1.7, ''Differences from ICAO Standards, recommended practices and procedures'', as there can sometimes be important differences between countries.&lt;br /&gt;
&lt;br /&gt;
=== ENR ===&lt;br /&gt;
* '''ENR 1.''' Instrument and visual flight rules (IFR and VFR), altimeter setting procedures, flight planning and filing of flight plans, and time zones&lt;br /&gt;
* '''ENR 2.''' ATC air spaces&lt;br /&gt;
* '''ENR 3.''' Air routes&lt;br /&gt;
* '''ENR 4.''' Navigation aids&lt;br /&gt;
* '''ENR 5.''' Prohibited, restricted and dangerous areas, military training areas, bird migration areas and other hazards&lt;br /&gt;
&lt;br /&gt;
=== AD ===&lt;br /&gt;
* '''AD 1.''' Everything about airports, taxi procedures, traffic patterns, lightening etc.&lt;br /&gt;
* '''AD 2.''' Listings of public airports, airfields and helipads together with charts and other information&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[Getting aeronautical charts]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url = http://gis.icao.int/gallery/ONLINE_AIPs.html&lt;br /&gt;
 | title = State AIPs on the Internet&lt;br /&gt;
 | publisher = ICAO&lt;br /&gt;
 }}&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url = http://www.ead.eurocontrol.int/eadcms/eadsite/index.php.html&lt;br /&gt;
 | title = European AIS Database - EAD&lt;br /&gt;
 | publisher = EUROCONTROL&lt;br /&gt;
 }} Requires (free) registration&lt;br /&gt;
&lt;br /&gt;
=== Individual AIPs accessible on the net ===&lt;br /&gt;
* [http://ais.anac.gov.ar/aip Argentina]&lt;br /&gt;
* [http://www.aisweb.aer.mil.br/index.cfm?i=home&amp;amp;lingua=en Brazil]&lt;br /&gt;
* [http://www.aerocivil.gov.co/AIS/AIP/Paginas/Inicio.aspx Colombia]&lt;br /&gt;
* [http://www.slv.dk/Dokumenter/dscgi/ds.py/View/Collection-94 Denmark] (also includes Greenland and the Faeroe Islands)&lt;br /&gt;
* [http://www.sia.aviation-civile.gouv.fr/aip/enligne/fr/home.htm France]&lt;br /&gt;
* [http://www.ais.fi/ais/eaip/en/ Finland]&lt;br /&gt;
* [http://www.enav.it/portal/page/portal/PortaleENAV/Home/AIP Italy] (free registration needed)&lt;br /&gt;
* [http://www.ais-netherlands.nl/aim/index.html the Netherlands]&lt;br /&gt;
* [http://aviadocs.net/AIP1404/html/eng.htm Russian Federation]&lt;br /&gt;
* [http://www.aena.es/csee/Satellite/navegacion-aerea/en/Page/1078418725020/ Spain]&lt;br /&gt;
* [http://www.lfv.se/en/FPC/IAIP/ Sweden]&lt;br /&gt;
* [http://www.nats-uk.ead-it.com/public/index.php%3Foption=com_content&amp;amp;task=blogcategory&amp;amp;id=165&amp;amp;Itemid=3.html United Kingdom]&lt;br /&gt;
&lt;br /&gt;
[[Category:Aviation]]&lt;br /&gt;
&lt;br /&gt;
[[es:Publicación de información aeronáutica]]&lt;br /&gt;
[[fr:Aeronautical information publication]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Aeronautical_information_publication&amp;diff=146686</id>
		<title>Aeronautical information publication</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Aeronautical_information_publication&amp;diff=146686"/>
		<updated>2026-07-29T06:17:38Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Related content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''Aeronautical Information Publication''' ('''AIP''') contains most of the information about the regulations, air ways, navigation aids etc. in a nations air space. The AIP is published by that nations air authority or agency at regular intervals and together with notices to air men (NOTAMs) it contains all the information needed, except for the weather, for flying in that airspace unless it states otherwise.&lt;br /&gt;
&lt;br /&gt;
== Main contents ==&lt;br /&gt;
The AIP consists of three main parts, ''General'' (''GEN''), containing some general information, ''En route'' (''ENR''), containing information about the airspace, air routes and navigation aids, and ''Aerodromes'' (''AD''), with information about the airports, airfields and helipads. Sometimes there is also amendments and supplements, and  the AIP can also point to other sources for example for aerodrome information and charts.&lt;br /&gt;
&lt;br /&gt;
=== GEN ===&lt;br /&gt;
* '''GEN 1.''' National aviation authorities, national regulations regarding entry and exit of the air space and required instrumentation and radios&lt;br /&gt;
* '''GEN 2.''' Measuring systems, time zones, abbreviations, map legends, lists with positions of fixes and navigation aids, conversion and sunrise/sunset tables&lt;br /&gt;
* '''GEN 3.''' Aeronautical information, air traffic communication and meteorological services, where to get maps and search and rescue routines&lt;br /&gt;
* '''GEN 4.''' Fees and charges&lt;br /&gt;
&lt;br /&gt;
An important section is GEN 1.7, ''Differences from ICAO Standards, recommended practices and procedures'', as there can sometimes be important differences between countries.&lt;br /&gt;
&lt;br /&gt;
=== ENR ===&lt;br /&gt;
* '''ENR 1.''' Instrument and visual flight rules (IFR and VFR), altimeter setting procedures, flight planning and filing of flight plans, and time zones&lt;br /&gt;
* '''ENR 2.''' ATC air spaces&lt;br /&gt;
* '''ENR 3.''' Air routes&lt;br /&gt;
* '''ENR 4.''' Navigation aids&lt;br /&gt;
* '''ENR 5.''' Prohibited, restricted and dangerous areas, military training areas, bird migration areas and other hazards&lt;br /&gt;
&lt;br /&gt;
=== AD ===&lt;br /&gt;
* '''AD 1.''' Everything about airports, taxi procedures, traffic patterns, lightening etc.&lt;br /&gt;
* '''AD 2.''' Listings of public airports, airfields and helipads together with charts and other information&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[Getting aeronautical charts]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url = http://gis.icao.int/gallery/ONLINE_AIPs.html&lt;br /&gt;
 | title = State AIPs on the Internet&lt;br /&gt;
 | publisher = ICAO&lt;br /&gt;
 | accessdate = 27 August 2014&lt;br /&gt;
 }}&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url = http://www.ead.eurocontrol.int/eadcms/eadsite/index.php.html&lt;br /&gt;
 | title = European AIS Database - EAD&lt;br /&gt;
 | publisher = EUROCONTROL&lt;br /&gt;
 | accessdate = 27 August 2014&lt;br /&gt;
 }} Requires (free) registration&lt;br /&gt;
&lt;br /&gt;
=== Individual AIPs accessible on the net ===&lt;br /&gt;
* [http://ais.anac.gov.ar/aip Argentina]&lt;br /&gt;
* [http://www.aisweb.aer.mil.br/index.cfm?i=home&amp;amp;lingua=en Brazil]&lt;br /&gt;
* [http://www.aerocivil.gov.co/AIS/AIP/Paginas/Inicio.aspx Colombia]&lt;br /&gt;
* [http://www.slv.dk/Dokumenter/dscgi/ds.py/View/Collection-94 Denmark] (also includes Greenland and the Faeroe Islands)&lt;br /&gt;
* [http://www.sia.aviation-civile.gouv.fr/aip/enligne/fr/home.htm France]&lt;br /&gt;
* [http://www.ais.fi/ais/eaip/en/ Finland]&lt;br /&gt;
* [http://www.enav.it/portal/page/portal/PortaleENAV/Home/AIP Italy] (free registration needed)&lt;br /&gt;
* [http://www.ais-netherlands.nl/aim/index.html the Netherlands]&lt;br /&gt;
* [http://aviadocs.net/AIP1404/html/eng.htm Russian Federation]&lt;br /&gt;
* [http://www.aena.es/csee/Satellite/navegacion-aerea/en/Page/1078418725020/ Spain]&lt;br /&gt;
* [http://www.lfv.se/en/FPC/IAIP/ Sweden]&lt;br /&gt;
* [http://www.nats-uk.ead-it.com/public/index.php%3Foption=com_content&amp;amp;task=blogcategory&amp;amp;id=165&amp;amp;Itemid=3.html United Kingdom]&lt;br /&gt;
&lt;br /&gt;
[[Category:Aviation]]&lt;br /&gt;
&lt;br /&gt;
[[es:Publicación de información aeronáutica]]&lt;br /&gt;
[[fr:Aeronautical information publication]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Garmin_GPSMap_196&amp;diff=146685</id>
		<title>Garmin GPSMap 196</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Garmin_GPSMap_196&amp;diff=146685"/>
		<updated>2026-07-29T05:54:52Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Canvas Avionics}}&lt;br /&gt;
The Garmin GPSMAP 196 is a portable GPS receiver with a 4.5‑inch grayscale display. It includes a built‑in basemap and supports additional map data via data cards. The device provides waypoint and route management, an aviation mode with direct‑to navigation and airport search, and an E6B flight calculator. It runs on batteries and uses a button‑based interface.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
First, press the red power button to turn on the device.&lt;br /&gt;
&lt;br /&gt;
Press the Page key to switch pages, press the Quit key to go back to the previous level, and press the Menu key to access the menu and settings. You can use the arrow keys to select buttons. Press the In and Out keys to zoom in and out on the map.&lt;br /&gt;
&lt;br /&gt;
You can press the power button twice to turn on the screen backlight when turning on.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
=== Design ===&lt;br /&gt;
The basic idea is to use concepts from the Avidyne/Entegra (extra500) code to encapsulate the most important common MFD components, such as having&lt;br /&gt;
a single MFDisplay class that contains helpers for registering '''buttons''', mapping those to '''modes''', and mapping modes to '''Pages''', where each page may contain an arbitrary number of '''PageElements'''. '''Instruments''' (animated SVGs) would then be registered as PageElements and animated through properties and transformations.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
var MFDisplay = {};&lt;br /&gt;
var MFDButton = {}&lt;br /&gt;
var MFDMode = {}&lt;br /&gt;
var MFDPage = {};&lt;br /&gt;
var MFDPageElement = {};&lt;br /&gt;
&lt;br /&gt;
var GPSMap196 = MFDDisplay.new();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Instruments ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-svg-instruments-new.png|thumb|GPSMap196 Instrument page (SVG driven), via [[Canvas]] and [[Nasal]]]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-canvas-panel-page.png|thumb|F-JJTH has updated the SVG file implementing the panel page for the [[Garmin GPSMap 196]]]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-svg-instruments.png|thumb|Protoyping the G196 instrument display using wikimedia/commons SVG images and the unmodified Canvas SVG parser as per [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23047#p209470]]]&lt;br /&gt;
&lt;br /&gt;
It would make sense to look up each element ID and animate those by associating a Nasal timer with a callback.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
var SVGElement = {};&lt;br /&gt;
var SVGInstrument = {};&lt;br /&gt;
&lt;br /&gt;
# look up by ID&lt;br /&gt;
# set up animation callback via timer/listener&lt;br /&gt;
# in a foreach loop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing &amp;amp; Patches ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-MapStructure.png|thumb|F-JJTH's GPSMap196 in the process of being ported to [[Canvas]] using Philosopher's MapStructure framework for mapping (LOD/scaling not applied here, but available) - see [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23047] ]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-MapStructure-with-styling-applied.png|thumb|MapStructure layers integrated in GPSMap196 with some custom styling applied]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-mapstructure-layers-ratio.png|thumb|GPSMap196 with [[MapStructure]] layers (currently exhibiting some scaling/LOD issues due to hard-coded assumptions in some of the layers)]]&lt;br /&gt;
&lt;br /&gt;
Here's the diff for testing the modified instrument, use &amp;quot;git apply&amp;quot; to apply the patch (in $FG_ROOT) and then start fgfs with '''--aircraft=DR400-dauphin'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
diff --git a/Aircraft/DR400-dauphin/Models/Interior/panel.xml b/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
index b9d9551..4b5e42d 100644&lt;br /&gt;
--- a/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
+++ b/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
@@ -10,6 +10,18 @@&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
+  &amp;lt;model&amp;gt;&lt;br /&gt;
+    &amp;lt;path&amp;gt;Aircraft/Instruments-3d/GPSmap196/gpsmap196.xml&amp;lt;/path&amp;gt;&lt;br /&gt;
+    &amp;lt;offsets&amp;gt;&lt;br /&gt;
+      &amp;lt;x-m&amp;gt;  0.60 &amp;lt;/x-m&amp;gt;&lt;br /&gt;
+      &amp;lt;y-m&amp;gt; -0.202 &amp;lt;/y-m&amp;gt;&lt;br /&gt;
+      &amp;lt;z-m&amp;gt;  0.28 &amp;lt;/z-m&amp;gt;&lt;br /&gt;
+      &amp;lt;roll-deg&amp;gt;    0.0 &amp;lt;/roll-deg&amp;gt;&lt;br /&gt;
+      &amp;lt;pitch-deg&amp;gt; -5.0 &amp;lt;/pitch-deg&amp;gt;&lt;br /&gt;
+      &amp;lt;heading-deg&amp;gt; 0.0 &amp;lt;/heading-deg&amp;gt;&lt;br /&gt;
+    &amp;lt;/offsets&amp;gt;&lt;br /&gt;
+  &amp;lt;/model&amp;gt;&lt;br /&gt;
+&lt;br /&gt;
   &amp;lt;!-- Based on http://www.aeroclub-montpellier.com/flotte/F-GOZZ/Tableau.jpg --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;!-- ################################################################--&amp;gt;&lt;br /&gt;
diff --git a/Aircraft/DR400-dauphin/dr400-dauphin-set.xml b/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
index 66494b9..5641243 100644&lt;br /&gt;
--- a/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
+++ b/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
@@ -390,6 +390,9 @@&lt;br /&gt;
   &amp;lt;/instrumentation&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;nasal&amp;gt;&lt;br /&gt;
+    &amp;lt;gpsmap196&amp;gt;&lt;br /&gt;
+      &amp;lt;file&amp;gt;Aircraft/Instruments-3d/GPSmap196/gpsmap196.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
+    &amp;lt;/gpsmap196&amp;gt;&lt;br /&gt;
     &amp;lt;dr400&amp;gt;&lt;br /&gt;
       &amp;lt;file&amp;gt;Aircraft/DR400-dauphin/Nasal/physics.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
       &amp;lt;file&amp;gt;Aircraft/DR400-dauphin/Nasal/light.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Forum topics ===&lt;br /&gt;
* {{forum link|t=23047|title=Garmin GPSmap196}} (May 2012-June 2014) - Regarding re-implementing the instrument to use Canvas&lt;br /&gt;
* {{forum link|t=15433|title=The Garmin 196}} (February 2012-August 2015) - Original development topic&lt;br /&gt;
&lt;br /&gt;
=== Source code ===&lt;br /&gt;
* {{fgdata source|path=Aircraft/Instruments-3d/GPSmap196}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = http://www.jpcheney.org/article.php3?id_article=326#&lt;br /&gt;
 | title           = Garmin 196 - Un nouvel instrument, le Garmin 196&lt;br /&gt;
 | author          = JeeP&lt;br /&gt;
 | date            = January 19, 2012&lt;br /&gt;
 | language        = French&lt;br /&gt;
 | accessdate      = April 29, 2020&lt;br /&gt;
 }}&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = https://equipe-flightgear.forumactif.com/t865-garmin-196&lt;br /&gt;
 | title           = Garmin 196&lt;br /&gt;
 | publisher       = La patrouille de france Flightgear(PAF)&lt;br /&gt;
 | language        = French&lt;br /&gt;
 | accessdate      = April 29, 2020&lt;br /&gt;
 }} (January 2012-April 2014) - Development topic on the forum of the French community.&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = https://static.garmin.com/pumac/GPSMAP196_PilotsGuide.pdf&lt;br /&gt;
 | title           = Garmin GPSMAP 196 Pilot's Guide&lt;br /&gt;
 | date            = August 2005&lt;br /&gt;
 | publisher       = Garmin Ltd&lt;br /&gt;
 | format          = PDF&lt;br /&gt;
 | accessdate      = November 30, 2022&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft instruments]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Garmin_GPSMap_196&amp;diff=146684</id>
		<title>Garmin GPSMap 196</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Garmin_GPSMap_196&amp;diff=146684"/>
		<updated>2026-07-29T05:53:05Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Canvas Avionics}}&lt;br /&gt;
The Garmin GPSMAP 196 is a portable GPS receiver with a 4.5‑inch grayscale display. It includes a built‑in basemap and supports additional map data via data cards. The device provides waypoint and route management, an aviation mode with direct‑to navigation and airport search, and an E6B flight calculator. It runs on batteries and uses a button‑based interface.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
First, press the red power button to turn on the device.&lt;br /&gt;
&lt;br /&gt;
Press the Page key to switch pages, press the Quit key to go back to the previous level, and press the Menu key to access the menu and settings. You can use the arrow keys to select buttons. Press the In and Out keys to zoom in and out on the map.&lt;br /&gt;
&lt;br /&gt;
You can press the power button twice to turn on the screen backlight.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
=== Design ===&lt;br /&gt;
The basic idea is to use concepts from the Avidyne/Entegra (extra500) code to encapsulate the most important common MFD components, such as having&lt;br /&gt;
a single MFDisplay class that contains helpers for registering '''buttons''', mapping those to '''modes''', and mapping modes to '''Pages''', where each page may contain an arbitrary number of '''PageElements'''. '''Instruments''' (animated SVGs) would then be registered as PageElements and animated through properties and transformations.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
var MFDisplay = {};&lt;br /&gt;
var MFDButton = {}&lt;br /&gt;
var MFDMode = {}&lt;br /&gt;
var MFDPage = {};&lt;br /&gt;
var MFDPageElement = {};&lt;br /&gt;
&lt;br /&gt;
var GPSMap196 = MFDDisplay.new();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Instruments ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-svg-instruments-new.png|thumb|GPSMap196 Instrument page (SVG driven), via [[Canvas]] and [[Nasal]]]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-canvas-panel-page.png|thumb|F-JJTH has updated the SVG file implementing the panel page for the [[Garmin GPSMap 196]]]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-svg-instruments.png|thumb|Protoyping the G196 instrument display using wikimedia/commons SVG images and the unmodified Canvas SVG parser as per [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23047#p209470]]]&lt;br /&gt;
&lt;br /&gt;
It would make sense to look up each element ID and animate those by associating a Nasal timer with a callback.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
var SVGElement = {};&lt;br /&gt;
var SVGInstrument = {};&lt;br /&gt;
&lt;br /&gt;
# look up by ID&lt;br /&gt;
# set up animation callback via timer/listener&lt;br /&gt;
# in a foreach loop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing &amp;amp; Patches ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-MapStructure.png|thumb|F-JJTH's GPSMap196 in the process of being ported to [[Canvas]] using Philosopher's MapStructure framework for mapping (LOD/scaling not applied here, but available) - see [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23047] ]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-MapStructure-with-styling-applied.png|thumb|MapStructure layers integrated in GPSMap196 with some custom styling applied]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-mapstructure-layers-ratio.png|thumb|GPSMap196 with [[MapStructure]] layers (currently exhibiting some scaling/LOD issues due to hard-coded assumptions in some of the layers)]]&lt;br /&gt;
&lt;br /&gt;
Here's the diff for testing the modified instrument, use &amp;quot;git apply&amp;quot; to apply the patch (in $FG_ROOT) and then start fgfs with '''--aircraft=DR400-dauphin'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
diff --git a/Aircraft/DR400-dauphin/Models/Interior/panel.xml b/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
index b9d9551..4b5e42d 100644&lt;br /&gt;
--- a/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
+++ b/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
@@ -10,6 +10,18 @@&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
+  &amp;lt;model&amp;gt;&lt;br /&gt;
+    &amp;lt;path&amp;gt;Aircraft/Instruments-3d/GPSmap196/gpsmap196.xml&amp;lt;/path&amp;gt;&lt;br /&gt;
+    &amp;lt;offsets&amp;gt;&lt;br /&gt;
+      &amp;lt;x-m&amp;gt;  0.60 &amp;lt;/x-m&amp;gt;&lt;br /&gt;
+      &amp;lt;y-m&amp;gt; -0.202 &amp;lt;/y-m&amp;gt;&lt;br /&gt;
+      &amp;lt;z-m&amp;gt;  0.28 &amp;lt;/z-m&amp;gt;&lt;br /&gt;
+      &amp;lt;roll-deg&amp;gt;    0.0 &amp;lt;/roll-deg&amp;gt;&lt;br /&gt;
+      &amp;lt;pitch-deg&amp;gt; -5.0 &amp;lt;/pitch-deg&amp;gt;&lt;br /&gt;
+      &amp;lt;heading-deg&amp;gt; 0.0 &amp;lt;/heading-deg&amp;gt;&lt;br /&gt;
+    &amp;lt;/offsets&amp;gt;&lt;br /&gt;
+  &amp;lt;/model&amp;gt;&lt;br /&gt;
+&lt;br /&gt;
   &amp;lt;!-- Based on http://www.aeroclub-montpellier.com/flotte/F-GOZZ/Tableau.jpg --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;!-- ################################################################--&amp;gt;&lt;br /&gt;
diff --git a/Aircraft/DR400-dauphin/dr400-dauphin-set.xml b/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
index 66494b9..5641243 100644&lt;br /&gt;
--- a/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
+++ b/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
@@ -390,6 +390,9 @@&lt;br /&gt;
   &amp;lt;/instrumentation&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;nasal&amp;gt;&lt;br /&gt;
+    &amp;lt;gpsmap196&amp;gt;&lt;br /&gt;
+      &amp;lt;file&amp;gt;Aircraft/Instruments-3d/GPSmap196/gpsmap196.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
+    &amp;lt;/gpsmap196&amp;gt;&lt;br /&gt;
     &amp;lt;dr400&amp;gt;&lt;br /&gt;
       &amp;lt;file&amp;gt;Aircraft/DR400-dauphin/Nasal/physics.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
       &amp;lt;file&amp;gt;Aircraft/DR400-dauphin/Nasal/light.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Forum topics ===&lt;br /&gt;
* {{forum link|t=23047|title=Garmin GPSmap196}} (May 2012-June 2014) - Regarding re-implementing the instrument to use Canvas&lt;br /&gt;
* {{forum link|t=15433|title=The Garmin 196}} (February 2012-August 2015) - Original development topic&lt;br /&gt;
&lt;br /&gt;
=== Source code ===&lt;br /&gt;
* {{fgdata source|path=Aircraft/Instruments-3d/GPSmap196}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = http://www.jpcheney.org/article.php3?id_article=326#&lt;br /&gt;
 | title           = Garmin 196 - Un nouvel instrument, le Garmin 196&lt;br /&gt;
 | author          = JeeP&lt;br /&gt;
 | date            = January 19, 2012&lt;br /&gt;
 | language        = French&lt;br /&gt;
 | accessdate      = April 29, 2020&lt;br /&gt;
 }}&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = https://equipe-flightgear.forumactif.com/t865-garmin-196&lt;br /&gt;
 | title           = Garmin 196&lt;br /&gt;
 | publisher       = La patrouille de france Flightgear(PAF)&lt;br /&gt;
 | language        = French&lt;br /&gt;
 | accessdate      = April 29, 2020&lt;br /&gt;
 }} (January 2012-April 2014) - Development topic on the forum of the French community.&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = https://static.garmin.com/pumac/GPSMAP196_PilotsGuide.pdf&lt;br /&gt;
 | title           = Garmin GPSMAP 196 Pilot's Guide&lt;br /&gt;
 | date            = August 2005&lt;br /&gt;
 | publisher       = Garmin Ltd&lt;br /&gt;
 | format          = PDF&lt;br /&gt;
 | accessdate      = November 30, 2022&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft instruments]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Garmin_GPSMap_196&amp;diff=146683</id>
		<title>Garmin GPSMap 196</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Garmin_GPSMap_196&amp;diff=146683"/>
		<updated>2026-07-29T05:47:33Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Canvas Avionics}}&lt;br /&gt;
The Garmin GPSMAP 196 is a portable GPS receiver with a 4.5‑inch grayscale display. It includes a built‑in basemap and supports additional map data via data cards. The device provides waypoint and route management, an aviation mode with direct‑to navigation and airport search, and an E6B flight calculator. It runs on batteries and uses a button‑based interface.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
First, press the red power button to turn on the device.&lt;br /&gt;
&lt;br /&gt;
Press the Page key to switch pages, press the Quit key to go back to the previous level, and press the Menu key to access the menu and settings. You can use the arrow keys to select buttons.&lt;br /&gt;
&lt;br /&gt;
Press the power button twice to turn on the screen backlight.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
=== Design ===&lt;br /&gt;
The basic idea is to use concepts from the Avidyne/Entegra (extra500) code to encapsulate the most important common MFD components, such as having&lt;br /&gt;
a single MFDisplay class that contains helpers for registering '''buttons''', mapping those to '''modes''', and mapping modes to '''Pages''', where each page may contain an arbitrary number of '''PageElements'''. '''Instruments''' (animated SVGs) would then be registered as PageElements and animated through properties and transformations.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
var MFDisplay = {};&lt;br /&gt;
var MFDButton = {}&lt;br /&gt;
var MFDMode = {}&lt;br /&gt;
var MFDPage = {};&lt;br /&gt;
var MFDPageElement = {};&lt;br /&gt;
&lt;br /&gt;
var GPSMap196 = MFDDisplay.new();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Instruments ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-svg-instruments-new.png|thumb|GPSMap196 Instrument page (SVG driven), via [[Canvas]] and [[Nasal]]]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-canvas-panel-page.png|thumb|F-JJTH has updated the SVG file implementing the panel page for the [[Garmin GPSMap 196]]]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-svg-instruments.png|thumb|Protoyping the G196 instrument display using wikimedia/commons SVG images and the unmodified Canvas SVG parser as per [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23047#p209470]]]&lt;br /&gt;
&lt;br /&gt;
It would make sense to look up each element ID and animate those by associating a Nasal timer with a callback.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
var SVGElement = {};&lt;br /&gt;
var SVGInstrument = {};&lt;br /&gt;
&lt;br /&gt;
# look up by ID&lt;br /&gt;
# set up animation callback via timer/listener&lt;br /&gt;
# in a foreach loop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing &amp;amp; Patches ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-MapStructure.png|thumb|F-JJTH's GPSMap196 in the process of being ported to [[Canvas]] using Philosopher's MapStructure framework for mapping (LOD/scaling not applied here, but available) - see [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23047] ]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-MapStructure-with-styling-applied.png|thumb|MapStructure layers integrated in GPSMap196 with some custom styling applied]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-mapstructure-layers-ratio.png|thumb|GPSMap196 with [[MapStructure]] layers (currently exhibiting some scaling/LOD issues due to hard-coded assumptions in some of the layers)]]&lt;br /&gt;
&lt;br /&gt;
Here's the diff for testing the modified instrument, use &amp;quot;git apply&amp;quot; to apply the patch (in $FG_ROOT) and then start fgfs with '''--aircraft=DR400-dauphin'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
diff --git a/Aircraft/DR400-dauphin/Models/Interior/panel.xml b/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
index b9d9551..4b5e42d 100644&lt;br /&gt;
--- a/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
+++ b/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
@@ -10,6 +10,18 @@&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
+  &amp;lt;model&amp;gt;&lt;br /&gt;
+    &amp;lt;path&amp;gt;Aircraft/Instruments-3d/GPSmap196/gpsmap196.xml&amp;lt;/path&amp;gt;&lt;br /&gt;
+    &amp;lt;offsets&amp;gt;&lt;br /&gt;
+      &amp;lt;x-m&amp;gt;  0.60 &amp;lt;/x-m&amp;gt;&lt;br /&gt;
+      &amp;lt;y-m&amp;gt; -0.202 &amp;lt;/y-m&amp;gt;&lt;br /&gt;
+      &amp;lt;z-m&amp;gt;  0.28 &amp;lt;/z-m&amp;gt;&lt;br /&gt;
+      &amp;lt;roll-deg&amp;gt;    0.0 &amp;lt;/roll-deg&amp;gt;&lt;br /&gt;
+      &amp;lt;pitch-deg&amp;gt; -5.0 &amp;lt;/pitch-deg&amp;gt;&lt;br /&gt;
+      &amp;lt;heading-deg&amp;gt; 0.0 &amp;lt;/heading-deg&amp;gt;&lt;br /&gt;
+    &amp;lt;/offsets&amp;gt;&lt;br /&gt;
+  &amp;lt;/model&amp;gt;&lt;br /&gt;
+&lt;br /&gt;
   &amp;lt;!-- Based on http://www.aeroclub-montpellier.com/flotte/F-GOZZ/Tableau.jpg --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;!-- ################################################################--&amp;gt;&lt;br /&gt;
diff --git a/Aircraft/DR400-dauphin/dr400-dauphin-set.xml b/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
index 66494b9..5641243 100644&lt;br /&gt;
--- a/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
+++ b/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
@@ -390,6 +390,9 @@&lt;br /&gt;
   &amp;lt;/instrumentation&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;nasal&amp;gt;&lt;br /&gt;
+    &amp;lt;gpsmap196&amp;gt;&lt;br /&gt;
+      &amp;lt;file&amp;gt;Aircraft/Instruments-3d/GPSmap196/gpsmap196.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
+    &amp;lt;/gpsmap196&amp;gt;&lt;br /&gt;
     &amp;lt;dr400&amp;gt;&lt;br /&gt;
       &amp;lt;file&amp;gt;Aircraft/DR400-dauphin/Nasal/physics.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
       &amp;lt;file&amp;gt;Aircraft/DR400-dauphin/Nasal/light.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Forum topics ===&lt;br /&gt;
* {{forum link|t=23047|title=Garmin GPSmap196}} (May 2012-June 2014) - Regarding re-implementing the instrument to use Canvas&lt;br /&gt;
* {{forum link|t=15433|title=The Garmin 196}} (February 2012-August 2015) - Original development topic&lt;br /&gt;
&lt;br /&gt;
=== Source code ===&lt;br /&gt;
* {{fgdata source|path=Aircraft/Instruments-3d/GPSmap196}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = http://www.jpcheney.org/article.php3?id_article=326#&lt;br /&gt;
 | title           = Garmin 196 - Un nouvel instrument, le Garmin 196&lt;br /&gt;
 | author          = JeeP&lt;br /&gt;
 | date            = January 19, 2012&lt;br /&gt;
 | language        = French&lt;br /&gt;
 | accessdate      = April 29, 2020&lt;br /&gt;
 }}&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = https://equipe-flightgear.forumactif.com/t865-garmin-196&lt;br /&gt;
 | title           = Garmin 196&lt;br /&gt;
 | publisher       = La patrouille de france Flightgear(PAF)&lt;br /&gt;
 | language        = French&lt;br /&gt;
 | accessdate      = April 29, 2020&lt;br /&gt;
 }} (January 2012-April 2014) - Development topic on the forum of the French community.&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = https://static.garmin.com/pumac/GPSMAP196_PilotsGuide.pdf&lt;br /&gt;
 | title           = Garmin GPSMAP 196 Pilot's Guide&lt;br /&gt;
 | date            = August 2005&lt;br /&gt;
 | publisher       = Garmin Ltd&lt;br /&gt;
 | format          = PDF&lt;br /&gt;
 | accessdate      = November 30, 2022&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft instruments]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Garmin_GPSMap_196&amp;diff=146682</id>
		<title>Garmin GPSMap 196</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Garmin_GPSMap_196&amp;diff=146682"/>
		<updated>2026-07-29T05:45:01Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Canvas Avionics}}&lt;br /&gt;
The Garmin GPSMAP 196 is a portable GPS receiver with a 4.5‑inch grayscale display. It includes a built‑in basemap and supports additional map data via data cards. The device provides waypoint and route management, an aviation mode with direct‑to navigation and airport search, and an E6B flight calculator. It runs on batteries and uses a button‑based interface.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
First, press the red power button to turn on the device.&lt;br /&gt;
&lt;br /&gt;
Press the Page key to switch pages, press the Quit key to go back to the previous level, and press the Menu key to access the menu and settings.&lt;br /&gt;
&lt;br /&gt;
You can use the arrow keys to select buttons.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
=== Design ===&lt;br /&gt;
The basic idea is to use concepts from the Avidyne/Entegra (extra500) code to encapsulate the most important common MFD components, such as having&lt;br /&gt;
a single MFDisplay class that contains helpers for registering '''buttons''', mapping those to '''modes''', and mapping modes to '''Pages''', where each page may contain an arbitrary number of '''PageElements'''. '''Instruments''' (animated SVGs) would then be registered as PageElements and animated through properties and transformations.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
var MFDisplay = {};&lt;br /&gt;
var MFDButton = {}&lt;br /&gt;
var MFDMode = {}&lt;br /&gt;
var MFDPage = {};&lt;br /&gt;
var MFDPageElement = {};&lt;br /&gt;
&lt;br /&gt;
var GPSMap196 = MFDDisplay.new();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Instruments ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-svg-instruments-new.png|thumb|GPSMap196 Instrument page (SVG driven), via [[Canvas]] and [[Nasal]]]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-canvas-panel-page.png|thumb|F-JJTH has updated the SVG file implementing the panel page for the [[Garmin GPSMap 196]]]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-svg-instruments.png|thumb|Protoyping the G196 instrument display using wikimedia/commons SVG images and the unmodified Canvas SVG parser as per [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23047#p209470]]]&lt;br /&gt;
&lt;br /&gt;
It would make sense to look up each element ID and animate those by associating a Nasal timer with a callback.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
var SVGElement = {};&lt;br /&gt;
var SVGInstrument = {};&lt;br /&gt;
&lt;br /&gt;
# look up by ID&lt;br /&gt;
# set up animation callback via timer/listener&lt;br /&gt;
# in a foreach loop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing &amp;amp; Patches ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-MapStructure.png|thumb|F-JJTH's GPSMap196 in the process of being ported to [[Canvas]] using Philosopher's MapStructure framework for mapping (LOD/scaling not applied here, but available) - see [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23047] ]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-MapStructure-with-styling-applied.png|thumb|MapStructure layers integrated in GPSMap196 with some custom styling applied]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-mapstructure-layers-ratio.png|thumb|GPSMap196 with [[MapStructure]] layers (currently exhibiting some scaling/LOD issues due to hard-coded assumptions in some of the layers)]]&lt;br /&gt;
&lt;br /&gt;
Here's the diff for testing the modified instrument, use &amp;quot;git apply&amp;quot; to apply the patch (in $FG_ROOT) and then start fgfs with '''--aircraft=DR400-dauphin'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
diff --git a/Aircraft/DR400-dauphin/Models/Interior/panel.xml b/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
index b9d9551..4b5e42d 100644&lt;br /&gt;
--- a/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
+++ b/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
@@ -10,6 +10,18 @@&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
+  &amp;lt;model&amp;gt;&lt;br /&gt;
+    &amp;lt;path&amp;gt;Aircraft/Instruments-3d/GPSmap196/gpsmap196.xml&amp;lt;/path&amp;gt;&lt;br /&gt;
+    &amp;lt;offsets&amp;gt;&lt;br /&gt;
+      &amp;lt;x-m&amp;gt;  0.60 &amp;lt;/x-m&amp;gt;&lt;br /&gt;
+      &amp;lt;y-m&amp;gt; -0.202 &amp;lt;/y-m&amp;gt;&lt;br /&gt;
+      &amp;lt;z-m&amp;gt;  0.28 &amp;lt;/z-m&amp;gt;&lt;br /&gt;
+      &amp;lt;roll-deg&amp;gt;    0.0 &amp;lt;/roll-deg&amp;gt;&lt;br /&gt;
+      &amp;lt;pitch-deg&amp;gt; -5.0 &amp;lt;/pitch-deg&amp;gt;&lt;br /&gt;
+      &amp;lt;heading-deg&amp;gt; 0.0 &amp;lt;/heading-deg&amp;gt;&lt;br /&gt;
+    &amp;lt;/offsets&amp;gt;&lt;br /&gt;
+  &amp;lt;/model&amp;gt;&lt;br /&gt;
+&lt;br /&gt;
   &amp;lt;!-- Based on http://www.aeroclub-montpellier.com/flotte/F-GOZZ/Tableau.jpg --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;!-- ################################################################--&amp;gt;&lt;br /&gt;
diff --git a/Aircraft/DR400-dauphin/dr400-dauphin-set.xml b/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
index 66494b9..5641243 100644&lt;br /&gt;
--- a/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
+++ b/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
@@ -390,6 +390,9 @@&lt;br /&gt;
   &amp;lt;/instrumentation&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;nasal&amp;gt;&lt;br /&gt;
+    &amp;lt;gpsmap196&amp;gt;&lt;br /&gt;
+      &amp;lt;file&amp;gt;Aircraft/Instruments-3d/GPSmap196/gpsmap196.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
+    &amp;lt;/gpsmap196&amp;gt;&lt;br /&gt;
     &amp;lt;dr400&amp;gt;&lt;br /&gt;
       &amp;lt;file&amp;gt;Aircraft/DR400-dauphin/Nasal/physics.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
       &amp;lt;file&amp;gt;Aircraft/DR400-dauphin/Nasal/light.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Forum topics ===&lt;br /&gt;
* {{forum link|t=23047|title=Garmin GPSmap196}} (May 2012-June 2014) - Regarding re-implementing the instrument to use Canvas&lt;br /&gt;
* {{forum link|t=15433|title=The Garmin 196}} (February 2012-August 2015) - Original development topic&lt;br /&gt;
&lt;br /&gt;
=== Source code ===&lt;br /&gt;
* {{fgdata source|path=Aircraft/Instruments-3d/GPSmap196}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = http://www.jpcheney.org/article.php3?id_article=326#&lt;br /&gt;
 | title           = Garmin 196 - Un nouvel instrument, le Garmin 196&lt;br /&gt;
 | author          = JeeP&lt;br /&gt;
 | date            = January 19, 2012&lt;br /&gt;
 | language        = French&lt;br /&gt;
 | accessdate      = April 29, 2020&lt;br /&gt;
 }}&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = https://equipe-flightgear.forumactif.com/t865-garmin-196&lt;br /&gt;
 | title           = Garmin 196&lt;br /&gt;
 | publisher       = La patrouille de france Flightgear(PAF)&lt;br /&gt;
 | language        = French&lt;br /&gt;
 | accessdate      = April 29, 2020&lt;br /&gt;
 }} (January 2012-April 2014) - Development topic on the forum of the French community.&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = https://static.garmin.com/pumac/GPSMAP196_PilotsGuide.pdf&lt;br /&gt;
 | title           = Garmin GPSMAP 196 Pilot's Guide&lt;br /&gt;
 | date            = August 2005&lt;br /&gt;
 | publisher       = Garmin Ltd&lt;br /&gt;
 | format          = PDF&lt;br /&gt;
 | accessdate      = November 30, 2022&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft instruments]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Garmin_GPSMap_196&amp;diff=146681</id>
		<title>Garmin GPSMap 196</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Garmin_GPSMap_196&amp;diff=146681"/>
		<updated>2026-07-29T05:43:24Z</updated>

		<summary type="html">&lt;p&gt;Servo: clean up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Canvas Avionics}}&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
First, press the red power button to turn on the device.&lt;br /&gt;
&lt;br /&gt;
Press the Page key to switch pages, press the Quit key to go back to the previous level, and press the Menu key to access the menu and settings.&lt;br /&gt;
&lt;br /&gt;
You can use the arrow keys to select buttons.&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
=== Design ===&lt;br /&gt;
The basic idea is to use concepts from the Avidyne/Entegra (extra500) code to encapsulate the most important common MFD components, such as having&lt;br /&gt;
a single MFDisplay class that contains helpers for registering '''buttons''', mapping those to '''modes''', and mapping modes to '''Pages''', where each page may contain an arbitrary number of '''PageElements'''. '''Instruments''' (animated SVGs) would then be registered as PageElements and animated through properties and transformations.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
var MFDisplay = {};&lt;br /&gt;
var MFDButton = {}&lt;br /&gt;
var MFDMode = {}&lt;br /&gt;
var MFDPage = {};&lt;br /&gt;
var MFDPageElement = {};&lt;br /&gt;
&lt;br /&gt;
var GPSMap196 = MFDDisplay.new();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Instruments ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-svg-instruments-new.png|thumb|GPSMap196 Instrument page (SVG driven), via [[Canvas]] and [[Nasal]]]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-canvas-panel-page.png|thumb|F-JJTH has updated the SVG file implementing the panel page for the [[Garmin GPSMap 196]]]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-svg-instruments.png|thumb|Protoyping the G196 instrument display using wikimedia/commons SVG images and the unmodified Canvas SVG parser as per [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23047#p209470]]]&lt;br /&gt;
&lt;br /&gt;
It would make sense to look up each element ID and animate those by associating a Nasal timer with a callback.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
var SVGElement = {};&lt;br /&gt;
var SVGInstrument = {};&lt;br /&gt;
&lt;br /&gt;
# look up by ID&lt;br /&gt;
# set up animation callback via timer/listener&lt;br /&gt;
# in a foreach loop&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing &amp;amp; Patches ===&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-MapStructure.png|thumb|F-JJTH's GPSMap196 in the process of being ported to [[Canvas]] using Philosopher's MapStructure framework for mapping (LOD/scaling not applied here, but available) - see [http://forum.flightgear.org/viewtopic.php?f=71&amp;amp;t=23047] ]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-MapStructure-with-styling-applied.png|thumb|MapStructure layers integrated in GPSMap196 with some custom styling applied]]&lt;br /&gt;
&lt;br /&gt;
[[File:Gpsmap196-mapstructure-layers-ratio.png|thumb|GPSMap196 with [[MapStructure]] layers (currently exhibiting some scaling/LOD issues due to hard-coded assumptions in some of the layers)]]&lt;br /&gt;
&lt;br /&gt;
Here's the diff for testing the modified instrument, use &amp;quot;git apply&amp;quot; to apply the patch (in $FG_ROOT) and then start fgfs with '''--aircraft=DR400-dauphin'''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;diff&amp;quot;&amp;gt;&lt;br /&gt;
diff --git a/Aircraft/DR400-dauphin/Models/Interior/panel.xml b/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
index b9d9551..4b5e42d 100644&lt;br /&gt;
--- a/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
+++ b/Aircraft/DR400-dauphin/Models/Interior/panel.xml&lt;br /&gt;
@@ -10,6 +10,18 @@&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;PropertyList&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
+  &amp;lt;model&amp;gt;&lt;br /&gt;
+    &amp;lt;path&amp;gt;Aircraft/Instruments-3d/GPSmap196/gpsmap196.xml&amp;lt;/path&amp;gt;&lt;br /&gt;
+    &amp;lt;offsets&amp;gt;&lt;br /&gt;
+      &amp;lt;x-m&amp;gt;  0.60 &amp;lt;/x-m&amp;gt;&lt;br /&gt;
+      &amp;lt;y-m&amp;gt; -0.202 &amp;lt;/y-m&amp;gt;&lt;br /&gt;
+      &amp;lt;z-m&amp;gt;  0.28 &amp;lt;/z-m&amp;gt;&lt;br /&gt;
+      &amp;lt;roll-deg&amp;gt;    0.0 &amp;lt;/roll-deg&amp;gt;&lt;br /&gt;
+      &amp;lt;pitch-deg&amp;gt; -5.0 &amp;lt;/pitch-deg&amp;gt;&lt;br /&gt;
+      &amp;lt;heading-deg&amp;gt; 0.0 &amp;lt;/heading-deg&amp;gt;&lt;br /&gt;
+    &amp;lt;/offsets&amp;gt;&lt;br /&gt;
+  &amp;lt;/model&amp;gt;&lt;br /&gt;
+&lt;br /&gt;
   &amp;lt;!-- Based on http://www.aeroclub-montpellier.com/flotte/F-GOZZ/Tableau.jpg --&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;!-- ################################################################--&amp;gt;&lt;br /&gt;
diff --git a/Aircraft/DR400-dauphin/dr400-dauphin-set.xml b/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
index 66494b9..5641243 100644&lt;br /&gt;
--- a/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
+++ b/Aircraft/DR400-dauphin/dr400-dauphin-set.xml&lt;br /&gt;
@@ -390,6 +390,9 @@&lt;br /&gt;
   &amp;lt;/instrumentation&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;nasal&amp;gt;&lt;br /&gt;
+    &amp;lt;gpsmap196&amp;gt;&lt;br /&gt;
+      &amp;lt;file&amp;gt;Aircraft/Instruments-3d/GPSmap196/gpsmap196.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
+    &amp;lt;/gpsmap196&amp;gt;&lt;br /&gt;
     &amp;lt;dr400&amp;gt;&lt;br /&gt;
       &amp;lt;file&amp;gt;Aircraft/DR400-dauphin/Nasal/physics.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
       &amp;lt;file&amp;gt;Aircraft/DR400-dauphin/Nasal/light.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Forum topics ===&lt;br /&gt;
* {{forum link|t=23047|title=Garmin GPSmap196}} (May 2012-June 2014) - Regarding re-implementing the instrument to use Canvas&lt;br /&gt;
* {{forum link|t=15433|title=The Garmin 196}} (February 2012-August 2015) - Original development topic&lt;br /&gt;
&lt;br /&gt;
=== Source code ===&lt;br /&gt;
* {{fgdata source|path=Aircraft/Instruments-3d/GPSmap196}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = http://www.jpcheney.org/article.php3?id_article=326#&lt;br /&gt;
 | title           = Garmin 196 - Un nouvel instrument, le Garmin 196&lt;br /&gt;
 | author          = JeeP&lt;br /&gt;
 | date            = January 19, 2012&lt;br /&gt;
 | language        = French&lt;br /&gt;
 | accessdate      = April 29, 2020&lt;br /&gt;
 }}&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = https://equipe-flightgear.forumactif.com/t865-garmin-196&lt;br /&gt;
 | title           = Garmin 196&lt;br /&gt;
 | publisher       = La patrouille de france Flightgear(PAF)&lt;br /&gt;
 | language        = French&lt;br /&gt;
 | accessdate      = April 29, 2020&lt;br /&gt;
 }} (January 2012-April 2014) - Development topic on the forum of the French community.&lt;br /&gt;
* {{cite web&lt;br /&gt;
 | url             = https://static.garmin.com/pumac/GPSMAP196_PilotsGuide.pdf&lt;br /&gt;
 | title           = Garmin GPSMAP 196 Pilot's Guide&lt;br /&gt;
 | date            = August 2005&lt;br /&gt;
 | publisher       = Garmin Ltd&lt;br /&gt;
 | format          = PDF&lt;br /&gt;
 | accessdate      = November 30, 2022&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft instruments]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Cessna_182S&amp;diff=146680</id>
		<title>Cessna 182S</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Cessna_182S&amp;diff=146680"/>
		<updated>2026-07-29T05:33:51Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Stable release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
&lt;br /&gt;
The '''Cessna 182S Skylane''' is an American four-seat, single-engine, light [[Aircraft|airplane]], built by [[Cessna]] between 1996 and 2001. It uses a fuel-injected Textron Lycoming IO-540 AB1A5 with 230 HP at 2,400 RPM.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
The Cessna 182S is one of the high-quality aircraft models in FlightGear. &lt;br /&gt;
&lt;br /&gt;
The Cessna 182S has a very detailed 3D model and a cockpit with highly detailed textures. Most of the switches in the cockpit are already clickable and working. It has a very realistic FDM based on real aerodynamic coefficients and the pilot operating handbook; engine power, EGT and fuel performance are tuned according the pilot operating handbook, the weight and balance behaves like written in the POH. Fly by the book - a link to real POH is given at the end of this page.&lt;br /&gt;
 &lt;br /&gt;
[[File:c182-panel-detail.jpg|center|800px]]&lt;br /&gt;
&lt;br /&gt;
There are currently several liveries available: default Cessna livery, Blank, D-ELFP, HB-CZV, N182PJ, N321HW and some Custom registration Liveries.&lt;br /&gt;
&lt;br /&gt;
The aircraft has a simulation of the [[Bendix/King KAP140 Autopilot]]. The cockpit can be illuminated at night by using the glareshield lighting, pedestal lighting and instruments/ radio lighting, controlled by two knobs. Dome lights which illuminates the cabin in a realistic way are in work. The knobs have two modes each, which can be used by clicking and dragging horizontally or vertically.&lt;br /&gt;
&lt;br /&gt;
Also, if ALS (Atmospheric light scattering) is enabled, some effects are activated such as cockpit shadows, visible landing lights from the cockpit and rain effect on the windshield.&lt;br /&gt;
&lt;br /&gt;
The Cessna 182S comes with static objects which can be activated via the Ground Equipment dialog in the aircraft menu. These include a fuel tank trailer, ladders to access the fuel caps (and which the walker can climb, ground power unit and a Dragon Engine Pre-Heater. Security cones are also available. Special Feature: The ground equipment will stay on ground where placed, independent from the movement of the aircraft!  The aircraft can also go through a pre-flight check: wheel chocks, tie-downs and the pitot tube cover can now be added or removed.  &lt;br /&gt;
&lt;br /&gt;
[[File:c182-objects.jpg|600px|center|Cessna 182S with static elements]]&lt;br /&gt;
&lt;br /&gt;
=== Feature List ===&lt;br /&gt;
For details and usage hints, also see the [https://github.com/HHS81/c182s/blob/master/Documentation.md documentation].&lt;br /&gt;
* accurate flight model based on real test aerodynamic coefficients and POH&lt;br /&gt;
* accurate fuel flow numbers, engine power, airspeed and climbrate in nearly all pressure altitudes and temperatures with less than 5% difference from POH&lt;br /&gt;
* realistic [[stall]] behavior&lt;br /&gt;
* calculation of real KIAS based on KCAS, based on POH&lt;br /&gt;
* accurate weight and balance behavior&lt;br /&gt;
&lt;br /&gt;
* Start-up States: aircraft can be initialized in cruise, landing, takeoff and more states&lt;br /&gt;
* autostart for beginners&lt;br /&gt;
&lt;br /&gt;
* fully simulated fuel system: fuel flow by gravity, engine pump and fuel pump simulated for each of the two tanks,; engine needs correct priming procedure according POH, fuel contamination simulated&lt;br /&gt;
* realistic electrical system, battery charge state depending on temperature, working circuit breakers&lt;br /&gt;
* fully simulated oil management (temperature, ....)&lt;br /&gt;
* simulation of cabin heat and defrost&lt;br /&gt;
* simulation of icing to wings, propellers and engines in icing conditions&lt;br /&gt;
* detailed damage and failure simulation&lt;br /&gt;
&lt;br /&gt;
* High quality 3d-model, textures and animations&lt;br /&gt;
* Realistic exterior reflection shaders with fresnel effect and normalmap&lt;br /&gt;
* selectable chromed spinner and wheel fairings&lt;br /&gt;
* Very detailed 3d-interior &lt;br /&gt;
* moveable sun-visors&lt;br /&gt;
* all cockpit switches are working&lt;br /&gt;
* fully working audio panel&lt;br /&gt;
* fully simulated [[Bendix/King_KAP140_Autopilot]]&lt;br /&gt;
* fully simulated [[Davtron M803]] digital clock&lt;br /&gt;
* fully simulated Bendix King avionics stack (two [[Kx165|KX-165 VHF COM/NAV radios]], [[Bendix_King_KN62A_DME|KN-62A DME]], [[Bendix_King_KT_76A|KT-67C Transponder]], [[Bendix_King_KR_87_ADF_Receiver|KR-87 ADF]])&lt;br /&gt;
* Realistic interior light effects in ALS-Renderer&lt;br /&gt;
* Interior shadows in ALS-Renderer&lt;br /&gt;
* interior glass frost and fog effects in ALS-Renderer&lt;br /&gt;
* Exterior 3d-shadow in ALS-Renderer&lt;br /&gt;
* selectable and fully simulated Winterization kit&lt;br /&gt;
* External equipement like ladders, safety cones, tie ups, pitot cover, wheel chocks, external power source, simulated external engine pre-heater with sound - they keep their position on ground!&lt;br /&gt;
* aircraft can be preflight checked outside (free movement check of flight control surfaces; oil, fuel, pitot heat, ....)&lt;br /&gt;
* Walker - can be used to follow the Checklist outside&lt;br /&gt;
* [[Howto:Implement_Towbar|Towbar]] connecting to the nosewheel for ground handling&lt;br /&gt;
* Save states: aircraft remembers last switch, systems and configuration state&lt;br /&gt;
* Many liveries&lt;br /&gt;
&lt;br /&gt;
=== Aerotowing gliders ===&lt;br /&gt;
The C182S and C182T are capable of [[Howto: Do aerotow over the net|aerotowing over multiplayer]] by the glider pilot pressing {{key press|Ctrl|o}} while behind the Cessna.&lt;br /&gt;
The Cessna pilot can release the hook anytime by pressing {{key press|Shift|O}}.&lt;br /&gt;
&lt;br /&gt;
=== Dual control ===&lt;br /&gt;
The plane supports [[Dual control]] where a copilot can ride along in another multiplayer plane. The copilot needs to start the C182 copilot variant and then select the pilots plane from the multiplayer dialog. The pilot also need to select the copilot this way.&lt;br /&gt;
&lt;br /&gt;
Currently the copilot is view-only and cannot take over controls.&lt;br /&gt;
&lt;br /&gt;
=== Parachuters ===&lt;br /&gt;
Via the aircraft options menu you can remove the right cabin door and seats, to haul parachuters. When clicking on your passengers, they will climb out to the strut and jump off. The parachuters are even visible to other multiplayer aircraft (for that to work they need the C182s/t model installed).&lt;br /&gt;
&lt;br /&gt;
To enable the Jump button (making it no longer grayed out), you need to first click the &amp;quot;Configure Humans&amp;quot; button to add a crew member, and climb above 150m (approx. 500ft).&lt;br /&gt;
&lt;br /&gt;
=== Extended failures / surprise mode ===&lt;br /&gt;
The plane features a very detailed failure simulation and optionally can surprise you on the fly (if you wish, without notifying you). The failures dialog can be accessed by the aircraft menu, but you can also configure this for startup in your launcher by adding configuration options there. Please see [https://github.com/HHS81/c182s/blob/master/Documentation.md#extended-failure-simulation the documentation] for details.&lt;br /&gt;
&lt;br /&gt;
== Handling The Aircraft (beginner version)==&lt;br /&gt;
You can activate more realistic handling at any time in the aircraft dialog, like fuel contamination, engine oil management and priming needs.&lt;br /&gt;
&lt;br /&gt;
The full checklists are available ingame in the checklists dialog.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Flight Inspection ===&lt;br /&gt;
[[File:C182-ready-for-take-off.jpg|270px||thumb|Cessna 182S ready for take off]]&lt;br /&gt;
It's recommended to use any exterior view or activate the walker for these procedures.&lt;br /&gt;
&lt;br /&gt;
* Cockpit: remove wind gust lock&lt;br /&gt;
* Check fuel quantity on both tanks (click on the red caps top of the wings)&lt;br /&gt;
* Left wing: remove pitot tube cover&lt;br /&gt;
* Left wing: remove tie-down&lt;br /&gt;
* Left wing: check for fuel contamination by clicking under the wing and take a fuel sample. If the sample is light blue, the fuel is not contaminated and can be returned to the tank. If the sample is transparent or partially transparent, you must discard it and take new samples until they are completely light blue&lt;br /&gt;
* Left main wheel: remove chocks&lt;br /&gt;
* Tail: remove tie-down&lt;br /&gt;
* Right wing: remove tie-down&lt;br /&gt;
* Right wing: check water contamination&lt;br /&gt;
* Right main wheel: remove chocks&lt;br /&gt;
* Right nose: check water contamination of fuel selector (below plane) and fuel strainer (right nose)&lt;br /&gt;
* Nose: remove wheel chocks&lt;br /&gt;
* Nose: check oil level (more than 6.0 quarts)&lt;br /&gt;
* Nose: remove chocks&lt;br /&gt;
&lt;br /&gt;
=== Engine Start (manual and complex startup) ===&lt;br /&gt;
* Mixture: Idle cut-off (red lever full out)&lt;br /&gt;
* Propeller: High RPM (blue lever full in)&lt;br /&gt;
* Throttle: Open 1/4 inch (black lever ~5%-8% setting inSim)&lt;br /&gt;
* Parking Brake: Applied ({{Key press|Shift|B}})&lt;br /&gt;
* Prop Area: Clear&lt;br /&gt;
* Master switch: ON (both)&lt;br /&gt;
* Auxiliary Fuel Pump Switch: ON &lt;br /&gt;
* Advance mixture to full rich, keep it 3-5sec&lt;br /&gt;
* Then Idle Cutoff &lt;br /&gt;
* Auxiliary Fuel Pump Switch: Off&lt;br /&gt;
* Magnetos: Both (Press {{Key press|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}} three times)&lt;br /&gt;
* Ignition: crank engine ({{Key press|S}} until engine fires)&lt;br /&gt;
&lt;br /&gt;
If the engine was warm already, it usually starts without priming by just setting Mixture to rich and cranking.&lt;br /&gt;
&lt;br /&gt;
If engine floods, then set mixture to idle cut off and throttle to 1/2 to full open and crank. When engine fires, set mixture to full rich and throttle to idle.&lt;br /&gt;
&lt;br /&gt;
=== Takeoff ===&lt;br /&gt;
* no flaps or flaps 10deg&lt;br /&gt;
* cowl flaps open ({{Key press|Shift|F}} several times)&lt;br /&gt;
* full throttle&lt;br /&gt;
* rotate at 50-60 KIAS&lt;br /&gt;
&lt;br /&gt;
=== Climbout ===&lt;br /&gt;
* no flaps&lt;br /&gt;
* cowl flaps open&lt;br /&gt;
* full throttle&lt;br /&gt;
* 80 KIAS&lt;br /&gt;
* Reduce power to stay in the green arcs as soon as obstacles are clear&lt;br /&gt;
** Fuel flow: max 15Gph&lt;br /&gt;
** Throttle: max 23 in.Hg&lt;br /&gt;
&lt;br /&gt;
=== Cruise ===&lt;br /&gt;
[[File:c182-default.jpg|270px||thumb|Cessna 182S in the air]]&lt;br /&gt;
* 2000-2400 RPM&lt;br /&gt;
* 18-23 mp&lt;br /&gt;
* mixture rich of peak as recommended lean mixture setting for cruise or 125°F rich for best power&lt;br /&gt;
* speed between 120-140 knots depending on the power settings&lt;br /&gt;
* cowl flaps closed ({{Key press|f}} as appropriate -&amp;gt; watch CHT gauge)&lt;br /&gt;
&lt;br /&gt;
=== Landing ===&lt;br /&gt;
* flaps 20deg or full flaps&lt;br /&gt;
* 60-70 KIAS&lt;br /&gt;
&lt;br /&gt;
=== Airspeeds ===&lt;br /&gt;
: ''See also [[Aircraft speed#V speeds]]''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Airspeed !! IAS&lt;br /&gt;
|-&lt;br /&gt;
| Stall speed, landing configuration, V&amp;lt;sub&amp;gt;S&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; || 36 kt&lt;br /&gt;
|-&lt;br /&gt;
| Stall speed, clean, V&amp;lt;sub&amp;gt;S&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; || 43 kt&lt;br /&gt;
|-&lt;br /&gt;
| Rotation speed, V&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; || 55 kt&lt;br /&gt;
|-&lt;br /&gt;
| Best angle of climb speed, V&amp;lt;sub&amp;gt;X&amp;lt;/sub&amp;gt; || 63 kt&lt;br /&gt;
|-&lt;br /&gt;
| Best rate of climb speed, V&amp;lt;sub&amp;gt;Y&amp;lt;/sub&amp;gt; || 80 kt&lt;br /&gt;
|-&lt;br /&gt;
| Maximum flap extended speed, V&amp;lt;sub&amp;gt;FE&amp;lt;/sub&amp;gt; || 100 kt&lt;br /&gt;
|-&lt;br /&gt;
| Manoeuvring speed, V&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; || 110 kt&lt;br /&gt;
|-&lt;br /&gt;
| Maximum structural cruising speed, V&amp;lt;sub&amp;gt;NO&amp;lt;/sub&amp;gt; || 140 kt&lt;br /&gt;
|-&lt;br /&gt;
| Never exceed speed, V&amp;lt;sub&amp;gt;NE&amp;lt;/sub&amp;gt; || 175 kt&lt;br /&gt;
|-&lt;br /&gt;
| Max. Crosswind at landing || 15 kt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Cruise, 80% power,  6,000 ft || 140 kt&lt;br /&gt;
|-&lt;br /&gt;
|Cruise, 65% power,  8,000 ft || 130 kt&lt;br /&gt;
|-&lt;br /&gt;
|Cruise, 55% power, 10,000 ft || 121 kt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Range,  75% power,  6,000 ft || 820 nm&lt;br /&gt;
|-&lt;br /&gt;
|Range,  65% power,  8,000 ft || 910 nm&lt;br /&gt;
|-&lt;br /&gt;
|Range,  55% power, 10,000 ft || 968 nm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Best Climb&amp;lt;ref&amp;gt;POH 5-19; with 3100lbs, sea level, 2400 RPM, Full Throttle, mixture set to Maximum power Fuel Flow placard, Cowl Flaps Open, Std. Temperature&amp;lt;/ref&amp;gt; || 924fpm&lt;br /&gt;
|-&lt;br /&gt;
|Service Ceiling || 18,100ft&lt;br /&gt;
|-&lt;br /&gt;
|Takeoff ground roll: 795ft (242m) over 50ft obstacle || 1,514ft&lt;br /&gt;
|-&lt;br /&gt;
|Landing ground roll: 590ft (180m) over 50ft obstacle || 1,390ft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:c182-cockpit-at-night.jpg|600px|center|Cessna 182S panel illumination]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Main article: [[Cessna 182S/FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
=== Stable release ===&lt;br /&gt;
The Last official release for your matching FlightGear version can be downloaded from the Launcher (FGAddon default Hangar).&lt;br /&gt;
There you can also easily update the plane, once updates get published.&lt;br /&gt;
&lt;br /&gt;
Alternatively, GIT releases (and changelogs between versions) are here: https://github.com/HHS81/c182s/releases&lt;br /&gt;
&lt;br /&gt;
=== Development status/Issues/TODO ===&lt;br /&gt;
&lt;br /&gt;
This aircraft is undergoing a constant development, which can be followed on its [https://github.com/HHS81/c182s repository], where a [https://github.com/HHS81/c182s/issues list of issues and future enhancements] can also be found. Worth a visit!&lt;br /&gt;
&lt;br /&gt;
=== Using the latest development/git version ===&lt;br /&gt;
{{note|This may not work properly with the current stable (and older) flightgear versions. Development ''usually'' targets the latest flightgear stable, but may use also fresh features of flightgears &amp;quot;next&amp;quot; version.}}&lt;br /&gt;
&lt;br /&gt;
If you want to use the latest github versions, they can be obtained here (&amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;-branch): https://github.com/HHS81/c182s/archive/refs/heads/master.zip&lt;br /&gt;
&lt;br /&gt;
* Make a new &amp;quot;Aircraft&amp;quot; folder (in case you don't already have one). Then add that directory to your launchers &amp;quot;Addons&amp;quot; tab as aircraft folder.&lt;br /&gt;
* Download a zipped version you want to use (links below).&lt;br /&gt;
* Extract the zipfile into your &amp;quot;Aircraft&amp;quot; folder.&lt;br /&gt;
* Rename the extracted &amp;lt;code&amp;gt;c182s-&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; folder to &amp;lt;code&amp;gt;c182s&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
{{screenshot cat&lt;br /&gt;
| category = Cessna 182S screenshots&lt;br /&gt;
| subject  = the Cessna 182S&lt;br /&gt;
| image    = C182-default.jpg&lt;br /&gt;
}}{{-}}&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
GXLTGAltenrhein.jpg|aircraft sitting on the apron of St. Gallen-Altenrhein/ Switzerland&lt;br /&gt;
Cessna182S compositor2.jpg|aircraft sitting in the dark, all lights on&lt;br /&gt;
c182s.jpg|Cessna 182S at dusk&lt;br /&gt;
c182-cockpit-view.jpg|Default cockpit view&lt;br /&gt;
c182-external2.jpg|HB-CZV livery&lt;br /&gt;
c182-external3.jpg|D-ELFP livery&lt;br /&gt;
c182-external5.jpg|Cessna 182S over California&lt;br /&gt;
c182-external6.jpg|Another view of the HB-CZV livery&lt;br /&gt;
C182-4.jpg|Taking off&lt;br /&gt;
c182-rosskopf-at-dusk.jpg|Cessna 182S around Roßkopf in Freiburg/ Germany&lt;br /&gt;
C182STakeOff.jpg|Cessna 182S with custom registration at Siegerland Airport/ Germany&lt;br /&gt;
C182s-LandingPicture.jpg|C182s landing, showing the needed high pitch attitude&lt;br /&gt;
C182SDavtron803.jpg|The Davtron 803 clock in action&lt;br /&gt;
C182SWinterKit.jpg|Winterkit installed, and preheating the engine with an Engine Preheater&lt;br /&gt;
C182SFuelManagement.jpg|Fuel Management Dialog&lt;br /&gt;
c182-rain.jpg|Rain effect in the windshield&lt;br /&gt;
C182-oil-cap.png|Oil cap location&lt;br /&gt;
C182SOilManagement.jpg|Oil Management Dialog&lt;br /&gt;
C182-fuelports.png|Fuel selector and strainer quick drain valves location&lt;br /&gt;
c182-night-take-off.jpg|Ready to take off at night&lt;br /&gt;
c182-3.jpg|D-ELFP at dusk&lt;br /&gt;
C182SPitot.jpg|Pitot, Cover and message&lt;br /&gt;
C182SFreeMovementCheck.jpg|Checking the aileron&lt;br /&gt;
C182SCustomRegistration.jpg|The custom registration&lt;br /&gt;
c182-external4.jpg|N182PJ livery&lt;br /&gt;
c182-external-at-night.jpg|Default livery at night&lt;br /&gt;
c182-external1.jpg|N321HW livery&lt;br /&gt;
C182Scrashed.jpg|aircraft crashed&lt;br /&gt;
AboveSouthGermany.jpg|aircraft flying above South Germany&lt;br /&gt;
Cessna182S compositor.jpg|aircraft sitting in the dark, all lights on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{Wikipedia|Cessna 182 Skylane|lang=en}}&lt;br /&gt;
* [http://www.freechecklists.net/Resources/Cessna/182S+Skylane/ Links to Cessna 182S Checklists and W&amp;amp;B sheet]&lt;br /&gt;
* [http://tssflyingclub.org/documents/C182S_POH.pdf Cessna 182S POH]&lt;br /&gt;
* [https://www.aopa.org/go-fly/aircraft-and-ownership/aircraft-fact-sheets/cessna-182 Cessna 182S Aircraft Information Booklet]&lt;br /&gt;
* [http://www.jberaeroclub.com/uploads/1/7/4/0/17405139/c182maneuversguiderev2.pdf C182 Standardized flight maneuvers guide]&lt;br /&gt;
* [https://airplaneacademy.com/9-actionable-cessna-182-landing-tips-you-can-implement-today/ 9 Actionable Cessna 182 Landing Tips You Can Implement Today]&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
{{Cessna}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft with a cockpit-only autopilot]]&lt;br /&gt;
[[Category:Red Griffin ATC compatible aircraft]]&lt;br /&gt;
&lt;br /&gt;
[[de:Cessna 182S]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Cessna_182S&amp;diff=146679</id>
		<title>Cessna 182S</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Cessna_182S&amp;diff=146679"/>
		<updated>2026-07-29T05:33:09Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Takeoff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
&lt;br /&gt;
The '''Cessna 182S Skylane''' is an American four-seat, single-engine, light [[Aircraft|airplane]], built by [[Cessna]] between 1996 and 2001. It uses a fuel-injected Textron Lycoming IO-540 AB1A5 with 230 HP at 2,400 RPM.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
The Cessna 182S is one of the high-quality aircraft models in FlightGear. &lt;br /&gt;
&lt;br /&gt;
The Cessna 182S has a very detailed 3D model and a cockpit with highly detailed textures. Most of the switches in the cockpit are already clickable and working. It has a very realistic FDM based on real aerodynamic coefficients and the pilot operating handbook; engine power, EGT and fuel performance are tuned according the pilot operating handbook, the weight and balance behaves like written in the POH. Fly by the book - a link to real POH is given at the end of this page.&lt;br /&gt;
 &lt;br /&gt;
[[File:c182-panel-detail.jpg|center|800px]]&lt;br /&gt;
&lt;br /&gt;
There are currently several liveries available: default Cessna livery, Blank, D-ELFP, HB-CZV, N182PJ, N321HW and some Custom registration Liveries.&lt;br /&gt;
&lt;br /&gt;
The aircraft has a simulation of the [[Bendix/King KAP140 Autopilot]]. The cockpit can be illuminated at night by using the glareshield lighting, pedestal lighting and instruments/ radio lighting, controlled by two knobs. Dome lights which illuminates the cabin in a realistic way are in work. The knobs have two modes each, which can be used by clicking and dragging horizontally or vertically.&lt;br /&gt;
&lt;br /&gt;
Also, if ALS (Atmospheric light scattering) is enabled, some effects are activated such as cockpit shadows, visible landing lights from the cockpit and rain effect on the windshield.&lt;br /&gt;
&lt;br /&gt;
The Cessna 182S comes with static objects which can be activated via the Ground Equipment dialog in the aircraft menu. These include a fuel tank trailer, ladders to access the fuel caps (and which the walker can climb, ground power unit and a Dragon Engine Pre-Heater. Security cones are also available. Special Feature: The ground equipment will stay on ground where placed, independent from the movement of the aircraft!  The aircraft can also go through a pre-flight check: wheel chocks, tie-downs and the pitot tube cover can now be added or removed.  &lt;br /&gt;
&lt;br /&gt;
[[File:c182-objects.jpg|600px|center|Cessna 182S with static elements]]&lt;br /&gt;
&lt;br /&gt;
=== Feature List ===&lt;br /&gt;
For details and usage hints, also see the [https://github.com/HHS81/c182s/blob/master/Documentation.md documentation].&lt;br /&gt;
* accurate flight model based on real test aerodynamic coefficients and POH&lt;br /&gt;
* accurate fuel flow numbers, engine power, airspeed and climbrate in nearly all pressure altitudes and temperatures with less than 5% difference from POH&lt;br /&gt;
* realistic [[stall]] behavior&lt;br /&gt;
* calculation of real KIAS based on KCAS, based on POH&lt;br /&gt;
* accurate weight and balance behavior&lt;br /&gt;
&lt;br /&gt;
* Start-up States: aircraft can be initialized in cruise, landing, takeoff and more states&lt;br /&gt;
* autostart for beginners&lt;br /&gt;
&lt;br /&gt;
* fully simulated fuel system: fuel flow by gravity, engine pump and fuel pump simulated for each of the two tanks,; engine needs correct priming procedure according POH, fuel contamination simulated&lt;br /&gt;
* realistic electrical system, battery charge state depending on temperature, working circuit breakers&lt;br /&gt;
* fully simulated oil management (temperature, ....)&lt;br /&gt;
* simulation of cabin heat and defrost&lt;br /&gt;
* simulation of icing to wings, propellers and engines in icing conditions&lt;br /&gt;
* detailed damage and failure simulation&lt;br /&gt;
&lt;br /&gt;
* High quality 3d-model, textures and animations&lt;br /&gt;
* Realistic exterior reflection shaders with fresnel effect and normalmap&lt;br /&gt;
* selectable chromed spinner and wheel fairings&lt;br /&gt;
* Very detailed 3d-interior &lt;br /&gt;
* moveable sun-visors&lt;br /&gt;
* all cockpit switches are working&lt;br /&gt;
* fully working audio panel&lt;br /&gt;
* fully simulated [[Bendix/King_KAP140_Autopilot]]&lt;br /&gt;
* fully simulated [[Davtron M803]] digital clock&lt;br /&gt;
* fully simulated Bendix King avionics stack (two [[Kx165|KX-165 VHF COM/NAV radios]], [[Bendix_King_KN62A_DME|KN-62A DME]], [[Bendix_King_KT_76A|KT-67C Transponder]], [[Bendix_King_KR_87_ADF_Receiver|KR-87 ADF]])&lt;br /&gt;
* Realistic interior light effects in ALS-Renderer&lt;br /&gt;
* Interior shadows in ALS-Renderer&lt;br /&gt;
* interior glass frost and fog effects in ALS-Renderer&lt;br /&gt;
* Exterior 3d-shadow in ALS-Renderer&lt;br /&gt;
* selectable and fully simulated Winterization kit&lt;br /&gt;
* External equipement like ladders, safety cones, tie ups, pitot cover, wheel chocks, external power source, simulated external engine pre-heater with sound - they keep their position on ground!&lt;br /&gt;
* aircraft can be preflight checked outside (free movement check of flight control surfaces; oil, fuel, pitot heat, ....)&lt;br /&gt;
* Walker - can be used to follow the Checklist outside&lt;br /&gt;
* [[Howto:Implement_Towbar|Towbar]] connecting to the nosewheel for ground handling&lt;br /&gt;
* Save states: aircraft remembers last switch, systems and configuration state&lt;br /&gt;
* Many liveries&lt;br /&gt;
&lt;br /&gt;
=== Aerotowing gliders ===&lt;br /&gt;
The C182S and C182T are capable of [[Howto: Do aerotow over the net|aerotowing over multiplayer]] by the glider pilot pressing {{key press|Ctrl|o}} while behind the Cessna.&lt;br /&gt;
The Cessna pilot can release the hook anytime by pressing {{key press|Shift|O}}.&lt;br /&gt;
&lt;br /&gt;
=== Dual control ===&lt;br /&gt;
The plane supports [[Dual control]] where a copilot can ride along in another multiplayer plane. The copilot needs to start the C182 copilot variant and then select the pilots plane from the multiplayer dialog. The pilot also need to select the copilot this way.&lt;br /&gt;
&lt;br /&gt;
Currently the copilot is view-only and cannot take over controls.&lt;br /&gt;
&lt;br /&gt;
=== Parachuters ===&lt;br /&gt;
Via the aircraft options menu you can remove the right cabin door and seats, to haul parachuters. When clicking on your passengers, they will climb out to the strut and jump off. The parachuters are even visible to other multiplayer aircraft (for that to work they need the C182s/t model installed).&lt;br /&gt;
&lt;br /&gt;
To enable the Jump button (making it no longer grayed out), you need to first click the &amp;quot;Configure Humans&amp;quot; button to add a crew member, and climb above 150m (approx. 500ft).&lt;br /&gt;
&lt;br /&gt;
=== Extended failures / surprise mode ===&lt;br /&gt;
The plane features a very detailed failure simulation and optionally can surprise you on the fly (if you wish, without notifying you). The failures dialog can be accessed by the aircraft menu, but you can also configure this for startup in your launcher by adding configuration options there. Please see [https://github.com/HHS81/c182s/blob/master/Documentation.md#extended-failure-simulation the documentation] for details.&lt;br /&gt;
&lt;br /&gt;
== Handling The Aircraft (beginner version)==&lt;br /&gt;
You can activate more realistic handling at any time in the aircraft dialog, like fuel contamination, engine oil management and priming needs.&lt;br /&gt;
&lt;br /&gt;
The full checklists are available ingame in the checklists dialog.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Flight Inspection ===&lt;br /&gt;
[[File:C182-ready-for-take-off.jpg|270px||thumb|Cessna 182S ready for take off]]&lt;br /&gt;
It's recommended to use any exterior view or activate the walker for these procedures.&lt;br /&gt;
&lt;br /&gt;
* Cockpit: remove wind gust lock&lt;br /&gt;
* Check fuel quantity on both tanks (click on the red caps top of the wings)&lt;br /&gt;
* Left wing: remove pitot tube cover&lt;br /&gt;
* Left wing: remove tie-down&lt;br /&gt;
* Left wing: check for fuel contamination by clicking under the wing and take a fuel sample. If the sample is light blue, the fuel is not contaminated and can be returned to the tank. If the sample is transparent or partially transparent, you must discard it and take new samples until they are completely light blue&lt;br /&gt;
* Left main wheel: remove chocks&lt;br /&gt;
* Tail: remove tie-down&lt;br /&gt;
* Right wing: remove tie-down&lt;br /&gt;
* Right wing: check water contamination&lt;br /&gt;
* Right main wheel: remove chocks&lt;br /&gt;
* Right nose: check water contamination of fuel selector (below plane) and fuel strainer (right nose)&lt;br /&gt;
* Nose: remove wheel chocks&lt;br /&gt;
* Nose: check oil level (more than 6.0 quarts)&lt;br /&gt;
* Nose: remove chocks&lt;br /&gt;
&lt;br /&gt;
=== Engine Start (manual and complex startup) ===&lt;br /&gt;
* Mixture: Idle cut-off (red lever full out)&lt;br /&gt;
* Propeller: High RPM (blue lever full in)&lt;br /&gt;
* Throttle: Open 1/4 inch (black lever ~5%-8% setting inSim)&lt;br /&gt;
* Parking Brake: Applied ({{Key press|Shift|B}})&lt;br /&gt;
* Prop Area: Clear&lt;br /&gt;
* Master switch: ON (both)&lt;br /&gt;
* Auxiliary Fuel Pump Switch: ON &lt;br /&gt;
* Advance mixture to full rich, keep it 3-5sec&lt;br /&gt;
* Then Idle Cutoff &lt;br /&gt;
* Auxiliary Fuel Pump Switch: Off&lt;br /&gt;
* Magnetos: Both (Press {{Key press|&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}} three times)&lt;br /&gt;
* Ignition: crank engine ({{Key press|S}} until engine fires)&lt;br /&gt;
&lt;br /&gt;
If the engine was warm already, it usually starts without priming by just setting Mixture to rich and cranking.&lt;br /&gt;
&lt;br /&gt;
If engine floods, then set mixture to idle cut off and throttle to 1/2 to full open and crank. When engine fires, set mixture to full rich and throttle to idle.&lt;br /&gt;
&lt;br /&gt;
=== Takeoff ===&lt;br /&gt;
* no flaps or flaps 10deg&lt;br /&gt;
* cowl flaps open ({{Key press|Shift|F}} several times)&lt;br /&gt;
* full throttle&lt;br /&gt;
* rotate at 50-60 KIAS&lt;br /&gt;
&lt;br /&gt;
=== Climbout ===&lt;br /&gt;
* no flaps&lt;br /&gt;
* cowl flaps open&lt;br /&gt;
* full throttle&lt;br /&gt;
* 80 KIAS&lt;br /&gt;
* Reduce power to stay in the green arcs as soon as obstacles are clear&lt;br /&gt;
** Fuel flow: max 15Gph&lt;br /&gt;
** Throttle: max 23 in.Hg&lt;br /&gt;
&lt;br /&gt;
=== Cruise ===&lt;br /&gt;
[[File:c182-default.jpg|270px||thumb|Cessna 182S in the air]]&lt;br /&gt;
* 2000-2400 RPM&lt;br /&gt;
* 18-23 mp&lt;br /&gt;
* mixture rich of peak as recommended lean mixture setting for cruise or 125°F rich for best power&lt;br /&gt;
* speed between 120-140 knots depending on the power settings&lt;br /&gt;
* cowl flaps closed ({{Key press|f}} as appropriate -&amp;gt; watch CHT gauge)&lt;br /&gt;
&lt;br /&gt;
=== Landing ===&lt;br /&gt;
* flaps 20deg or full flaps&lt;br /&gt;
* 60-70 KIAS&lt;br /&gt;
&lt;br /&gt;
=== Airspeeds ===&lt;br /&gt;
: ''See also [[Aircraft speed#V speeds]]''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Airspeed !! IAS&lt;br /&gt;
|-&lt;br /&gt;
| Stall speed, landing configuration, V&amp;lt;sub&amp;gt;S&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; || 36 kt&lt;br /&gt;
|-&lt;br /&gt;
| Stall speed, clean, V&amp;lt;sub&amp;gt;S&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; || 43 kt&lt;br /&gt;
|-&lt;br /&gt;
| Rotation speed, V&amp;lt;sub&amp;gt;R&amp;lt;/sub&amp;gt; || 55 kt&lt;br /&gt;
|-&lt;br /&gt;
| Best angle of climb speed, V&amp;lt;sub&amp;gt;X&amp;lt;/sub&amp;gt; || 63 kt&lt;br /&gt;
|-&lt;br /&gt;
| Best rate of climb speed, V&amp;lt;sub&amp;gt;Y&amp;lt;/sub&amp;gt; || 80 kt&lt;br /&gt;
|-&lt;br /&gt;
| Maximum flap extended speed, V&amp;lt;sub&amp;gt;FE&amp;lt;/sub&amp;gt; || 100 kt&lt;br /&gt;
|-&lt;br /&gt;
| Manoeuvring speed, V&amp;lt;sub&amp;gt;A&amp;lt;/sub&amp;gt; || 110 kt&lt;br /&gt;
|-&lt;br /&gt;
| Maximum structural cruising speed, V&amp;lt;sub&amp;gt;NO&amp;lt;/sub&amp;gt; || 140 kt&lt;br /&gt;
|-&lt;br /&gt;
| Never exceed speed, V&amp;lt;sub&amp;gt;NE&amp;lt;/sub&amp;gt; || 175 kt&lt;br /&gt;
|-&lt;br /&gt;
| Max. Crosswind at landing || 15 kt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Cruise, 80% power,  6,000 ft || 140 kt&lt;br /&gt;
|-&lt;br /&gt;
|Cruise, 65% power,  8,000 ft || 130 kt&lt;br /&gt;
|-&lt;br /&gt;
|Cruise, 55% power, 10,000 ft || 121 kt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Range,  75% power,  6,000 ft || 820 nm&lt;br /&gt;
|-&lt;br /&gt;
|Range,  65% power,  8,000 ft || 910 nm&lt;br /&gt;
|-&lt;br /&gt;
|Range,  55% power, 10,000 ft || 968 nm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Best Climb&amp;lt;ref&amp;gt;POH 5-19; with 3100lbs, sea level, 2400 RPM, Full Throttle, mixture set to Maximum power Fuel Flow placard, Cowl Flaps Open, Std. Temperature&amp;lt;/ref&amp;gt; || 924fpm&lt;br /&gt;
|-&lt;br /&gt;
|Service Ceiling || 18,100ft&lt;br /&gt;
|-&lt;br /&gt;
|Takeoff ground roll: 795ft (242m) over 50ft obstacle || 1,514ft&lt;br /&gt;
|-&lt;br /&gt;
|Landing ground roll: 590ft (180m) over 50ft obstacle || 1,390ft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:c182-cockpit-at-night.jpg|600px|center|Cessna 182S panel illumination]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Main article: [[Cessna 182S/FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Versions ==&lt;br /&gt;
&lt;br /&gt;
=== Stable release ===&lt;br /&gt;
The Last official release for your matching FlightGear version can be downloaded from the Launcher (FGAddon default Hangar).&lt;br /&gt;
There you can also easily update the plane, once updates get published.&lt;br /&gt;
&lt;br /&gt;
Alternatively, GIT releases (and changelogs between versions) are here: https://github.com/HHS81/c182s/releases&lt;br /&gt;
&lt;br /&gt;
These releases are usually also synced to FGAddons trunk hangar (used by fgfs next, which gets stable together with the next fgfs release and can be updated to from the launcher)&lt;br /&gt;
&lt;br /&gt;
=== Development status/Issues/TODO ===&lt;br /&gt;
&lt;br /&gt;
This aircraft is undergoing a constant development, which can be followed on its [https://github.com/HHS81/c182s repository], where a [https://github.com/HHS81/c182s/issues list of issues and future enhancements] can also be found. Worth a visit!&lt;br /&gt;
&lt;br /&gt;
=== Using the latest development/git version ===&lt;br /&gt;
{{note|This may not work properly with the current stable (and older) flightgear versions. Development ''usually'' targets the latest flightgear stable, but may use also fresh features of flightgears &amp;quot;next&amp;quot; version.}}&lt;br /&gt;
&lt;br /&gt;
If you want to use the latest github versions, they can be obtained here (&amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;-branch): https://github.com/HHS81/c182s/archive/refs/heads/master.zip&lt;br /&gt;
&lt;br /&gt;
* Make a new &amp;quot;Aircraft&amp;quot; folder (in case you don't already have one). Then add that directory to your launchers &amp;quot;Addons&amp;quot; tab as aircraft folder.&lt;br /&gt;
* Download a zipped version you want to use (links below).&lt;br /&gt;
* Extract the zipfile into your &amp;quot;Aircraft&amp;quot; folder.&lt;br /&gt;
* Rename the extracted &amp;lt;code&amp;gt;c182s-&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; folder to &amp;lt;code&amp;gt;c182s&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
{{screenshot cat&lt;br /&gt;
| category = Cessna 182S screenshots&lt;br /&gt;
| subject  = the Cessna 182S&lt;br /&gt;
| image    = C182-default.jpg&lt;br /&gt;
}}{{-}}&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
GXLTGAltenrhein.jpg|aircraft sitting on the apron of St. Gallen-Altenrhein/ Switzerland&lt;br /&gt;
Cessna182S compositor2.jpg|aircraft sitting in the dark, all lights on&lt;br /&gt;
c182s.jpg|Cessna 182S at dusk&lt;br /&gt;
c182-cockpit-view.jpg|Default cockpit view&lt;br /&gt;
c182-external2.jpg|HB-CZV livery&lt;br /&gt;
c182-external3.jpg|D-ELFP livery&lt;br /&gt;
c182-external5.jpg|Cessna 182S over California&lt;br /&gt;
c182-external6.jpg|Another view of the HB-CZV livery&lt;br /&gt;
C182-4.jpg|Taking off&lt;br /&gt;
c182-rosskopf-at-dusk.jpg|Cessna 182S around Roßkopf in Freiburg/ Germany&lt;br /&gt;
C182STakeOff.jpg|Cessna 182S with custom registration at Siegerland Airport/ Germany&lt;br /&gt;
C182s-LandingPicture.jpg|C182s landing, showing the needed high pitch attitude&lt;br /&gt;
C182SDavtron803.jpg|The Davtron 803 clock in action&lt;br /&gt;
C182SWinterKit.jpg|Winterkit installed, and preheating the engine with an Engine Preheater&lt;br /&gt;
C182SFuelManagement.jpg|Fuel Management Dialog&lt;br /&gt;
c182-rain.jpg|Rain effect in the windshield&lt;br /&gt;
C182-oil-cap.png|Oil cap location&lt;br /&gt;
C182SOilManagement.jpg|Oil Management Dialog&lt;br /&gt;
C182-fuelports.png|Fuel selector and strainer quick drain valves location&lt;br /&gt;
c182-night-take-off.jpg|Ready to take off at night&lt;br /&gt;
c182-3.jpg|D-ELFP at dusk&lt;br /&gt;
C182SPitot.jpg|Pitot, Cover and message&lt;br /&gt;
C182SFreeMovementCheck.jpg|Checking the aileron&lt;br /&gt;
C182SCustomRegistration.jpg|The custom registration&lt;br /&gt;
c182-external4.jpg|N182PJ livery&lt;br /&gt;
c182-external-at-night.jpg|Default livery at night&lt;br /&gt;
c182-external1.jpg|N321HW livery&lt;br /&gt;
C182Scrashed.jpg|aircraft crashed&lt;br /&gt;
AboveSouthGermany.jpg|aircraft flying above South Germany&lt;br /&gt;
Cessna182S compositor.jpg|aircraft sitting in the dark, all lights on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{Wikipedia|Cessna 182 Skylane|lang=en}}&lt;br /&gt;
* [http://www.freechecklists.net/Resources/Cessna/182S+Skylane/ Links to Cessna 182S Checklists and W&amp;amp;B sheet]&lt;br /&gt;
* [http://tssflyingclub.org/documents/C182S_POH.pdf Cessna 182S POH]&lt;br /&gt;
* [https://www.aopa.org/go-fly/aircraft-and-ownership/aircraft-fact-sheets/cessna-182 Cessna 182S Aircraft Information Booklet]&lt;br /&gt;
* [http://www.jberaeroclub.com/uploads/1/7/4/0/17405139/c182maneuversguiderev2.pdf C182 Standardized flight maneuvers guide]&lt;br /&gt;
* [https://airplaneacademy.com/9-actionable-cessna-182-landing-tips-you-can-implement-today/ 9 Actionable Cessna 182 Landing Tips You Can Implement Today]&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
{{Cessna}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft with a cockpit-only autopilot]]&lt;br /&gt;
[[Category:Red Griffin ATC compatible aircraft]]&lt;br /&gt;
&lt;br /&gt;
[[de:Cessna 182S]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=North_American_P-51_Mustang&amp;diff=146678</id>
		<title>North American P-51 Mustang</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=North_American_P-51_Mustang&amp;diff=146678"/>
		<updated>2026-07-29T05:32:02Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
The '''P-51D ''Mustang''''' is a piston single engine fighter [[aircraft]].&lt;br /&gt;
&lt;br /&gt;
== Aircraft Help ==&lt;br /&gt;
=== Flying Hints ===  &lt;br /&gt;
&lt;br /&gt;
For the JSBSIm model use the USAAF F-51D/K manual (Aug. 1945) for detailed procedures.  This are available on-line from the link near the bottom of this page in the External Links section. &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|fXX-SnYtpHQ|600|right|Engine start up procedure tutorial.}}&lt;br /&gt;
&lt;br /&gt;
==== Take Off ====&lt;br /&gt;
&lt;br /&gt;
* Initially hold the tail down with full aft stick.&lt;br /&gt;
* Slowly increase throttle to 40 inHG Manifold Pressure as you pick up speed.&lt;br /&gt;
* Be ready to actuate rudder during the take off roll particularly if there is a cross wind.&lt;br /&gt;
* At about 50 MPH indicated start releasing stick back pressure. The tail will start to lift and the airplane will want to go to the left as the tail is coming up.  Raising the tail slowly is beneficial. &lt;br /&gt;
* Once the tail is up increase throttle to 61 inHG.&lt;br /&gt;
* As you gain speed the amount of rudder correction to the right will need to be decreased and you may need to use left rudder depending on how much right rudder trim you set.&lt;br /&gt;
* Stay on top of rudder and elevator with small adjustments and keep the nose down until rotation or you'll do a ground loop.&lt;br /&gt;
* If the aircraft is heavy rotate at 150 mph.  If the aircraft is light you can rotate at slower speeds but never below 120 mph (short field only).&lt;br /&gt;
* As you raise the gear the trim will change in a nose up direction.  Be careful to avoid stalling or loosing air speed as the gear is retracted.&lt;br /&gt;
* All of the take off trim settings will need to be adjusted as you pick up speed so this will contribute to a high pilot work load during the take off and climb out.  You will need to start removing right rudder trim almost as soon as you leave the ground and rudder trim will continue to change significantly up to about 275MPH indicated.&lt;br /&gt;
&lt;br /&gt;
==== Climb ====&lt;br /&gt;
 &lt;br /&gt;
* Back off manifold pressure to 46 inHG.&lt;br /&gt;
* Adjust propeller pitch to 2700 RPM.&lt;br /&gt;
* The throttle has automatic boost controls and will hold the manifold pressure setting as long as the supercharger has enough boost to provide the selected setting.  It will hold 46 inHg to about 30,000 feet.&lt;br /&gt;
* The mixture control is also automatic if it is set in the RUN position.&lt;br /&gt;
* If the supercharger speed switch is at AUTOMATIC the supercharger gear ratio will be controlled by an automatic system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flying ====&lt;br /&gt;
 &lt;br /&gt;
* Trim and Cruise at about 2400 rpm.&lt;br /&gt;
* Do not exceed 2700 rpm sustained.&lt;br /&gt;
* Do not exceed 3000 rpm military power (aerobatics)&lt;br /&gt;
* Do not exceed 3500 rpm in dives.&lt;br /&gt;
* Do not exceed 61 inHG Mainfold Pressure (military power), except 71 inHG for maximum of 7 minutes (war emergency power). Note that war emergency power is not for flying fast, rather it is for dogfighting at &amp;lt; 200mph.&lt;br /&gt;
&lt;br /&gt;
==== Landing ====&lt;br /&gt;
 &lt;br /&gt;
* Use continuous back pressure on the stick to obtain an tail-low attitude for actual touch down.&lt;br /&gt;
* Because of the wide landing gear and locked tail wheel, landing characteristics are excellent on this aircraft.&lt;br /&gt;
* Minimize use of brakes during ground roll.&lt;br /&gt;
* At completion of the landing roll, clear runway as soon as possible.  Excessive braking can cause you to do a ground loop (nose over).  Some recommend raising flaps immediately after touchdown.&lt;br /&gt;
&lt;br /&gt;
=== Performance Data ===&lt;br /&gt;
 &lt;br /&gt;
This information is gleaned from various sources:&lt;br /&gt;
* Maximum Speed: '''437 mph'''&lt;br /&gt;
* Cruise Speed: '''363 mph'''&lt;br /&gt;
* Landing Speed: '''100 mph'''&lt;br /&gt;
* Initial Climb Rate: '''3475 feet per minute'''&lt;br /&gt;
* Sustained Climb Speed: '''175 mph'''&lt;br /&gt;
* Service Ceiling: '''41,900 ft'''.&lt;br /&gt;
* Stall Speed, 9000lbs, Gear/Flaps Up: '''102mph '''&lt;br /&gt;
* Stall Speed, 9000lbs,  Gear/Flaps Down: '''95mph'''&lt;br /&gt;
&lt;br /&gt;
=== Avionics ===&lt;br /&gt;
'''SCR-522 VHF Radio'''  The SCR-522 VHF radio is a four-channel crystal controlled set. &lt;br /&gt;
To set the frequencies for each channel, use the Radio Settings dialog (Equipment -&amp;gt; Radio Settings, or F12).  &lt;br /&gt;
The radio control panel is located on the right-hand side of the cockpit, beside the pilot's right thigh, with a row of five red buttons labeled &amp;quot;Off&amp;quot; and A through D.&lt;br /&gt;
To select the active channel, click the appropriate button, A through D. &lt;br /&gt;
To turn off the radio, click the &amp;quot;Off&amp;quot; button.&lt;br /&gt;
The transmit/receive switch is set to Remote and will respond to your regular PTT button.&lt;br /&gt;
&lt;br /&gt;
'''Altimeter''' The adjustment knob on the altimeter can be used to calibrate the altimeter to the barometric pressure, but the pressure setting is not displayed on the screen.&lt;br /&gt;
You can see and set the precise values on the Equipment -&amp;gt; Instrument Settings dialog.&lt;br /&gt;
&lt;br /&gt;
== Reviews ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Model&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The JSBSim version of the P-51D comes with a very detailed 3d cockpit, down to various warning plaquettes. I think it conveys the feeling of being in a warbird very much. Based on a quick google image search, it looks pretty authentic to me.&lt;br /&gt;
&lt;br /&gt;
[[File: P51d-cockpit.jpg]]&lt;br /&gt;
&lt;br /&gt;
Most of the switches are actually functional :-) For instance, some amount of fuel management is required for longer flights. The plane comes with a full working set of weapons, from guns via bombs to rockets - so tight dogfights are entirely possible. A full engine startup procedure is simulated. The exterior model is maybe not stunning, but nice enough for all practical purposes:&lt;br /&gt;
&lt;br /&gt;
[[File: P51d-model.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Flight characteristics&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The JSBSim  FDM of the P-51D is very detailed and is actually a joy to experience. As common with warbirds, engine torque is a major issue - try spinning up the engine suddenly in mid-air, and observe how the plane begins to roll unless you counter immediately with the ailerons. Accoding to Hal (the author), the performance characteristics in different altitudes is very faithfully reproduces (I lack the documentation to check, but I haven't seen anything implausible).&lt;br /&gt;
&lt;br /&gt;
The plane is rather difficult to handle - it requires some skill to get it off the ground in spite of the engine torque forces, and even more skill to get it back to the ground in one piece onto the runway. Having the full control equipment (joystick and rudder pedals) is certainly a tremendous help - but it is possible with some practice to fly with just the mouse (avoid crosswinds though...).&lt;br /&gt;
&lt;br /&gt;
The ground handling is tricky - ground loops (the propeller touches the ground) are a constant danger (apparently that really was and is an issue with the real plane) - so careful use of the brakes is a must, and sometimes its even necessary to throttle down immediately after the engine starts. &lt;br /&gt;
&lt;br /&gt;
And, as a very special feature - the plane actually spins rather realistically - so be careful when approaching stall speed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;My personal wishlist&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An added pdf manual describing all the features and providing some background info would be terrific - I have the feeling I'm missing so many details...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Things to experience&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let a tank run out of fuel, and experience a lovingly and realistically modelled engine stutter, followed by an emergency landing.&lt;br /&gt;
&lt;br /&gt;
== Airplane of the Week/Month ==&lt;br /&gt;
&lt;br /&gt;
The P-51D (JSBSim) was once reviewed as 'Airplane of the Week/Month' on May 04, 2011.&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
{{screenshot cat&lt;br /&gt;
| category = North American P-51 Mustang screenshots&lt;br /&gt;
| subject  = North American P-51 Mustang&lt;br /&gt;
| image    = P51d-mustang.png&lt;br /&gt;
}}&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[Aircraft]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.avialogs.com/en/aircraft/usa/northamericanaviation/p-51mustang/aaf-51-127-5-pilot-training-manual-for-the-p-51-mustang.html 1945 USAF F-51D/K Pilots Manual]&lt;br /&gt;
* [http://www.youtube.com/watch?v=caJtGXMdxGM Flight Characteristics of the North American P-51 Mustang: How to Fly the P-51 Fighter] YouTube video about the '''B''' version (30 minutes).&lt;br /&gt;
&lt;br /&gt;
{{North American}}&lt;br /&gt;
&lt;br /&gt;
[[ja:North_American_P-51_Mustang]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=North_American_P-51_Mustang&amp;diff=146677</id>
		<title>North American P-51 Mustang</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=North_American_P-51_Mustang&amp;diff=146677"/>
		<updated>2026-07-29T05:31:33Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Airplane of the Week/Month */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
The '''P-51D ''Mustang''''' is a piston single engine fighter [[aircraft]].&lt;br /&gt;
&lt;br /&gt;
== Aircraft Help ==&lt;br /&gt;
=== Flying Hints ===  &lt;br /&gt;
&lt;br /&gt;
For the JSBSIm model use the USAAF F-51D/K manual (Aug. 1945) for detailed procedures.  This are available on-line from the link near the bottom of this page in the External Links section. &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|fXX-SnYtpHQ|600|right|Engine start up procedure tutorial.}}&lt;br /&gt;
&lt;br /&gt;
==== Take Off ====&lt;br /&gt;
&lt;br /&gt;
* Initially hold the tail down with full aft stick.&lt;br /&gt;
* Slowly increase throttle to 40 inHG Manifold Pressure as you pick up speed.&lt;br /&gt;
* Be ready to actuate rudder during the take off roll particularly if there is a cross wind.&lt;br /&gt;
* At about 50 MPH indicated start releasing stick back pressure. The tail will start to lift and the airplane will want to go to the left as the tail is coming up.  Raising the tail slowly is beneficial. &lt;br /&gt;
* Once the tail is up increase throttle to 61 inHG.&lt;br /&gt;
* As you gain speed the amount of rudder correction to the right will need to be decreased and you may need to use left rudder depending on how much right rudder trim you set.&lt;br /&gt;
* Stay on top of rudder and elevator with small adjustments and keep the nose down until rotation or you'll do a ground loop.&lt;br /&gt;
* If the aircraft is heavy rotate at 150 mph.  If the aircraft is light you can rotate at slower speeds but never below 120 mph (short field only).&lt;br /&gt;
* As you raise the gear the trim will change in a nose up direction.  Be careful to avoid stalling or loosing air speed as the gear is retracted.&lt;br /&gt;
* All of the take off trim settings will need to be adjusted as you pick up speed so this will contribute to a high pilot work load during the take off and climb out.  You will need to start removing right rudder trim almost as soon as you leave the ground and rudder trim will continue to change significantly up to about 275MPH indicated.&lt;br /&gt;
&lt;br /&gt;
==== Climb ====&lt;br /&gt;
 &lt;br /&gt;
* Back off manifold pressure to 46 inHG.&lt;br /&gt;
* Adjust propeller pitch to 2700 RPM.&lt;br /&gt;
* The throttle has automatic boost controls and will hold the manifold pressure setting as long as the supercharger has enough boost to provide the selected setting.  It will hold 46 inHg to about 30,000 feet.&lt;br /&gt;
* The mixture control is also automatic if it is set in the RUN position.&lt;br /&gt;
* If the supercharger speed switch is at AUTOMATIC the supercharger gear ratio will be controlled by an automatic system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flying ====&lt;br /&gt;
 &lt;br /&gt;
* Trim and Cruise at about 2400 rpm.&lt;br /&gt;
* Do not exceed 2700 rpm sustained.&lt;br /&gt;
* Do not exceed 3000 rpm military power (aerobatics)&lt;br /&gt;
* Do not exceed 3500 rpm in dives.&lt;br /&gt;
* Do not exceed 61 inHG Mainfold Pressure (military power), except 71 inHG for maximum of 7 minutes (war emergency power). Note that war emergency power is not for flying fast, rather it is for dogfighting at &amp;lt; 200mph.&lt;br /&gt;
&lt;br /&gt;
==== Landing ====&lt;br /&gt;
 &lt;br /&gt;
* Use continuous back pressure on the stick to obtain an tail-low attitude for actual touch down.&lt;br /&gt;
* Because of the wide landing gear and locked tail wheel, landing characteristics are excellent on this aircraft.&lt;br /&gt;
* Minimize use of brakes during ground roll.&lt;br /&gt;
* At completion of the landing roll, clear runway as soon as possible.  Excessive braking can cause you to do a ground loop (nose over).  Some recommend raising flaps immediately after touchdown.&lt;br /&gt;
&lt;br /&gt;
=== Performance Data ===&lt;br /&gt;
 &lt;br /&gt;
This information is gleaned from various sources:&lt;br /&gt;
* Maximum Speed: '''437 mph'''&lt;br /&gt;
* Cruise Speed: '''363 mph'''&lt;br /&gt;
* Landing Speed: '''100 mph'''&lt;br /&gt;
* Initial Climb Rate: '''3475 feet per minute'''&lt;br /&gt;
* Sustained Climb Speed: '''175 mph'''&lt;br /&gt;
* Service Ceiling: '''41,900 ft'''.&lt;br /&gt;
* Stall Speed, 9000lbs, Gear/Flaps Up: '''102mph '''&lt;br /&gt;
* Stall Speed, 9000lbs,  Gear/Flaps Down: '''95mph'''&lt;br /&gt;
&lt;br /&gt;
=== Avionics ===&lt;br /&gt;
'''SCR-522 VHF Radio'''  The SCR-522 VHF radio is a four-channel crystal controlled set. &lt;br /&gt;
To set the frequencies for each channel, use the Radio Settings dialog (Equipment -&amp;gt; Radio Settings, or F12).  &lt;br /&gt;
The radio control panel is located on the right-hand side of the cockpit, beside the pilot's right thigh, with a row of five red buttons labeled &amp;quot;Off&amp;quot; and A through D.&lt;br /&gt;
To select the active channel, click the appropriate button, A through D. &lt;br /&gt;
To turn off the radio, click the &amp;quot;Off&amp;quot; button.&lt;br /&gt;
The transmit/receive switch is set to Remote and will respond to your regular PTT button.&lt;br /&gt;
&lt;br /&gt;
'''Altimeter''' The adjustment knob on the altimeter can be used to calibrate the altimeter to the barometric pressure, but the pressure setting is not displayed on the screen.&lt;br /&gt;
You can see and set the precise values on the Equipment -&amp;gt; Instrument Settings dialog.&lt;br /&gt;
&lt;br /&gt;
== Airplane of the Week/Month ==&lt;br /&gt;
&lt;br /&gt;
The P-51D (JSBSim) was reviewed as 'Airplane of the Week/Month' on May 04, 2011.&lt;br /&gt;
&lt;br /&gt;
== Reviews ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Model&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The JSBSim version of the P-51D comes with a very detailed 3d cockpit, down to various warning plaquettes. I think it conveys the feeling of being in a warbird very much. Based on a quick google image search, it looks pretty authentic to me.&lt;br /&gt;
&lt;br /&gt;
[[File: P51d-cockpit.jpg]]&lt;br /&gt;
&lt;br /&gt;
Most of the switches are actually functional :-) For instance, some amount of fuel management is required for longer flights. The plane comes with a full working set of weapons, from guns via bombs to rockets - so tight dogfights are entirely possible. A full engine startup procedure is simulated. The exterior model is maybe not stunning, but nice enough for all practical purposes:&lt;br /&gt;
&lt;br /&gt;
[[File: P51d-model.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Flight characteristics&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The JSBSim  FDM of the P-51D is very detailed and is actually a joy to experience. As common with warbirds, engine torque is a major issue - try spinning up the engine suddenly in mid-air, and observe how the plane begins to roll unless you counter immediately with the ailerons. Accoding to Hal (the author), the performance characteristics in different altitudes is very faithfully reproduces (I lack the documentation to check, but I haven't seen anything implausible).&lt;br /&gt;
&lt;br /&gt;
The plane is rather difficult to handle - it requires some skill to get it off the ground in spite of the engine torque forces, and even more skill to get it back to the ground in one piece onto the runway. Having the full control equipment (joystick and rudder pedals) is certainly a tremendous help - but it is possible with some practice to fly with just the mouse (avoid crosswinds though...).&lt;br /&gt;
&lt;br /&gt;
The ground handling is tricky - ground loops (the propeller touches the ground) are a constant danger (apparently that really was and is an issue with the real plane) - so careful use of the brakes is a must, and sometimes its even necessary to throttle down immediately after the engine starts. &lt;br /&gt;
&lt;br /&gt;
And, as a very special feature - the plane actually spins rather realistically - so be careful when approaching stall speed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;My personal wishlist&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An added pdf manual describing all the features and providing some background info would be terrific - I have the feeling I'm missing so many details...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Things to experience&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let a tank run out of fuel, and experience a lovingly and realistically modelled engine stutter, followed by an emergency landing.&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
{{screenshot cat&lt;br /&gt;
| category = North American P-51 Mustang screenshots&lt;br /&gt;
| subject  = North American P-51 Mustang&lt;br /&gt;
| image    = P51d-mustang.png&lt;br /&gt;
}}&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[Aircraft]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.avialogs.com/en/aircraft/usa/northamericanaviation/p-51mustang/aaf-51-127-5-pilot-training-manual-for-the-p-51-mustang.html 1945 USAF F-51D/K Pilots Manual]&lt;br /&gt;
* [http://www.youtube.com/watch?v=caJtGXMdxGM Flight Characteristics of the North American P-51 Mustang: How to Fly the P-51 Fighter] YouTube video about the '''B''' version (30 minutes).&lt;br /&gt;
&lt;br /&gt;
{{North American}}&lt;br /&gt;
&lt;br /&gt;
[[ja:North_American_P-51_Mustang]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=North_American_P-51_Mustang&amp;diff=146676</id>
		<title>North American P-51 Mustang</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=North_American_P-51_Mustang&amp;diff=146676"/>
		<updated>2026-07-29T05:31:11Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
The '''P-51D ''Mustang''''' is a piston single engine fighter [[aircraft]].&lt;br /&gt;
&lt;br /&gt;
== Aircraft Help ==&lt;br /&gt;
=== Flying Hints ===  &lt;br /&gt;
&lt;br /&gt;
For the JSBSIm model use the USAAF F-51D/K manual (Aug. 1945) for detailed procedures.  This are available on-line from the link near the bottom of this page in the External Links section. &lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|fXX-SnYtpHQ|600|right|Engine start up procedure tutorial.}}&lt;br /&gt;
&lt;br /&gt;
==== Take Off ====&lt;br /&gt;
&lt;br /&gt;
* Initially hold the tail down with full aft stick.&lt;br /&gt;
* Slowly increase throttle to 40 inHG Manifold Pressure as you pick up speed.&lt;br /&gt;
* Be ready to actuate rudder during the take off roll particularly if there is a cross wind.&lt;br /&gt;
* At about 50 MPH indicated start releasing stick back pressure. The tail will start to lift and the airplane will want to go to the left as the tail is coming up.  Raising the tail slowly is beneficial. &lt;br /&gt;
* Once the tail is up increase throttle to 61 inHG.&lt;br /&gt;
* As you gain speed the amount of rudder correction to the right will need to be decreased and you may need to use left rudder depending on how much right rudder trim you set.&lt;br /&gt;
* Stay on top of rudder and elevator with small adjustments and keep the nose down until rotation or you'll do a ground loop.&lt;br /&gt;
* If the aircraft is heavy rotate at 150 mph.  If the aircraft is light you can rotate at slower speeds but never below 120 mph (short field only).&lt;br /&gt;
* As you raise the gear the trim will change in a nose up direction.  Be careful to avoid stalling or loosing air speed as the gear is retracted.&lt;br /&gt;
* All of the take off trim settings will need to be adjusted as you pick up speed so this will contribute to a high pilot work load during the take off and climb out.  You will need to start removing right rudder trim almost as soon as you leave the ground and rudder trim will continue to change significantly up to about 275MPH indicated.&lt;br /&gt;
&lt;br /&gt;
==== Climb ====&lt;br /&gt;
 &lt;br /&gt;
* Back off manifold pressure to 46 inHG.&lt;br /&gt;
* Adjust propeller pitch to 2700 RPM.&lt;br /&gt;
* The throttle has automatic boost controls and will hold the manifold pressure setting as long as the supercharger has enough boost to provide the selected setting.  It will hold 46 inHg to about 30,000 feet.&lt;br /&gt;
* The mixture control is also automatic if it is set in the RUN position.&lt;br /&gt;
* If the supercharger speed switch is at AUTOMATIC the supercharger gear ratio will be controlled by an automatic system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Flying ====&lt;br /&gt;
 &lt;br /&gt;
* Trim and Cruise at about 2400 rpm.&lt;br /&gt;
* Do not exceed 2700 rpm sustained.&lt;br /&gt;
* Do not exceed 3000 rpm military power (aerobatics)&lt;br /&gt;
* Do not exceed 3500 rpm in dives.&lt;br /&gt;
* Do not exceed 61 inHG Mainfold Pressure (military power), except 71 inHG for maximum of 7 minutes (war emergency power). Note that war emergency power is not for flying fast, rather it is for dogfighting at &amp;lt; 200mph.&lt;br /&gt;
&lt;br /&gt;
==== Landing ====&lt;br /&gt;
 &lt;br /&gt;
* Use continuous back pressure on the stick to obtain an tail-low attitude for actual touch down.&lt;br /&gt;
* Because of the wide landing gear and locked tail wheel, landing characteristics are excellent on this aircraft.&lt;br /&gt;
* Minimize use of brakes during ground roll.&lt;br /&gt;
* At completion of the landing roll, clear runway as soon as possible.  Excessive braking can cause you to do a ground loop (nose over).  Some recommend raising flaps immediately after touchdown.&lt;br /&gt;
&lt;br /&gt;
=== Performance Data ===&lt;br /&gt;
 &lt;br /&gt;
This information is gleaned from various sources:&lt;br /&gt;
* Maximum Speed: '''437 mph'''&lt;br /&gt;
* Cruise Speed: '''363 mph'''&lt;br /&gt;
* Landing Speed: '''100 mph'''&lt;br /&gt;
* Initial Climb Rate: '''3475 feet per minute'''&lt;br /&gt;
* Sustained Climb Speed: '''175 mph'''&lt;br /&gt;
* Service Ceiling: '''41,900 ft'''.&lt;br /&gt;
* Stall Speed, 9000lbs, Gear/Flaps Up: '''102mph '''&lt;br /&gt;
* Stall Speed, 9000lbs,  Gear/Flaps Down: '''95mph'''&lt;br /&gt;
&lt;br /&gt;
=== Avionics ===&lt;br /&gt;
'''SCR-522 VHF Radio'''  The SCR-522 VHF radio is a four-channel crystal controlled set. &lt;br /&gt;
To set the frequencies for each channel, use the Radio Settings dialog (Equipment -&amp;gt; Radio Settings, or F12).  &lt;br /&gt;
The radio control panel is located on the right-hand side of the cockpit, beside the pilot's right thigh, with a row of five red buttons labeled &amp;quot;Off&amp;quot; and A through D.&lt;br /&gt;
To select the active channel, click the appropriate button, A through D. &lt;br /&gt;
To turn off the radio, click the &amp;quot;Off&amp;quot; button.&lt;br /&gt;
The transmit/receive switch is set to Remote and will respond to your regular PTT button.&lt;br /&gt;
&lt;br /&gt;
'''Altimeter''' The adjustment knob on the altimeter can be used to calibrate the altimeter to the barometric pressure, but the pressure setting is not displayed on the screen.&lt;br /&gt;
You can see and set the precise values on the Equipment -&amp;gt; Instrument Settings dialog.&lt;br /&gt;
&lt;br /&gt;
== Airplane of the Week/Month ==&lt;br /&gt;
&lt;br /&gt;
The P-51D (JSBSim) was reviewed as 'Airplane of the Week/Month' on May 04, 2011 as follows:&lt;br /&gt;
&lt;br /&gt;
== Reviews ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Model&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The JSBSim version of the P-51D comes with a very detailed 3d cockpit, down to various warning plaquettes. I think it conveys the feeling of being in a warbird very much. Based on a quick google image search, it looks pretty authentic to me.&lt;br /&gt;
&lt;br /&gt;
[[File: P51d-cockpit.jpg]]&lt;br /&gt;
&lt;br /&gt;
Most of the switches are actually functional :-) For instance, some amount of fuel management is required for longer flights. The plane comes with a full working set of weapons, from guns via bombs to rockets - so tight dogfights are entirely possible. A full engine startup procedure is simulated. The exterior model is maybe not stunning, but nice enough for all practical purposes:&lt;br /&gt;
&lt;br /&gt;
[[File: P51d-model.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Flight characteristics&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The JSBSim  FDM of the P-51D is very detailed and is actually a joy to experience. As common with warbirds, engine torque is a major issue - try spinning up the engine suddenly in mid-air, and observe how the plane begins to roll unless you counter immediately with the ailerons. Accoding to Hal (the author), the performance characteristics in different altitudes is very faithfully reproduces (I lack the documentation to check, but I haven't seen anything implausible).&lt;br /&gt;
&lt;br /&gt;
The plane is rather difficult to handle - it requires some skill to get it off the ground in spite of the engine torque forces, and even more skill to get it back to the ground in one piece onto the runway. Having the full control equipment (joystick and rudder pedals) is certainly a tremendous help - but it is possible with some practice to fly with just the mouse (avoid crosswinds though...).&lt;br /&gt;
&lt;br /&gt;
The ground handling is tricky - ground loops (the propeller touches the ground) are a constant danger (apparently that really was and is an issue with the real plane) - so careful use of the brakes is a must, and sometimes its even necessary to throttle down immediately after the engine starts. &lt;br /&gt;
&lt;br /&gt;
And, as a very special feature - the plane actually spins rather realistically - so be careful when approaching stall speed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;My personal wishlist&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An added pdf manual describing all the features and providing some background info would be terrific - I have the feeling I'm missing so many details...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Things to experience&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let a tank run out of fuel, and experience a lovingly and realistically modelled engine stutter, followed by an emergency landing.&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
{{screenshot cat&lt;br /&gt;
| category = North American P-51 Mustang screenshots&lt;br /&gt;
| subject  = North American P-51 Mustang&lt;br /&gt;
| image    = P51d-mustang.png&lt;br /&gt;
}}&lt;br /&gt;
=== Wiki articles ===&lt;br /&gt;
* [[Aircraft]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.avialogs.com/en/aircraft/usa/northamericanaviation/p-51mustang/aaf-51-127-5-pilot-training-manual-for-the-p-51-mustang.html 1945 USAF F-51D/K Pilots Manual]&lt;br /&gt;
* [http://www.youtube.com/watch?v=caJtGXMdxGM Flight Characteristics of the North American P-51 Mustang: How to Fly the P-51 Fighter] YouTube video about the '''B''' version (30 minutes).&lt;br /&gt;
&lt;br /&gt;
{{North American}}&lt;br /&gt;
&lt;br /&gt;
[[ja:North_American_P-51_Mustang]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Eurocopter_EC130_B4&amp;diff=146675</id>
		<title>Eurocopter EC130 B4</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Eurocopter_EC130_B4&amp;diff=146675"/>
		<updated>2026-07-29T05:28:01Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* The Real Thing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
{{screenshot cat&lt;br /&gt;
| category = Eurocopter EC130 screenshots&lt;br /&gt;
| subject  = the Eurocopter EC130&lt;br /&gt;
| image    = EC130-B4 MAC rescue 2.jpg&lt;br /&gt;
}}&lt;br /&gt;
This is a model of the '''Eurocopter EC130 B4 / EC130 T2 (H130)''', a single engine light [[helicopter]] based on and developed from the [[Ecureuil AS 350 Helicopter|AS350]]'s. &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
=== The Real Thing ===&lt;br /&gt;
&lt;br /&gt;
Indeed “EC130 B4” is just a marketing name by [[Eurocopter]], now known as Airbus Helicopters, the real name is still AS350 B4”.  It is a widebody variant of the “AS350 B3” with a completely new designed passenger cabin and fuselage and rotor and hydraulics system from the AS355. It is also equipped with a fan tail (fenestron) instead of the conventional two-blade tailrotor. With this the “EC130 B4” is much less noisier  than other helicopters of this class.&lt;br /&gt;
&lt;br /&gt;
The helicopter was designed especially for tours, so it features a great visibility, a left-seated pilot and plenty of space inside. The “EC130 B4” is also used by the police in Long Beach/CA and by several medical services.&lt;br /&gt;
&lt;br /&gt;
The “EC130 B4” has been built until 2013. In 2014, it is replaced by the improved “EC130 T2”, which was renamed to '''“H130”''' in 2015. It has a new and more powerful Turbomeca Arriel 2D engine and a 70% modified airframe. The exterior, cockpit and interior has been also modified.&amp;lt;ref&amp;gt;{{cite web |url=http://www.airbushelicopters.com/site/en/ref/Characteristics_1180.html |title=H130(EC130 T2)  |publisher=www.airbushelicopters.com }}&amp;lt;/ref&amp;gt;  &lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== The FlightGear Model===&lt;br /&gt;
&lt;br /&gt;
This model of the “EC130 B4/H130” was built using very detailed drawings, the Pilots Flight Manual and pilot reports.&lt;br /&gt;
&lt;br /&gt;
[[Image:Rembrandtready.png|link=Rembrandt]]&lt;br /&gt;
[[Image:Tutorialready.png|link=Tutorials]]&lt;br /&gt;
[[Image:Checklistready.png|link=Aircraft Checklists]]&lt;br /&gt;
[[Image:Tooltipready.png|link=Tooltips]]&lt;br /&gt;
&lt;br /&gt;
== Flight Manual ==&lt;br /&gt;
=== Panel Overview ===&lt;br /&gt;
&lt;br /&gt;
The FlightGear model of the EC130 B4 features the standard panel delivered ex works without any additional customer whishes.&lt;br /&gt;
 &lt;br /&gt;
Apart from the missing functions mentioned above it is a fully working helicopter cockpit.&lt;br /&gt;
&lt;br /&gt;
[[File:EC130B4Panel wiki.jpg|800px|Panel of the EC130 B4 showing all the instruments]]&lt;br /&gt;
&lt;br /&gt;
=== Limitations ===&lt;br /&gt;
'''Type of Operation:'''&lt;br /&gt;
Helicopter is approved to operate Day and Night VFR only.&lt;br /&gt;
&lt;br /&gt;
'''The following is not allowed:'''&lt;br /&gt;
* Aerobatics maneuvers&lt;br /&gt;
* in flight engine power reduction except for engine failure trainings and other emergency procedure trainings&lt;br /&gt;
&lt;br /&gt;
'''Occupants'''&lt;br /&gt;
&lt;br /&gt;
Minimum flight crew:..................................................................................1 pilot (left seated)&lt;br /&gt;
&lt;br /&gt;
Maximum number of occupants:...................................................................7- 8 passengers&lt;br /&gt;
&lt;br /&gt;
'''Weight and Balance Limitations'''&lt;br /&gt;
&lt;br /&gt;
Minimum weight:.........................................................................................3015lbs (1368kg) B4 / 3159lbs (1433kg) T2&lt;br /&gt;
&lt;br /&gt;
Maximum weight:........................................................................................5350lbs (2427kg) B4 / 5512lbs (2500kg) T2&lt;br /&gt;
&lt;br /&gt;
'''Airspeed limitations'''&lt;br /&gt;
&lt;br /&gt;
VNE Power on:...........................................................................................................155 ktn&lt;br /&gt;
&lt;br /&gt;
VNE Power off:...........................................................................................................125 ktn&lt;br /&gt;
&lt;br /&gt;
'''Altitude Limitations'''&lt;br /&gt;
&lt;br /&gt;
Maximum operating flight altitude:...............................................................23000ft (7000m)&lt;br /&gt;
&lt;br /&gt;
'''Main rotor Limits'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;170 rpm:............................................................................................  rotor brake operation&lt;br /&gt;
&lt;br /&gt;
320 rpm.....................................................................................minimum rotor rpm power off&lt;br /&gt;
&lt;br /&gt;
320- 375 rpm..................................................................................................Caution Range&lt;br /&gt;
&lt;br /&gt;
375-405 rpm....................................................................................normal Operating Range&lt;br /&gt;
&lt;br /&gt;
405-430 rpm...................................................................................................Caution Range&lt;br /&gt;
&lt;br /&gt;
430 rpm …...............................................................................maximum rotor rpm power off&lt;br /&gt;
&lt;br /&gt;
'''Low Rotor rpm aural warning &amp;lt; 360 rpm ''' &lt;br /&gt;
&lt;br /&gt;
'''High Rotor rpm aural warning &amp;gt; 410 rpm ''' &lt;br /&gt;
&lt;br /&gt;
=== Warning Panel ===&lt;br /&gt;
Still uncompleted and especially failures indicated on the panel keeps mostly without any follow-up. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellpadding=&amp;quot;2&amp;quot;  &lt;br /&gt;
|-&lt;br /&gt;
!colspan=2| ENG P lights up&lt;br /&gt;
|-&lt;br /&gt;
|'''Indication'''&lt;br /&gt;
|low oil pressure&lt;br /&gt;
|-&lt;br /&gt;
|'''Procedure'''&lt;br /&gt;
|check gauge and land as soon as possible&lt;br /&gt;
|-&lt;br /&gt;
!colspan=2| TWT Grip lights up&lt;br /&gt;
|-&lt;br /&gt;
|'''Indication'''&lt;br /&gt;
|twist grip not in flight position - engine idles&lt;br /&gt;
|-&lt;br /&gt;
|'''Procedure'''&lt;br /&gt;
|set twist throttle into flight position&lt;br /&gt;
|-&lt;br /&gt;
!colspan=2| MGB P lights up&lt;br /&gt;
|-&lt;br /&gt;
|'''Indication'''&lt;br /&gt;
|Main gear box oil pressure&lt;br /&gt;
|-&lt;br /&gt;
|'''Procedure'''&lt;br /&gt;
|check gauge  and land as soon as possible&lt;br /&gt;
|-&lt;br /&gt;
!colspan=2| FUEL lights up&lt;br /&gt;
|-&lt;br /&gt;
|'''Indication'''&lt;br /&gt;
|low fuel&lt;br /&gt;
|-&lt;br /&gt;
|'''Procedure'''&lt;br /&gt;
|approx. 15min of flight time remain&lt;br /&gt;
|-&lt;br /&gt;
!colspan=2| FUEL P lights up&lt;br /&gt;
|-&lt;br /&gt;
|'''Indication'''&lt;br /&gt;
|low fuel pressure&lt;br /&gt;
|-&lt;br /&gt;
|'''Procedure'''&lt;br /&gt;
|switch on Boost pump&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Helpful Usage Hints for Simulation ==&lt;br /&gt;
[[File:EC130 Grand Canyon Helicopters.jpg|thumb|240px|right|Livery of Grand Canyon Helicopters]]&lt;br /&gt;
[[File:EC130-B4 Blue Hawaiian at coast of Kalaupapa.jpg|thumb|240px|right|Livery of Blue Hawaiian Helicopters]]&lt;br /&gt;
&lt;br /&gt;
Besides the above documentation there is a lot of additional help available from within Flightgear.&lt;br /&gt;
=== Heli Setup ===&lt;br /&gt;
* '''Configuration and Help-Dialog (Alt-o)''' &lt;br /&gt;
** choose the desired '''Livery (Heli-Operator)'''&lt;br /&gt;
** configure the '''Equipment'''&lt;br /&gt;
*** Baskets&lt;br /&gt;
*** Searchlight&lt;br /&gt;
*** Cargo Hook, ... &lt;br /&gt;
** set '''Fuel and Payload'''&lt;br /&gt;
*** fuel amount&lt;br /&gt;
*** passengers&lt;br /&gt;
*** other payload like luggage&lt;br /&gt;
** activate/deactivate '''Specific Views'''&lt;br /&gt;
* --&amp;gt; see '''Menu: EC130-B4 or H130/Configuration (Livery,Payload,...)'''&lt;br /&gt;
&lt;br /&gt;
=== Heli Usage ===&lt;br /&gt;
* '''Info''' about the '''Heli-Operator''' --&amp;gt; see '''Menu: EC130-B4 or H130/Operator/Model Info (Alt-i)'''&lt;br /&gt;
* '''Tutorials''' guide through the preparation and startup process --&amp;gt; see '''Menu: Help/Tutorials'''&lt;br /&gt;
* '''Checklists''' based on pilot handbook help to follow standard procedures --&amp;gt; see '''Menu: Help/Aircraft Checklists'''&lt;br /&gt;
* '''Autostart/Autoshutdown''' available after 5 flights --&amp;gt; see '''Menu: EC130-B4 or H130/Autostart''' or '''Autoshutdown'''&lt;br /&gt;
* '''Shortcuts and general Info''' --&amp;gt; see '''Menu: Help/Aircraft Help'''&lt;br /&gt;
&lt;br /&gt;
== Development history ==&lt;br /&gt;
{{Main article|:{{PAGENAME}}/history}}&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;&amp;gt;&lt;br /&gt;
EC_130_in_Zurich,_Switzerland_in_Autumn_(Flightgear_2018.x).jpg | EC130 in Zurich, Switzerland&lt;br /&gt;
EC 130 on the slope of a shield volcano in Hawaii - Flightgear 2018.x.jpg | EC130 on the slope of a shield volcano in Hawaii&lt;br /&gt;
EC_130_over_the_Carpathian_Mountains_in_Romania_-_Flightgear_2018.x.jpg | EC130 in the Carpathian Mountains (Romanian portion)&lt;br /&gt;
EC130_over_the_Vltava_River_in_the_Czech_Republic_(Flightgear_2018.x).jpg | EC130 over the Vltava river, Czech Republic&lt;br /&gt;
EC130_shadow_effect,_at_Zurich_International_Airport,_Switzerland_(Flightgear_2018.x).jpg| EC130, Shadow effect at Zurich Airport (LSZH)&lt;br /&gt;
Hot Stuff with H130 at Stromboli.jpg|Flying with H130 of Blue Hawaiian next to an eruption of Stromboli volcano.&lt;br /&gt;
EC130_over_the_toe_of_the_Mendenhall_glacier_in_Alaska_(Flightgear_2018.x).jpg| EC130 near the toe of a glacier in Alaska&lt;br /&gt;
EC130 over Carpathian Mountains Autumn - Flightgear 2018.x.jpg | EC130 among the clouds, Carpathian Mountains&lt;br /&gt;
EC130_Mainrotor_front.png | Closeup of EC130 Mainrotor&lt;br /&gt;
EC130_GC_Golden_Copter_Formation-026.jpg | Five helicopter formation of Grand Canyon Helicopters in flight over Arizona&lt;br /&gt;
EC130_crash_fire_smoke-021.jpg | Crashed EC130&lt;br /&gt;
EC130-B4_PR-BOP_Parana_Policia_Militar_4.jpg | EC130-B4 PR-BOP using the SX-16 Nightsun in Parana/Brazil&lt;br /&gt;
H130_people_fgfs-screen-001.jpg | People seated, click to place/remove them&lt;br /&gt;
EC130_luggage_1.png | H130 with one piece of luggage loaded&lt;br /&gt;
H130_ski_luggage.jpg | Left basket with skis&lt;br /&gt;
EC130_EMS_equipment_with_patient.jpg | EMS equipment with patient&lt;br /&gt;
H130_N127LG_LOWI-007.png | H130 of Flight For Life Colorado on Heliport of Innsbruck Hospital&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Eurocopter}}&lt;br /&gt;
[[Category:Interactive Tutorial Support]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Boeing_787-8_Dreamliner&amp;diff=146674</id>
		<title>Boeing 787-8 Dreamliner</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Boeing_787-8_Dreamliner&amp;diff=146674"/>
		<updated>2026-07-29T05:27:25Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
The '''Boeing 787 Dreamliner''', often shortened to Boeing 787, is an American wide-body airliner developed and manufactured by [[Boeing]] Commercial Airplanes. After dropping its unconventional Sonic Cruiser project, Boeing announced the conventional 7E7 on January 29, 2003, which focused largely on efficiency.&lt;br /&gt;
&lt;br /&gt;
The Boeing 787-8 Dreamliner project was initially aimed at improving the systems and [[cockpit]] of the [[Boeing 787|old Boeing 787]]. Initially undertaken by Omega95 and Redneck, the project led to a major overhaul and redevelopment of the predecessor model. The first trace of the project on the forum was from the development of the Boeing 787-8's CDU and since then, it has turned into a community project. A lot of developers and forum users have contributed to make this successful. Another key feature is that whenever findings or innovations have been made, they have gone on to the forum and soon, a lot of wiki HowTo tutorials have been created so that these may help other developers too.&lt;br /&gt;
&lt;br /&gt;
=Tutorial=&lt;br /&gt;
==Downloading 787-8==&lt;br /&gt;
&lt;br /&gt;
You can install 787-8 from the [[FlightGear Qt launcher|launcher]]. Besides, the source code is at [[FGAddon]].  &amp;lt;!-- The master branch aircraft has been merged into FGAddon. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Takeoff==&lt;br /&gt;
Click &amp;quot;Boeing 787-8 &amp;gt; Autostart&amp;quot; in the menu and wait for a moment. When startup is completed, after pressing &amp;lt;code&amp;gt;ctrl+b&amp;lt;/code&amp;gt; to toggle the parking brake, remember to click &amp;quot;Boeing 787-8 &amp;gt; '''Ground Services Controls'''&amp;quot; and uncheck all landing gear chokes and the external power box.&lt;br /&gt;
&lt;br /&gt;
==Other tutorials==&lt;br /&gt;
See these articles for more info:&lt;br /&gt;
* [[Boeing 787-8 Dreamliner: Operating Manual and Checklists]]&lt;br /&gt;
* [[Boeing 787-8 Dreamliner: Video Tutorials]]&lt;br /&gt;
* [[Boeing 787-8 Dreamliner: Control Display Unit Reference Manual]]&lt;br /&gt;
* [[Boeing 787-8 Dreamliner: Flightplan and Procedures Tutorial]]&lt;br /&gt;
&lt;br /&gt;
= Avionics =&lt;br /&gt;
&lt;br /&gt;
==Control Display Unit==&lt;br /&gt;
[[File:Omega95-cdu-boeing-787-8.jpeg|300px|thumb|Boeing 787-8 Dreamliner Control Display Unit]]&lt;br /&gt;
&lt;br /&gt;
A [[Control Display Unit]] (CDU) specifically built for the Boeing 787-8 replaces the generic Boeing CDU and lets you control many of the configurations and settings on the aircraft like VNAV Cruise Settings, the flight plan (with VNAV altitudes,jump to, activate and remove features), Fly-By-Wire Configuration, Departure/Arrival Settings, Electronic Flight Bag (EFB) input etc.&lt;br /&gt;
&lt;br /&gt;
The forum topic for the Boeing 787-8 CDU development can be found in [http://forum.flightgear.org/viewtopic.php?f=18&amp;amp;t=15082 this forum topic].&lt;br /&gt;
&lt;br /&gt;
'''Functions Accessible through the Control Display Unit:'''&lt;br /&gt;
*Electronic Flight Bag Input&lt;br /&gt;
*Fly-by-wire Configuration&lt;br /&gt;
*Vertical Navigation Configuration&lt;br /&gt;
*Flight(plan) Management Computer&lt;br /&gt;
*Automatic Hold Configuration&lt;br /&gt;
*Set Terminal Procedures&lt;br /&gt;
*Flight Logging System&lt;br /&gt;
*Take-off and Approach Reference Speeds (keeps calculation according to weight)&lt;br /&gt;
&lt;br /&gt;
==Vertical Situation Display==&lt;br /&gt;
&lt;br /&gt;
[[File:Omega95-vsd-instrument.jpeg|300px|thumb|Boeing 787-8 Vertical Situation Display]]&lt;br /&gt;
&lt;br /&gt;
A Vertical Situation Display [http://hoeprr.home.xs4all.nl/DreamHC/Download/B737_VSD_Briefing.pdf] is an instrument, part of the Navigational Display (on the MFDs) that show the aircraft's Vertical Navigation Altitudes, Vertical Profile and projects the terrain in front of you. In the Boeing 787-8, it shows approaching terrain for up to 50 miles and also color codes the terrain regions on the basis of danger (red - increase altitude immediately; orange/yellow - advisory; white - safe). The view the Vertical Situation Display, go to the NAV page on any of the MFDs. Note that the VSD is not available on the full-screen ND (NAV page on 2 adjacent MFDs). The VSD is uses a series of Nasal and XML files (which some core developers make like to call 'Hacks') to get functionality of hard coded instruments.&lt;br /&gt;
&lt;br /&gt;
The forum topic for the Vertical Situation Display Development can be found here. [http://forum.flightgear.org/viewtopic.php?f=30&amp;amp;t=15200]&lt;br /&gt;
Hooray is also working on a Wiki HowTo on implementing the VSD in nasal. [[Howto: Implement a Vertical Situation Display in Nasal]]&lt;br /&gt;
&lt;br /&gt;
==New Navigation Display==&lt;br /&gt;
&lt;br /&gt;
The Boeing 787-8 features a new Navigation Display (ND) which features the ability to plot the waypoints and connect them, like in the real ND. [[User:zakalawe]] has been working on a hard coded version of such a display but as we didn't get it at the time, we designed this instrument completely with nasal and XML interactions. Another feature on the Boeing 787-8 is the ability to show a larger Navigation display when both pages are set to NAV on the co-pilot's side MFDs. The larger full screen MFD shows more waypoints and the range can be adjusted between 1 nautical mile and 250 nautical miles. It also shows the airport diagram of the nearest airport positioned and rotated in the right configuration and can be seen better when the range is less than 10 nautical miles.&lt;br /&gt;
&lt;br /&gt;
Another feature of the Boeing 787-8's Navigation Display is a very functional TCAS (Traffic Alert and Collision Avoidance System) which has also been designed completely in Nasal and XML and does not require wxradar to work.&lt;br /&gt;
&lt;br /&gt;
==Electronic Flight Bag==&lt;br /&gt;
Please also see [[Canvas EFB Framework]]&lt;br /&gt;
&lt;br /&gt;
[[File:Omega95-efb-787.jpeg|300px|thumb|Boeing 787-8 Dreamliner Electronic Flight Bag]]&lt;br /&gt;
&lt;br /&gt;
The Electronic Flight Bag (EFB) as the name says is like an electronic database of handy documents and charts. The Electronic Flight Bag on board the Boeing 787-8 can calculate the required amount of fuel for your flight, show any airport's (you can search using the EFB INPUT page on the CDU) information, like elevation, metar and runway information like heading, length, ILS frequency), connect to Virtual Star Alliance's Automatic PIREP System for more functionality, connect to Redneck's FGFSCopilot for logging, show the GPS settings (your position on the world map, course and true headings to your next way-point and distance to your next waypoint. It also has realistic checklists for every phase of the flight, and an operating manual explaining basic maneuvers. You can also &amp;quot;INSTALL&amp;quot; airport diagrams and charts into the '/787-8/EFB-DB' folder which allows you to view them on the CDU (searchable using the EFB INPUT page on the CDU).&lt;br /&gt;
&lt;br /&gt;
===Quick Guide to install and view airport Diagrams===&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Download diagrams from any source, convert them to *.jpg format and rename them '&amp;lt;icao&amp;gt;.jpg'. Then, place them in the EFB-DB folder. Then, use the 'EFB INPUT' page on the CDU to enter the airport ICAO and it displays the diagram on the EFB.&lt;br /&gt;
&lt;br /&gt;
===Quick Guide to install and view SIDs, STARs and IAPs===&lt;br /&gt;
&lt;br /&gt;
* Download the chart you need from any source (I use http://www.airnav.com for US charts and http://www.opennav.com for others), and convert the chart to *.jpg format. (if it's pdf, a good idea is to open it in full view and take a screenshot :wink: )&lt;br /&gt;
* If the airport and chart type folder doesn't yet exist inside the EFB-DB/Charts folder, create them like (for example I want to install the 25L-ILS IAP chart for KLAX) /EFB-DB/Charts/KLAX/IAP/&lt;br /&gt;
*  Now, rename your *.jpg file to the chart name (eg. 25L-ILS.jpg) and place it inside the '/EFB-DB/Charts/KLAX/IAP/' folder.&lt;br /&gt;
* Now, open the /EFB-DB/ChartsList.xml file and add in your chart data (use the older charts' data for the format)&lt;br /&gt;
* Start up the 787, go to the 'Airport Charts' page on the EFB, go to the 'EFB INPUT' page on the CDU and&lt;br /&gt;
** Enter the Airport ICAO and press on the button next to 'Airport ICAO (Enter)' label (or the space under it on the touch-screen CDU)&lt;br /&gt;
** Click on the button next to the 'Chart Type (Select)' label to cycle through SID, STAR and IAP&lt;br /&gt;
** Click on the button next to the 'Chart ID (select)' label to cycle through available charts.&lt;br /&gt;
** Now, hit the 'DISPLAY &amp;gt;' button on the CDU and look at the EFB to see your chart.&lt;br /&gt;
&lt;br /&gt;
Note that for some charts, the orientation may be land-scape and not portrait. But to overcome that, I've put a 'ROTATE' option on the EFB which rotates the chart when you click it. &lt;br /&gt;
&lt;br /&gt;
''The Above has been taken from the forum topic.''&lt;br /&gt;
&lt;br /&gt;
===''Third-Party'' EFB Software===&lt;br /&gt;
&lt;br /&gt;
The Electronic Flight Bag is also meant to provide and interface third-party and/or operating airline softwares. These are not present in the Flight Management Computer by default but we're working on a couple of ''softwares'' for the EFB. This is not ''unrealistic'' because this is one of the main purposes of the Electronic Flight Bag. Here're the ''softwares'' we're working on for the EFB.&lt;br /&gt;
&lt;br /&gt;
====FGFSCopilot Logger====&lt;br /&gt;
&lt;br /&gt;
The [[FGFSCopilot]] is a java program that can do almost everything required from taking off till landing the plane at your destination. The Boeing 787-8 has an FGFSCopilot Log page in the EFB which shows it's connection status and every log message the FGFSCopilot sends to FlightGear.&lt;br /&gt;
&lt;br /&gt;
====VNAV Automatic Altitudes Generator====&lt;br /&gt;
&lt;br /&gt;
The VNAV AutoGen is a third party software on the EFB that automatically calculates ideal vnav altitudes for the active route. To use it, simply create/load a flightplan, copy it to the active route, go to the VNAV Altitudes Gen page on the EFB and click on ''AUTOGEN &amp;gt;''. That would generate altitudes for you which're displayed on the EFB. You can scroll through the waypoints using ''SCROLL UP &amp;gt;'' and ''SCROLL DOWN &amp;gt;''. Finally, if you're happy with the automatically generated altitudes, click on ''COPY TO RTE &amp;gt;'' to move them to the active route.&lt;br /&gt;
&lt;br /&gt;
==Fly-By-Wire System==&lt;br /&gt;
&lt;br /&gt;
The Boeing 787-8 Dreamliner is FlightGear's first Airliner to feature a Fly-by-wire system, but it is not very accurate. The idea behind this fly-by-wire is to get it the pilot's controls (/fdm/jsbsim/fcs/x-cmd-norm : where x can be aileron, rudder or elevator) and work with it and give out another output property (/fdm/jsbsim/fcs/x-fbw-output) which is read by the FDM and control surface animators. The throttles don't have a chain such as the other surfaces so that the pilot can easily override the fly-by-wire (one of Boeing's &amp;quot;philosophies&amp;quot;). At this stage, the fly-by-wire can protect the aircraft from extreme bank angles (flight envelope protection- roll) where the bank angle limit can be set by the pilot in the CDU's 'FBW CONFIG' page, protect the aircraft from extreme alpha angles (flight envelope protection- alpha), calculate the throttle required and set it accordingly to maintain profile on turns, reduce throttle to stay under limits and finally auto-stabilize the plane and maintain the current profile when the yoke is brought back to the center. The Fly-by-wire also dampens the control to prevent any sudden motion. Fly-by-wire can be toggled from the CDU's 'FBW CONFIG' page.&lt;br /&gt;
&lt;br /&gt;
NOTE : To be able to activate alpha-protection, roll-protection and auto-stabilizer, you need to be atleast higher than 3500 feet. This is so that the fly-by-wire doesn't interrupt your approach. &lt;br /&gt;
&lt;br /&gt;
We've also created a tutorial which shows how you can implement the fly-by-wire we wrote for your aircraft : [[Howto: Implement a Fly-By-Wire System for Airliners]]&lt;br /&gt;
&lt;br /&gt;
==Automatic Vertical Navigation==&lt;br /&gt;
&lt;br /&gt;
We have designed the autopilot route manager in the CDU to be able to accept VNAV altitudes for each (or whichever you want) waypoint. On the Dialog Route Manager, enter your waypoint in the format 'WP@ALT' for example, 'KSFO@9000'. So let's say you have different altitudes according to your SID/STAR/IAP till cruise altitude and then different altitudes for your waypoints when you land. Let's assume your flight plan to be:&lt;br /&gt;
DEP, WP1@3500, WP2@10000, WP3@18000, WP4@26000, WP5, WP6, WP7, WP8, WP9, WP10, WP11@20000, WP12@12000, WP13@8500, WP14@4000, DEST&lt;br /&gt;
&lt;br /&gt;
You doesn't have to enter altitudes for WP5 to WP10 because you'll start cruising at WP5 (say you want to cruise FL360 aka. 36000 ft) and stay at 36000 ft till WP10. That means WP11 will be your 'End Cruise' Waypoint, where you aim at when you're out of the cruise.&lt;br /&gt;
&lt;br /&gt;
To set cruise settings, go to the CDU's 'VNAV' page and enter cruise altitude in the respective area. Then enter your cruise start altitude (in this case, WP5) and cruise end altitude (in this case, WP11) in their respective places (there're labels).&lt;br /&gt;
&lt;br /&gt;
Once you're ready, finish other checklists, take off and turn on 'LNAV' and 'VNAV' on the Autopilot. The VNAV is designed to automatically calculate the required/ideal climb/descent rate to get to your waypoint just in time. Out of all the tests we've conducted, the VNAV is VERY accurate at the moment.&lt;br /&gt;
&lt;br /&gt;
==Flight-plan Management System==&lt;br /&gt;
&lt;br /&gt;
[[File:787-8-fpm.jpeg|300px|thumb|Boeing 787-8 Flightplan Manager]]&lt;br /&gt;
&lt;br /&gt;
A flight-plan management system was written for the Flight Management Computer(s). The system, like the real one lets you put in 2 flight-plans (with altitudes), and an alternate airport. You can do everything that you can to the route manager on these 2 flightplans. Boeing likes to call them '''Primary Flightplan''' and '''Secondary Flightplan'''. Once you enter your primary and/or secondary flight-plan, the respective flight-plan's status will show ''READY'' on the flight-plan management page. Then, a new option, ''COPY TO RTE'' will appear under the respective flight-plan and on clicking that, that plan will be moved to the active route. To make any changes to the route, you can either make them to the flight-plan and copy them to the route again or simply work with the active route by clicking on the '''ACTIVE ROUTE''' option in the Flight-plan Management page. An alternate airport is recommended to be entered in the CDU so that in case there's a problem during flight, the plane can be automatically be diverted (by the FMC) without you having to do anything other than pressing the ''DIVERT'' option on the Flight-plan management page. Note that using the ''DIVERT'' button to divert to your alternate airport clears your active route and sets the aircraft on a direct flight to the Alternate Airport.&lt;br /&gt;
&lt;br /&gt;
==Automatic Holding Pattern==&lt;br /&gt;
&lt;br /&gt;
[[File:Boeing-787-8-auto-hold.jpeg|300px|thumb|Boeing 787-8 Automatic Holding as seen in the FlightGear Tracker]]&lt;br /&gt;
&lt;br /&gt;
The Boeing 787-8 features an automatic holding pattern system where you enter the hold fix/navaid, hold radial and hold leg time and the aircraft automatically flies in a holding pattern there. (as described in real Instrument Flight Rules Rating Course (IFR) textbooks) This feature is still being developed at the moment and is not perfected, but it still does the basic thing for you.&lt;br /&gt;
&lt;br /&gt;
We have tested this feature from KIAH (George Bush Intercontinental Airport, Houston) holding at the VOR, LOA (LEONA VORTAC, about 70 miles north-west of KIAH) at a hold radial of 0, and hold leg time 120 seconds. We've been able to hold and re-trace the hold path every lap, but we get a strange shape due to the pid-controller. We're still working on it.&lt;br /&gt;
&lt;br /&gt;
==Traffic Alert and Collision Avoidance System==&lt;br /&gt;
&lt;br /&gt;
[[File:787-8-TCAS.jpeg|300px|thumb|Boeing 787-8 Dreamliner TCAS]]&lt;br /&gt;
&lt;br /&gt;
The Boeing 787-8 Dreamliner features a brand new TCAS (Traffic Alert and Collision Avoidance System) which has a capability of showing 30 Multiplayer aircraft and 20 AI Aircraft on it! Now, you won't have to complain about not seeing all aircraft on VATSIM ;) We're still working on increasing it's capability to 50 each multi-player and AI. &lt;br /&gt;
&lt;br /&gt;
The TCAS has 3 different symbols for each aircraft and 4 different color codes. Each aircrafts' callsign, altitude and true airspeed will also be written next to the sprite. &lt;br /&gt;
&lt;br /&gt;
*The '''Diamond Shaped''' Aircraft sprite shows that the aircraft is ''flying level''.&lt;br /&gt;
*The '''Box with Up Arrow''' shows that the aircraft is ''climbing''.&lt;br /&gt;
*The '''Box with Down Arrow''' shows that the aircraft is ''descending''.&lt;br /&gt;
&lt;br /&gt;
*A '''Cyan or Blue''' Colored Sprite shows that the aircraft is at a safe distance.&lt;br /&gt;
*A '''Yellow''' Colored sprite shows that you need to be aware of traffic nearby.&lt;br /&gt;
*A '''Orange''' Colored sprite shows that you need to either change altitude or course, consult ATC. It is an advisory.&lt;br /&gt;
*A '''Red''' Colored sprite shows that you are in danger and immediately need to follow the TCAS instructions.&lt;br /&gt;
&lt;br /&gt;
The TCAS is configured to sound voice alerts according to the situation. The TCAS voice alerts needs to be followed over the ATC's instruction if they contradict. The TCAS will alert you if you are in danger of collision with MP or AI Aircraft.&lt;br /&gt;
&lt;br /&gt;
==Terrain Map and Weather Radar==&lt;br /&gt;
&lt;br /&gt;
[[File:787-8-terrain-map.jpeg|300px|thumb|Boeing 787-8 Dreamliner Terrain Map]]&lt;br /&gt;
&lt;br /&gt;
The Boeing 787-8 Dreamliner features a terrain radar which creates a terrain map on the MFD when the Navigational Display is set to TERR mode (you can change the mode from the buttons on both sides of the Mode Control Panel). Click on WXR to view the WXRadar (Collins WXR-2100), TERR to view the Terrain Map and CLR to clear the ND. The weather radar is still under development and a working version is not available, but the terrain map uses a 'get little and interpolate' method to create smooth terrain mapping.&lt;br /&gt;
&lt;br /&gt;
==World Map and Flight Path Plotter==&lt;br /&gt;
&lt;br /&gt;
[[File:787-8-wmap.jpeg|300px|thumb|Boeing 787-8 Satellite Imaging]]&lt;br /&gt;
&lt;br /&gt;
Another option to put on the ND is the world map. It's not exactly a terrain map, but rather like satellite imaging. The plane is shown (it's zoomed in) on the map and the plane's path is marked with fading red dots. You can get your ND to show the satellite maps by pressing the WMAP button on the ND mode panel. Note that you can have any 1 of WXR, TERR or WMAP on and to remove them, press the 'CLR' button.&lt;br /&gt;
&lt;br /&gt;
==Airline Flight Management Computer==&lt;br /&gt;
&lt;br /&gt;
[[File:787-8-fmc.jpeg|300px|thumb|Boeing 787-8 Flight Management Computer - FLIGHT INFO]]&lt;br /&gt;
&lt;br /&gt;
The Boeing 787-8 Dreamliner is an Airliner and we can't leave out some of the key features airline manufacturers put in their aircraft. There're 2 major sections in the Flight Management Computer (it's a part of the CDU) - the ROUTE and DEP/ARR. Both pages are accessed from the CDU(s). The Route is directly connected to the Route Manager and doesn't do anything 'special', but the DEP/ARR page lets you work with preset routes, SIDs, STARs, IAPs etc. You can enter the flight number (this is meant for virtual airlines: By default, Merlion's Boeing 787-8 Routes are included in the Database but I'll make a tutorial on how other airlines can put in their data) and be able to search for the flight information. If the airline has specified a Route and/or VNAV Altitudes and Configuration, you can load up those preset routes and altitudes by pressing the 'SET ROUTE &amp;gt;' menu. If a preset route doesn't exist, the FMS will generate a route automatically. A pilot does not have to worry about preset/generated routes. Another feature in the FMC is Scott Hamilton's LevelD-767 NAVDATA Parser, which gets SID/STAR/IAP Data and automatically puts them in the right place in the route manager for you to be able to fly them. This data can be managed from the PROCEDURES option in the DEP/ARR page.&lt;br /&gt;
&lt;br /&gt;
''A much more detailed tutorial of how to use preset routes and automatically set terminal procedures is available in the wiki sub-page: [[Boeing 787-8 Dreamliner: Flightplan and Procedures Tutorial]]''&lt;br /&gt;
&lt;br /&gt;
''We'll also be creating a video tutorial (Dreamliner Tutorial #6) on the Flight Management Computer.''&lt;br /&gt;
&lt;br /&gt;
===FMS Navigational and Terminal Procedures Data===&lt;br /&gt;
&lt;br /&gt;
The Boeing 787-8 Dreamliner and the Airbus A380 (being developed by Scott Hamilton) uses Scott's Level-D 767 NAVDATA Parser to get Navigational Data and Terminal Procedures into the aircraft's Flight Management Computer (Flight Management System on the A380). The FMS Data must be downloaded separately.&lt;br /&gt;
&lt;br /&gt;
By default, the 787-8 contains navigational data for the following airport - WSSS, YBBN, KLAX, KJFK, EGKK for testing purposes and as the Flight Management Computer Tutorial is a flight from KLAX to KJFK.&lt;br /&gt;
&lt;br /&gt;
=Glass Cockpit=&lt;br /&gt;
&lt;br /&gt;
[[File:Omega95-cockpit.jpeg|300px|thumb|Boeing 787-8 Glass Cockpit]]&lt;br /&gt;
&lt;br /&gt;
The Boeing 787-8 Dreamliner has a very complete and realistic modern glass cockpit based of the real Boeing 787-8 cockpit. Almost all of the instruments (excl. Weather radar which is currently coming up, and the voice comm.) are functional and work like the real thing. Multiple views have been created (like the OHP, CDU, EFB, Full Cockpit Views) so that pilots can easily work on different parts without looking away and adjusting view position. &lt;br /&gt;
&lt;br /&gt;
=Systems Overview=&lt;br /&gt;
&lt;br /&gt;
==Electrical System==&lt;br /&gt;
&lt;br /&gt;
The Boeing 787-8 Dreamliner uses a modified version of Syd Adam's Jet Electrical System. Backup Generators have been added, a Ram Air Turbine Generator has been implemented and the APU loop has been modified. There are 5 major power sources available are:&lt;br /&gt;
* Engine Generators (L1 and R1 are main generators and L2 and R2 are backup)&lt;br /&gt;
* Battery&lt;br /&gt;
* Primary and Secondary External Power&lt;br /&gt;
* APU Generators (Auxiliary Power Unit must be started and running for the APU Generators to provide power)&lt;br /&gt;
* Ram Air Turbine (used in case of dual engine failures to provide just enough power for Central Hydraulic Systems (C1 and C2) and Instruments.&lt;br /&gt;
&lt;br /&gt;
To Understand the Electrical System better, take a look at the 'ELEC' page on any of the MFDs on board.&lt;br /&gt;
&lt;br /&gt;
==Hydraulic System==&lt;br /&gt;
&lt;br /&gt;
The Hydraulic System on-board is very advanced and does the job it's supposed to do.&lt;br /&gt;
There are 3 basic Hydraulic Systems - Left Engine Hydraulics, Right Engine Hydraulics and Central Electrical Hydraulics. Both Left and Right Engine Hydraulic Systems are pressurized by Engine pumps which require the engines to be running. These pumps pressurize the L and R systems that are connected to the flaps, spoilers, brakes and landing gears. Therefore, you need atleast 1 of the 2 Engine pumps to be running to be able to use these. But, the landing gear has an 'alternate gravity drop system' which you can use to get your gear down in case of a hydraulic failure.&lt;br /&gt;
The Central System has 2 electric pumps that control pressure to the hydraulic system that controls the ailerons, rudder and elevators. Only 1 of the 2 pumps have to be turned on at a time, and the other can be used as backup in case of a failure. The hydraulic pumps can overheat and fault if not adequately cooled, refer to the 'Pneumatics and Air Conditioning System' for more information on this.&lt;br /&gt;
&lt;br /&gt;
To Understand the Hydraulic System better, take a look at the 'HYD' page on any of the MFDs on board.&lt;br /&gt;
&lt;br /&gt;
==Pneumatic System==&lt;br /&gt;
&lt;br /&gt;
The Boeing 787-8's pneumatic and Air-conditioning system controls bleed and flow of air through packs (and trim) which are then used to cool the equipment on board. The pneumatic system is pretty simple, you have 2 packs, 2 trim air controls, a gasper, and engines and APU bleed. The 787's systems automatically control bleed according to what is required and available, but you'll have to control the trim and packs. Equipment Cooling is an option on the Pneumatics panel which passes cool air into the hydraulic and fuel pumps to prevent them from overheating. When a pump overheats, you get a warning and if you do not either turn it off or switch on equipment cooling, the pump can fault. The 'PNEU' page on the MFDs show you more information on equipment temperatures and Pneumatic settings.&lt;br /&gt;
&lt;br /&gt;
==Fuel Control System==&lt;br /&gt;
&lt;br /&gt;
The Fuel Control System let's you control the 7 fuel pumps on board the 787-8 Dreamliner (2 Left Tank Pumps, 2 Central Tank Pumps, 2 Right Tank Pumps and a Crossfeed pump). The left tank and central tank pumps pump fuel from these tanks to the left engine, while the right tank and central tank pumps pump fuel from these tanks to the right engine. In case of a fuel imbalance, you can turn on the crossfeed pumps to transfer fuel from the tank with excess fuel to the one with low fuel. &lt;br /&gt;
&lt;br /&gt;
===Fuel Jettison===&lt;br /&gt;
&lt;br /&gt;
The Aircraft has a complete fuel jettison system where you can select which wing nozzle to jettison from, arm jettison and use a knob to define the dump rate. If the Left Nozzle is activated and Fuel Jettison is armed, you dump fuel from the left and central tanks, and the same for the right nozzle. Note that the 787 will NOT let you dump fuel if you have less than a critical value.&lt;br /&gt;
&lt;br /&gt;
==Heating System==&lt;br /&gt;
&lt;br /&gt;
[[File:Omega95-window-heating.jpeg|300px|thumb|Ice starts building up on the windows if temperature is sub-zero and window heating is turned off.]]&lt;br /&gt;
&lt;br /&gt;
The Heating System on board controls 4 different heating equipment. First of all, let's get into &amp;quot;natural icing&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Natural Icing at certain Conditions===&lt;br /&gt;
&lt;br /&gt;
If your TAT (Total Air Temperature) value is under 10, your wings, engines and wind shield can start picking up ice. Window Ice simply forms on the window and obstructs your view out of the cockpit. Whereas, wing ice actually affects your lift and drag in the FDM! As for engine ice, if you have extremely high amounts of ice, the engines can fault and you might have to cool and then restart them.&lt;br /&gt;
&lt;br /&gt;
Note that Engine surges are NOT due to ice build up. If you get an engine surge while flying, you might either be flying over Vne, or in extreme weather conditions with N1 above safe limit in those conditions.&lt;br /&gt;
&lt;br /&gt;
===The Aircraft's way of Taking care of Ice===&lt;br /&gt;
&lt;br /&gt;
The '''Window Heating''' switches on the overhead panel enables a heater to start melting the ice on the windshield letting you see outside clearly.&lt;br /&gt;
&lt;br /&gt;
The '''Anti-Ice''' knobs (2 engine knobs and a wing anti-ice knob) let you control the heating equipment on the respective areas. &lt;br /&gt;
&lt;br /&gt;
The 'HEAT' page on the MFD should have more information on the Heating Systems.&lt;br /&gt;
&lt;br /&gt;
==Gear System==&lt;br /&gt;
&lt;br /&gt;
The Boeing 787-8 dreamliner has 3 retractable gear units, the nose gear has 2 tires, and the main landing gears have 4 each in a square layout. The gear system manages gear compression and failures (stuck, tires burst and break off) on the basis of airspeed, wow and compression.&lt;br /&gt;
&lt;br /&gt;
The gears system can be monitored from the 'GEAR' page on the MFD(s).&lt;br /&gt;
&lt;br /&gt;
==Ground Service Controls==&lt;br /&gt;
&lt;br /&gt;
[[File:787-ground.jpeg|300px|thumb|Boeing 787-8 Ground Service Controls]]&lt;br /&gt;
&lt;br /&gt;
[[File:787-ground_1.jpeg|300px|thumb|Boeing 787-8 Ground Services (Right)]]&lt;br /&gt;
&lt;br /&gt;
[[File:787-ground_2.jpeg|300px|thumb|Boeing 787-8 Ground Services (Left)]]&lt;br /&gt;
&lt;br /&gt;
===Fuel Truck===&lt;br /&gt;
&lt;br /&gt;
The fuel truck (MENU: Boeing 787-8 &amp;gt; Fuel Truck Controls) can be enabled/disabled and connected/disconnected from the aircraft's fuel value under the wing. You can enter an amount of fuel in the request fuel quantity input and ask the truck to re-fuel the aircraft to that quantity. You can also ask it to drain the fuel tanks.&lt;br /&gt;
&lt;br /&gt;
===De-icing Truck===&lt;br /&gt;
&lt;br /&gt;
The de-icing truck along with the other ground services can be controls from the ''Ground Services Controls'' menu (MENU: Boeing 787-8 &amp;gt; Ground Services Controls). The de-icing truck can be enabled/disabled and you can also de-icing the aircraft. The de-icing process includes the truck animations and actually de-icing the aircraft! &lt;br /&gt;
&lt;br /&gt;
===External Power Box===&lt;br /&gt;
&lt;br /&gt;
The External Power box is a stand-alone generator that provides external power to the aircraft. When enabled, it is connected to the external power socked under the aircraft's left wing. Note that this needs to be enabled so that you get external power. When you start FlightGear, the external power will be enabled by default.&lt;br /&gt;
&lt;br /&gt;
===Landing Gear Chocks===&lt;br /&gt;
&lt;br /&gt;
Landing gear chocks are triangular prism shaped blocks that are placed in front of and behind the landing gears to prevent the aircraft from moving. These chocks will also prevent the aircraft from moving in FlightGear and are enabled by default on start up. Note that to get the aircraft moving, you need to remove the parking brakes and chocks.&lt;br /&gt;
&lt;br /&gt;
===Catering Truck===&lt;br /&gt;
&lt;br /&gt;
The catering truck can be enabled/disabled and toggled. The ''Toggle Catering'' option is to lift/lower the catering box and connect to the the R1 Door. It doesn't do anything else.&lt;br /&gt;
&lt;br /&gt;
===Baggage Ramp and Trailers===&lt;br /&gt;
&lt;br /&gt;
These're just models and don't do anything at the moment.&lt;br /&gt;
&lt;br /&gt;
==System Failure Simulation==&lt;br /&gt;
&lt;br /&gt;
[[File:787-failures.jpeg|300px|thumb|Boeing 787-8 Failure Simulator]]&lt;br /&gt;
&lt;br /&gt;
The aircraft has a built-in failure simulation dialog where you can get different systems to fail in different ways. The failure simulation dialog can do the following:&lt;br /&gt;
* Flame-out any of the engines&lt;br /&gt;
* Fail any of the engines&lt;br /&gt;
* Set any of the engines on fire&lt;br /&gt;
* Burst any of the Wheel Tyres&lt;br /&gt;
* Have a gear unit ''break-off''&lt;br /&gt;
* Stuck a gear unit in it's current position&lt;br /&gt;
* Fail individual hydraulic systems&lt;br /&gt;
* Overheat any of the hydraulic or fuel pumps&lt;br /&gt;
* Fault any of the hydraulic or fuel pumps&lt;br /&gt;
&lt;br /&gt;
Other general failures like Electrical, Static etc. have not been implemented in this dialog as they can already be controlled with FlightGear's Generic System Failures dialog.&lt;br /&gt;
&lt;br /&gt;
''NOTE: When you flame-out an engine, it can be restarted, but not in the case of a failure. Faults just means that the pump is too hot to function, but it can be restarted when cooled.''&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT!'''&lt;br /&gt;
*In case of an engine surge, (this cannot be toggled by user as it requires certain weather conditions and N1 to occur) immediately reduce throttle and get the N1 under 65%. If you're flying too fast, try to slow down and avoidance extreme weather (heavy rain and snow) would be a nice idea if you want to prevent surges.&lt;br /&gt;
*In case of an engine fire, pull the respective engine's fire extinguisher lever (it's right behind the throttle quadrant) and cutoff fuel to that engine. If the fire persists and you don't extinguish it, the engine may face an explosion and severe damage will be inflicted, leaving that engine unusable (basically, you can't restart it)&lt;br /&gt;
&lt;br /&gt;
=Virtual Copilot=&lt;br /&gt;
&lt;br /&gt;
Johan G posted in the Boeing 787-8 Dreamliner Forum Topic:&lt;br /&gt;
''I really see why there could be a real need to have a copilot along when &amp;quot;flying in&amp;quot; the aircraft during pilot conversion.''&lt;br /&gt;
&lt;br /&gt;
Basically, the systems are very complex that it might be difficult for just 1 person to control the plane and manage the systems. As an immediate solution, the virtual copilot can announce ref. speeds, control flap lever, control gear lever, control heating and pneumatics, set altimeter setting and engage thrust reverser's and spoilers on touchdown. You can select exactly what you want ''him'' to do in the Virtual Copilot Settings Dialog.&lt;br /&gt;
&lt;br /&gt;
On the other hand, we're working on a new advanced dual control system which allows the copilot to completely control the aircraft and see all instruments over multiplayer.&lt;br /&gt;
&lt;br /&gt;
=Aircraft Status and ToDo List=&lt;br /&gt;
&lt;br /&gt;
==Flight Dynamics Model: 4==&lt;br /&gt;
&lt;br /&gt;
* The Boeing 787-8 has a JSBSim FDM matching a lot of results from http://www.lissys.demon.co.uk/samp1/desmis.html&lt;br /&gt;
* We don't have more detailed test results. so we can't test everything yet. Once we get that, we need to tune the FDM further.&lt;br /&gt;
&lt;br /&gt;
==Aircraft Systems: 4==&lt;br /&gt;
&lt;br /&gt;
* The Aircraft has very advanced systems imitating realistic systems from the real 787.&lt;br /&gt;
* Random/Checkable Failures purposely haven't been implemented as random is never realistic. But Engine failures, ice etc. occur in the appropriate conditions.&lt;br /&gt;
* The 787-8 has very advanced instruments, flight management computer, hydraulic, electric, pneumatic, heating, fuel etc. systems.&lt;br /&gt;
&lt;br /&gt;
==Cockpit and Instruments: 4==&lt;br /&gt;
[[File:787-8-cockpit-panorama.jpeg|500px|thumb|Panoramic View of the 787-8 Dreamliner Cockpit]]&lt;br /&gt;
&lt;br /&gt;
* The cockpit is very detailed and most buttons are there and functional.&lt;br /&gt;
* The instrument displays are very advanced and functional, the ND could be replaced by a hard coded version though.&lt;br /&gt;
* A Camera View instrument is supposed to be there but isn't, but we're working on a hard coded camera view instrument.&lt;br /&gt;
* The aircraft uses textures extracted from pictures and ambient occlusions created with blender.&lt;br /&gt;
* The complete cockpit has been light-mapped and looks very good at night too.&lt;br /&gt;
&lt;br /&gt;
==Model: 4==&lt;br /&gt;
&lt;br /&gt;
* The model is still from the old 787-8, there's the basic model without a cabin, rods aren't yet complete either.&lt;br /&gt;
* The landing gears have been re-done and look a lot better now, but the model has a much better scope of improvement.&lt;br /&gt;
* The Model Rating has been taken right out of the old Boeing 787-8&lt;br /&gt;
&lt;br /&gt;
==Aircraft of the month==&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|WlzEoCsJvz4|480|center}}&lt;br /&gt;
&lt;br /&gt;
Thanks to Oscar [http://www.youtube.com/user/osjcag] for the amazing ''Aircraft of the Month Review Video'' for the Boeing 787-8 Dreamliner.&lt;br /&gt;
&lt;br /&gt;
=Related content=&lt;br /&gt;
* Another 787 family merging legoboyvdlp's abandoned 787-9 with the FGAddon 787-8: [https://github.com/IskenderWang/787-family github.com/IskenderWang/787-family]&lt;br /&gt;
&lt;br /&gt;
{{Appendix|all|&lt;br /&gt;
* {{Cite web|url=http://www.bristol.ac.uk/aerospace/msc/avadi/units/projects/ub2009f/group7/7878summarysheet.pdf |title=787-8 Summary Sheet |date=21 January 2009 |publisher=Department of Aerospace Engineering, University of Bristol }}&lt;br /&gt;
* {{Cite web|url=http://www.wpafb.af.mil/shared/media/document/AFD-090121-023.pdf |title=The Boeing 787 Aircraft |work=Air Force HSI |publisher=Wright-Patterson Air Force Base }}&lt;br /&gt;
* {{Cite web|url=http://www.boeing.com/commercial/aeromagazine/articles/qtr_4_07/AERO_Q407.pdf |title=AERO Quarterly |date=2007 |publisher=Boeing}}&lt;br /&gt;
}}&lt;br /&gt;
----&lt;br /&gt;
{{references}}&lt;br /&gt;
&lt;br /&gt;
{{boeing}}&lt;br /&gt;
[[Category:Red Griffin ATC compatible aircraft]]&lt;br /&gt;
[[zh:Boeing_787-8_Dreamliner]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Boeing_777&amp;diff=146673</id>
		<title>Boeing 777</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Boeing_777&amp;diff=146673"/>
		<updated>2026-07-29T05:26:18Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Tiller */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{note|The 777 is undergoing restructuring with new JSBSim flight dynamics.}}&lt;br /&gt;
{{:{{PAGENAME}}/info}}&lt;br /&gt;
{{screenshot cat&lt;br /&gt;
| category = Boeing 777 screenshots&lt;br /&gt;
| subject  = the Boeing 777&lt;br /&gt;
| image    = CAS777.png&lt;br /&gt;
}}&lt;br /&gt;
The '''Boeing 777''' is a long-range, wide-body twin-engine airliner built by Boeing Commercial Airplanes. The world's largest twinjet and commonly referred to as the &amp;quot;Triple Seven&amp;quot;, it can carry between 283 and 368 passengers in a three-class configuration and has a range from 5,235 to 9,450 [[nautical mile]]s (9,695 to 17,500 km). Distinguishing features of the 777 include the six wheels on each main landing gear, its circular fuselage cross section, the largest diameter turbofan engines of any aircraft, the pronounced &amp;quot;neck&amp;quot; aft of the flight deck, and the blade-like tail cone.&lt;br /&gt;
&lt;br /&gt;
As of February 2026, more than 60 customers have placed orders for 2,457 777s across all variants, of which 1,781 have been delivered.&amp;lt;ref name=&amp;quot;wikipedia-777&amp;quot;&amp;gt;{{wikipedia|Boeing 777}}&amp;lt;/ref&amp;gt; The main competitors were initially the [[Airbus A340]] and the [[MD-11]], and since 2015 the [[Airbus A350]]. First-generation 777-200 variants are to be supplanted by [[Boeing 787]].&lt;br /&gt;
&lt;br /&gt;
== Systems ==&lt;br /&gt;
&lt;br /&gt;
The Boeing 777 is an advanced fly-by-wire aircraft, and the systems are moderately complicated. &lt;br /&gt;
&lt;br /&gt;
=== Brief Overview ===&lt;br /&gt;
The video below is a brief introduction of the Boeing 777's new system of the new Seattle Project working with FlightGear Version 3.2 Test Release.&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|EoNQ1NpcnMw}}&lt;br /&gt;
&lt;br /&gt;
From the forum   : &amp;lt;blockquote&amp;gt;&amp;quot;For anyone who might be interested, our discord server for 777 development is now open to everyone - both developers and flyers! You're welcomed to discuss everything about this craft in this server, including posting screenshots, reporting bugs, posting suggestions for development, or contributing directly to this plane here.&amp;quot; [https://discord.gg/k5RXxFgGDA Discord Channel] &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
The Boeing 777 series are fly-by-wire aircraft and like all Boeing aircraft have yokes.  The signals are sent electrically to the hydraulic actuators which move the control surfaces. The fly-by-wire system has been simulated within the limitations of YAsim.&lt;br /&gt;
&lt;br /&gt;
- Roll Control Law with attitude holding and bank angle protection&lt;br /&gt;
&lt;br /&gt;
- C*U Pitch Law and Trim Ref function with Flare Mode and Autotrim&lt;br /&gt;
&lt;br /&gt;
- Rudder Ratio, Yaw Damper and Turn Coordinator&lt;br /&gt;
&lt;br /&gt;
=== Engines ===&lt;br /&gt;
{{Note|The engines listed are not simulated properly, which will be corrected in the JSBSim rework}}&lt;br /&gt;
{{aero-stub|section=1}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Model&lt;br /&gt;
! 777-200 !! 777-200ER !! 777-200LR !! 777F !! 777-300 !! 777-300ER&lt;br /&gt;
|-&lt;br /&gt;
! Engines (Turbofans)&lt;br /&gt;
| {{wikipedia|General_Electric_GE90|GE90-76B}} or {{wikipedia|Pratt_%26_Whitney_PW4000|PW4077}} or {{wikipedia|Rolls-Royce_Trent_800|RR Trent 877}} || GE90-90B or PW4090 or RR Trent 895 || GE90-110B1 || GE90-110B1 || PW4090 or RR Trent 892 || GE90-115B&lt;br /&gt;
|-&lt;br /&gt;
! Max Thrust&lt;br /&gt;
| 81,070 lbf (361 kN) || 94,000 lbf (418 kN) || 110,760 lbf (493 kN) || 110,760 lbf (493 kN) || 91,450lbf (407 kN) || 115,300 lbf (513 kN)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Electrical ===&lt;br /&gt;
The Boeing 777 has a basic electrical system implemented. There are plans to improve it in 2026. Enable the battery to gain access to the flight displays. Use ground power or the APU to have sufficient power to start the engines. The engines provide electrical power in flight. The APU can provide backup electrical power in case of an engine failure. The Ram Air Turbine (RAT) has yet to be implemented.&lt;br /&gt;
=== Hydraulic ===&lt;br /&gt;
The current Boeing 777 hydraulics systems have been implemented to a high level. Most functions are working as per the Flight Crew Operational Manual (FCOM) as of December 2025.&lt;br /&gt;
&lt;br /&gt;
The hydraulic systems can (and must) be fully controlled via the 3D cockpit switches on the overhead panel. As in real life, the following behavior should be expected:&lt;br /&gt;
* The Left hydraulic system is powered by a primary engine driven pump (EDP) and supplemented by an on-demand Electric motor pump (ACMP). It operates the wing &amp;amp; tail flight controls (ailerons, elevators, rudder) and left thrust reverser operation.&lt;br /&gt;
* The Right system is similary powered by by a primary EDP from the right engine and supplemented by a demand ACMP. It operates flight controls, right thrust reverser operation and the normal brakes system.&lt;br /&gt;
* The Center system is powered by two primary ACMP's and supplemented by two demand air turbine-driven pumps (ADP). It operates the landing gear actuation, nose &amp;amp; main gear steering, flaps &amp;amp; slats, flight controls and the reserve brake system.&lt;br /&gt;
The lower EICAS (Multi Functional Display - MFD) provides a good insight in the hydraulics systems and is fully animated. Enable it by pressing the &amp;quot;HYD&amp;quot; switch on the right hand EFIS panel on the glareshield.&lt;br /&gt;
&lt;br /&gt;
When no engine is running, the APU (if running) and/or Ground Power (if connected and activated) can provide power to the electric pumps. When a single source of electric power is available, some pumps will be load shed.&lt;br /&gt;
&lt;br /&gt;
During normal operation, the primary pumps of each system will be running and providing hydraulic power to the different systems. When a higher demand is requested (e.g. landing gear retraction, flaps or reverser deployment...) the demand pump(s) of the associated system might come on and provide additional pressure to the system. When the aircraft detects a takeoff (thrust setting &amp;gt;=40% N1), the pumps will enter takeoff mode: next to the primary pumps, all demand pumps will be turned on to anticipate high demand for gear and flaps retraction and/or high brake and reverser demand in the case of a rejected takeoff. Similarly, when the plane detects a final approach (gear down or flaps &amp;gt;= 15), the hydraulics systems will enter Landing mode: both engine demand pumps and the C1 demand pump will be switched on until the plane has landed and two minutes have passed or hydraulics demand (flaps retraction...) is low, whichever is later. It will also deactivate in case of a go around and be armed again when detecting a potential landing again.&lt;br /&gt;
&lt;br /&gt;
Three hydraulic fluid reservoirs are providing fluid to the respective hydraulics systems. If the user wants, they can enable fluid depletion in the 777 &amp;gt; &amp;quot;Aircraft settings&amp;quot; menu. If fluid depletion is enabled, a slow amount of fluid will disappear whenever the system is under high demand and/or certain conditions are met, to simulate small leaks by wear and tear as in real life. The fluid levels can be checked in the 777 &amp;gt; &amp;quot;Ground services&amp;quot; menu and can be replenished again when the aircraft is on the ground. On the MFD a scale of the current fluid is shown for each reservoir. Be aware that this shows the fluid level compared to the standpipe level that provides fluid to some of the pumps. If the scale reads 0.00, there might still be fluid left in the system that is available to some of the pumps (left/right system: engine demand pumps, center system: primary C1 pump), to provide emergency power to the system. When actively running a pump for more than 10 seconds without fluid, it will overheat and become inoperational. When fluid is replenished, it can be reactivated after it has cooled down again (in real operations replenishing fluid is done during the preflight ground procedures, and an empty reservoir will always trigger an extended revision to check for leaks). Hydraulic leaks can be simulated by setting the property &amp;quot;consumables/hydraulics/reservoir[x]/Leak&amp;quot; to anything above 0. The higher the number and the more pressure in the system, the faster the hydraulic fluid will leak. These properties will be activated automatically when a fault system is implemented on the aircraft at a later time.&lt;br /&gt;
&lt;br /&gt;
During normal operations, always make sure that the right hydraulics system is pressured first and depressured last before enabling the center system hydraulic pumps, otherwise hydraulic fluid might transfer between the right and center system via the brakes, resulting in a potential overfill or unwanted drainage of any of these systems. When no hydraulic pressure is available in the right (normal brakes) or center (alternate/reserve brakes) system, the brake accumulator will provide brake pressure when it is sufficiently charged. Its charge can be seen below the PFD of the captain. When parking the plane for an extended period of time, the brake accumulator will very slowly lose pressure to maintain the parking brakes. After about 8-10 hours, the brakes might release because the pressure has dropped too low. When the parking brake is released because of lack of accumulator pressure, this will not be clear to the flight crew: the &amp;quot;Parking Brake Set&amp;quot; indication will remain lit but the brakes will not be operational. If storing the plane for a long time, make sure to use wheel chocks to secure the plane. The brake accumulator pressure is stored between FlightGear sessions if the &amp;quot;store fuel levels&amp;quot; option has been ticked in the 777 &amp;gt; &amp;quot;Aircraft settings&amp;quot; menu.&lt;br /&gt;
&lt;br /&gt;
The hydraulic system will be further improved after a few other systems have been improved, these improvements are still in planning as of December 2025:&lt;br /&gt;
&lt;br /&gt;
* Ram Air Turbine is not implemented yet: backbones are in place, but actual RAT model and deployment need further development (requires new 3D model, requires improved electrical system)&lt;br /&gt;
* Implement main gear passive steering during pushback (current implementation uses active steering)&lt;br /&gt;
* Implement fault system to the 777, so random leaks/issues can occur&lt;br /&gt;
* Implement auto control failure (requires fault system)&lt;br /&gt;
* Improve air driven pumps simulation (requires functional Air System)&lt;br /&gt;
* Improve pump overheat simulation (requires fault system)&lt;br /&gt;
* Improve primary C2 pump load shedding (requires improved electrical system)&lt;br /&gt;
* Improve L/R shutoff valve operation (requires fault + engine fire system)&lt;br /&gt;
* Apply hydraulic power to individual flight control surfaces and model flight dynamics effects (requires new 3D model and FDM)&lt;br /&gt;
&lt;br /&gt;
=== Autopilot ===&lt;br /&gt;
[[File:777-300-APpanel.png|thumb|270px|777-300 Autopilot]]&lt;br /&gt;
The 777 autopilot can be fully controlled using the 3D cockpit switches. You can use the mouse scroll wheel on all cockpit knobs. An Autoland system is available.&lt;br /&gt;
&lt;br /&gt;
You can also use the 777's built-in autopilot tutorial to learn about the different switches.&lt;br /&gt;
&lt;br /&gt;
Autopilot controls, from left to right, top to bottom:&lt;br /&gt;
* '''A/P''' - Autopilot engage/disengage button&lt;br /&gt;
* '''F/D''' - Flight director (the pink lines that show up on your attitude indicator)&lt;br /&gt;
* '''A/T ARM (L/R)''' - Arm/disarm autothrottle for left/right engines. Must be armed to enable autothrottle for the respective engine.&lt;br /&gt;
* '''CLB CON''' - Continue climbing using the vertical speed the plane was at, when this setting was first engaged&lt;br /&gt;
* '''A/T''' - Autothrottle engage/disengage button. Like the real 777, the autothrottle is independent from the main autopilot, so autothrottle also also works when the autopilot is disabled (Note: this was different for FG2.0 and earlier!).&lt;br /&gt;
* '''IAS &amp;lt;&amp;gt; MACH''' - Switch between IAS speed mode and Mach number speed mode&lt;br /&gt;
* '''IAS window''' - Set your desired IAS speed or Mach speed here&lt;br /&gt;
* '''LNAV''' - Tells the autopilot to follow the Route Manager settings laterally (control the heading).&lt;br /&gt;
* '''VNAV''' - Same as LNAV, except vertically (control the altitude). The autopilot will climb to the flight level you set in the Route Manager (in the input field or at a specified waypoint).&lt;br /&gt;
* '''FLCH''' - Flight Level Change, set the altitude and press FLCH to climb or descent to designated flight level. Thrust is set to a fixed value, speed is controled with pitch.&lt;br /&gt;
* '''A/P DISENGAGE''' - Dedicated autopilot disengage button (click twice). It serves as an easy to reach &amp;quot;emergency disengage&amp;quot; button.&lt;br /&gt;
* '''HDG &amp;lt;&amp;gt; TRK''' - Switch between heading bug and course track&lt;br /&gt;
* '''HDG window''' - Set your desired heading or course track here.&lt;br /&gt;
* '''HDG select''' - Engage/disengage heading or course hold mode and maintain SELECTED heading (FG2.5.0 and newer).&lt;br /&gt;
* '''Bank limits''' (AUTO/5/10/15/20/25) - Define banking limits for turning, i.e. 5 for gentle turns at cruising altitude, 25 for good maneuverability at lower speeds; auto will be fine in most cases.&lt;br /&gt;
* '''HOLD''' - Engage/disengage heading or course hold mode and maintain CURRENT aircraft heading.&lt;br /&gt;
* '''V/S &amp;lt;&amp;gt; FPA''' - Switch between Vertical Speed and Flight Path Angle&lt;br /&gt;
* '''V/S window''' - Set your desired Vertical Speed or Flight Path Angle&lt;br /&gt;
* '''VS/FPA''' - Engage/disengage Vertical Speed/Flight Path Angle hold mode&lt;br /&gt;
* '''ALTITUDE window''' - Set your desired altitude here&lt;br /&gt;
* '''Altitude selection''' (AUTO/1000) - Switch between automatic incrementing (AUTO) and incrementing by the thousands (1000)- this setting only helps when selecting the altitude via the knobs, this won't apply if using the Autopilot Settings dialog&lt;br /&gt;
* '''HOLD''' - Engage/disengage altitude hold mode&lt;br /&gt;
* '''LOC''' - Track LOCALIZER, flying by the heading given by the localizer&lt;br /&gt;
* '''APP''' - Arm the ILS localizer and glideslope (laterally and vertically). Any current AP mode (HDG and ALTITUDE HOLD) remains active, until the NAV receiver captures the localizer or glideslope.&lt;br /&gt;
* '''A/P''' - Engage/disengage autopilot&lt;br /&gt;
* '''F/D''' - Flight director&lt;br /&gt;
==== How to use ====&lt;br /&gt;
* '''Default mode of when autopilot engage'''&lt;br /&gt;
HDG HOLD mode: Maintain heading when engage.&lt;br /&gt;
ATT mode: If bank angle exceeds 5deg when engaged, keep that bank angle. (there's bug, will be fixed)&lt;br /&gt;
VS mode: using vs value when engaged.&lt;br /&gt;
If FD mode was engaged, mode is inherited.&lt;br /&gt;
&lt;br /&gt;
* '''Mode'''&lt;br /&gt;
Lateral control&lt;br /&gt;
&lt;br /&gt;
HDG HOLD: keep set heading.&lt;br /&gt;
HDG SEL: follow the heading set on counter. Change value when HDG HOLD or press SEL button when other mode such as VNAV, LOC mode. Once reach to setting heading change to HDG HOLD.&lt;br /&gt;
LNAV: follow the activated route.&lt;br /&gt;
LOC: when arming, keep previous mode and then capture LOCALIZER, follow that course.&lt;br /&gt;
&lt;br /&gt;
Vertical control&lt;br /&gt;
&lt;br /&gt;
VS : keep targeted vertical speed to reach selected altitude.&lt;br /&gt;
FLCH : keep fixed climb thrust or flight idle and control the pitch to maintain speed thus vertical speed varies.&lt;br /&gt;
VNAV : Follow the FMS target altitude and thrust.&lt;br /&gt;
ALT HOLD : When you press HOLD button, keep altitude when button pressed. Counter value does not change. Once VS of FLCH reaches targeted altitude, it holds that altitude.&lt;br /&gt;
&lt;br /&gt;
=== Flight Management Computer ===&lt;br /&gt;
{{aero-stub|section=1}}&lt;br /&gt;
&lt;br /&gt;
==Aircraft Help==&lt;br /&gt;
The developers recommend using the in-sim checklists (accessible via the menu: Help &amp;gt; Aircraft Checklists) instead of the checklist below.&lt;br /&gt;
&lt;br /&gt;
=== Start Procedure (Fast)===&lt;br /&gt;
* Go to Equipment &amp;gt; Fuel and Payload and set your fuel amounts and make sure your tanks are selected&lt;br /&gt;
* Right-click twice to get into the move view mode and look at the overhead panel then click all the electrical buttons until they are all lit up&lt;br /&gt;
* Hold the 's' button for 10 seconds or until the engines are running at idle.&lt;br /&gt;
&lt;br /&gt;
=== Start Procedure (Extended Version) ===&lt;br /&gt;
'''0. remember to'''&amp;lt;br&amp;gt;&lt;br /&gt;
''a) set the correct QNH (pressure) when below transition level&amp;lt;br&amp;gt;&lt;br /&gt;
b) set the fuel to a proper level in each tank (so you dont mess with the sliders when airborne)&amp;lt;br&amp;gt;&lt;br /&gt;
c) you can use ctrl+c to reveal all usable buttons and knobs''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''1. prepare systems'''&amp;lt;br&amp;gt;&lt;br /&gt;
a) turn on the battery, taxi lights and panel lights if you need it (button is placed)&lt;br /&gt;
to tle left, left from the BCN light button.&amp;lt;br&amp;gt;&lt;br /&gt;
b) turn the APU knob clockwise (the knob next to the APU GEN), wait 1min for it to start-up&amp;lt;br&amp;gt;&lt;br /&gt;
b1) set APU knob to the middle position&amp;lt;br&amp;gt;&lt;br /&gt;
c) turn on all 4 hydraulic pumps/valves. 2 in the center are for the flaps and spoilers (both&amp;lt;br&amp;gt;&lt;br /&gt;
pumps MUST be enabled), the same with the other two, they are for landing gear. the&lt;br /&gt;
buttons are between electrical and fuel part of the panel.&lt;br /&gt;
&lt;br /&gt;
'''2. prepare engines'''&amp;lt;br&amp;gt;&lt;br /&gt;
a) start fuel pumps. there are 6: 2 for each tank. to enable fuel flow from a tank, you have&lt;br /&gt;
to enable BOTH (just like with the hydraulics) pumps.&amp;lt;br&amp;gt;&lt;br /&gt;
b) enable the engine starters (you can turn on both one after another, but thats not really realistic)&amp;lt;br&amp;gt;&lt;br /&gt;
c) after N1 reach ~45, engine should be running on its own, self sustaining, fuel cutoff valves open&lt;br /&gt;
automatically. eicas shows up a message that L(R) ENG STARTER is on.&amp;lt;br&amp;gt;&lt;br /&gt;
d) turn on both engine generators&amp;lt;br&amp;gt;&lt;br /&gt;
e), turn off APU (knob position 1) and BAT&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Landing ===&lt;br /&gt;
[https://forum.flightgear.org/viewtopic.php?f=25&amp;amp;t=37701&amp;amp;p=373154#p373154 From the Forum thanks to Tdammers]&lt;br /&gt;
&lt;br /&gt;
Landing speeds: with a large airliner like the 777, the landing reference speed (Vref) depends hugely on weight. Between operating empty and max landing weight, there is a 50% difference, and clearly a landing speed that works well for a 140-ton aircraft is going to have you drop out of the sky when you weigh 210 tons; and conversely, the right landing weight at 210 tons is going to make your float or nosewheel-strike when you're landing empty.  &lt;br /&gt;
&lt;br /&gt;
So what you need to do is find a resource for those landing speeds. Real-life pilots get a preliminary calculation from their dispatchers, who use dedicated software to calculate all the landing parameters; but it can also be done using tables from the FCOM, and in most modern airliners, the FMS can do the calculation as well.  &lt;br /&gt;
&lt;br /&gt;
The same goes for the takeoff. Here, the crucial speeds are V1, Vr, and V2. V1 is the &amp;quot;safe rejection speed&amp;quot;: until V1 is reached, the aircraft can be brought to a full stop safely within the available remaining takeoff distance; once you're faster than V1, rejecting the takeoff may lead to an accident, and you are committed to the takeoff except for very severe problems (like losing both engines, loss of control, or a fire). Vr is the &amp;quot;rotation speed&amp;quot;: this is the ideal speed to pull up the nose to initiate the liftoff. V2 is the &amp;quot;safe single-engine climb speed&amp;quot;: after liftoff, your goal is to attain this speed ASAP, so that loss of one engine does not compromise the aircraft's ability to meet the minimum climb requirements for this takeoff.  &lt;br /&gt;
&lt;br /&gt;
 In the FG 777, all these speeds are calculated automatically, and displayed on the PFD speed tape; Vref is shown as REF.  &lt;br /&gt;
&lt;br /&gt;
For the landing: Use the initial approach segment to slow down to your initial approach speed; typically, this would be your &amp;quot;minimum clean&amp;quot; speed (the slowest speed you can safely fly with no flaps deployed), something around 200-220 knots usually. The approach procedure will have you descend to a suitable ILS intercept altitude, typically about 2000-3000 ft AGL. Make sure you have the correct ILS frequency set, that the ground spoilers are armed, and that you have selected a suitable autobrake setting. As you turn onto your intercept heading, slow down to your initial approach speed (160-180 knots should work fine), and set flaps accordingly, and arm APP on the autopilot. Watch the aircraft intercept first the localizer, and then the glideslope. Once established on the glideslope, deploy landing gear. As you approach the outer marker (5 miles out), slow down to final approach speed (usually Vref + 10 knots), and deploy landing flaps.  &lt;br /&gt;
&lt;br /&gt;
 Now you have the choice between autoland and landing manually.  &lt;br /&gt;
&lt;br /&gt;
==== Autoland   ====&lt;br /&gt;
For autoland, I believe all you have to do is watch the aircraft fly itself down to minimums, flare, align, retard, and touch down. Once on the ground, select reversers and set reverse thrust, verify that the ground spoilers and brakes are deploying, and use rudder to maintain centerline. At 60 knots, retard the throttles to reverse idle, and take over manual braking (the autobrakes should automatically disengage as soon as you touch the brakes). At 40 knots ground speed, disable thrust reversers; you may now take a high-speed exit while slowing down to taxi speed, or slow down further on the runway before taking a sharp exit. While vacating the runway, retract flaps, and switch off landing lights.  &lt;br /&gt;
&lt;br /&gt;
==== Manual Landing  ====&lt;br /&gt;
For a manual landing, the procedure is the same, except you disengage autopilot and autothrottle at some point during the approach - 1000 ft AGL is a good moment, but you can do it earlier if you want. Use pitch to control speed, throttle to control descent rate; keep airspeed at Vref + 10, and sink rate such that you stay on the ILS glideslope. Once you have a good visual of the runway, transition to a visual approach, using PAPI lights as your descent reference (two red, two white means you're on the glideslope). You should cross the runway threshold some 100-200 ft AGL, with some residual thrust on the engines (say 40-60% or so), a slight nose-up attitude, and a sink rate around 1000 fpm or so. At a suitable altitude (typically 50-100 ft AGL), retard the throttles; use pitch to arrest the descent - down to zero if you want a &amp;quot;butter&amp;quot; landing, or keep a little bit of sink rate if you want a safer, firmer landing. The aircraft should now just sink into the runway, main landing gear first. From here, the procedure is the same as above.&lt;br /&gt;
&lt;br /&gt;
=== TakeOff ===&lt;br /&gt;
[https://forum.flightgear.org/viewtopic.php?f=25&amp;amp;t=37701&amp;amp;p=373154#p373154 From the Forum thanks to Tdammers]&lt;br /&gt;
&lt;br /&gt;
For the takeoff: Configure autobrake (RTO, &amp;quot;rejected takeoff&amp;quot;), flaps and trim, line up, arm A/T (the flip switches next to the speed selection on the glare-shield panel), and rotate the speed selector to a suitable departure speed - at least V2, but typically something like 200-250 knots. This is to make sure that when the autothrottle kicks in, it keeps setting takeoff thrust at least until you have achieved V2. Set a suitable lateral mode on the autopilot: LNAV if you're flying an FMS flight plan, otherwise probably HDG. Revv up the engines to 40%, wait until they stabilize, then set takeoff thrust. At the &amp;quot;rotate&amp;quot; callout, pitch up; watch the vertical speed, as soon as it's consistently positive for 1 second, gear up. Maintain center-line and an attitude that keeps you speeding up to V2. Engage autopilot a couple hundred feet AGL, or later if you prefer hand-flying the aircraft a bit longer.  &lt;br /&gt;
&lt;br /&gt;
===Fuel Controls===&lt;br /&gt;
====Jettisonning fuel====&lt;br /&gt;
Select the &amp;quot;Fuel&amp;quot; display on the MFD to monitor the fuel jettisoning. Use the in-sim checklists (found under &amp;quot;Non-normal in Air&amp;quot;) to configure the fuel jettison system. In Auto mode, fuel will be jettisoned until the plane is weighing less than the maximum landing weight (MLW). When pulling the &amp;quot;Fuel to remain&amp;quot; selector, the pilot can increase or decrease the amount of fuel to remain. This can be handy to e.g. further reduce the amount of fuel to minimize the risk of a fire during a crash landing, or keep more fuel available to be able to reach the diversion airport. The jettison system will always ensure a minimum amount of fuel remains available in the left and right wing tanks, so jettisoning until the tanks are empty is not possible.&lt;br /&gt;
&lt;br /&gt;
====Crossfeed====&lt;br /&gt;
In case of a fuel imbalance (e.g. due to a leak or extensive use of one engine), the &amp;quot;cross feed&amp;quot; system can be used to equalize the fuel levels in both wing tanks. Fuel cannot be crossfed from/to the center fuel tank. Before attempting to crossfeed fuel, always ensure that no leak is present in the affected tank to prevent an unwanted loss of extra fuel (see e.g. {{wikipedia|Air Transat Flight 236}}). To start the crossfeed process, select the &amp;quot;Fuel&amp;quot; display on the MFD to monitor fuel levels. Use the in-sim checklists (found under &amp;quot;Non-normal in Air&amp;quot;) to configure fuel transfer between left and right fuel tanks. Enable both crossfeed switches on the overhead panel. Once they are fully open (green on the Fuel page on the MFD), disable the fuel pumps of the tank with the least amount of fuel. The associated engine will now use fuel from the other fuel tank. Once the levels are close to equal, enable the fuel pumps of the disabled tank again and once they are running, close the crossfeed valves. Keep monitoring fuel levels to detect a potential fuel leak and divert to an alternate airport if insufficient fuel remains to reach the destination safely.&lt;br /&gt;
&lt;br /&gt;
===Autopilot===&lt;br /&gt;
====Bank Angle====&lt;br /&gt;
a) position 0 activates the automatic bank limiter (limit based on airspeed)&amp;lt;br&amp;gt;&lt;br /&gt;
b) any other position sets a constant bank limit, 5, 10, 15, 20, 25&amp;lt;br&amp;gt;&lt;br /&gt;
c) for speeds below V2+15 use 15 degree bank limit&amp;lt;br&amp;gt;During normal operations, this switch should be kept in its &amp;quot;auto&amp;quot; setting.&lt;br /&gt;
&lt;br /&gt;
===Tiller===&lt;br /&gt;
The 777 has tiller steering, just like the real aircraft where the pedals only turn the nose wheel by a few degrees - to achieve optimal precision during takeoffs and landings. Use the tiller (777-200ER &amp;gt; Tiller Steering) dialog to steer during taxiing.&lt;br /&gt;
* You can also connect a separate joystick axis to the tiller control - just like in the real aircraft, where there is a separate control wheel.&lt;br /&gt;
*Finally, you can also disable the separate tiller control and revert to the unrealistic behaviour of using pedals only to completely control the nose wheel (see 777-200ER &amp;gt; Tiller Steering dialog).&lt;br /&gt;
&lt;br /&gt;
===Walker===&lt;br /&gt;
Walker implementation&lt;br /&gt;
{{#ev:youtube|GriEXRsr5q8}}&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
===Flights===&lt;br /&gt;
&lt;br /&gt;
[[File:Stars-2.png|100px]]'''[[Boeing_777_TutoriaI/KATL-KMIA | Atlanta to Miami]]'''&lt;br /&gt;
&lt;br /&gt;
[[File:Stars-3.png|100px]]'''[[Boeing_777-200_TutoriaI/KSFO-KLAX | San Fransisco to Los Angeles]]'''&lt;br /&gt;
&lt;br /&gt;
'''VATSIM Cross the pond 2020 - preflight, takeoff and climbout''' &lt;br /&gt;
{{#ev:youtube|lZscu3THPJU}}&lt;br /&gt;
&lt;br /&gt;
===Outdated/Not Maintained===&lt;br /&gt;
You can see a guide on how to fly this plane for Flightgear 2.0 at [[Boeing 777 Tutorial: Version 2.0.]].&lt;br /&gt;
&lt;br /&gt;
== Liveries==&lt;br /&gt;
All FlightGear liveries are available at [http://liveries.flightgear.org FlightGear Liveries].&lt;br /&gt;
&lt;br /&gt;
==Variants==&lt;br /&gt;
===Boeing 777-200 ===&lt;br /&gt;
[[File:COA777.jpg|thumb|270px|[[Boeing 777-200]] in Continental livery]]&lt;br /&gt;
The '''Boeing 777-200''' ('''772A''') was the initial A-market model of the [[Boeing 777]]. The first customer delivery was to United Airlines in May 1995. It is available with a maximum take-off weight (MTOW) from 505,000 to 545,000 pounds (229 to 247 tonnes) and range capability between 3,780 and 5,235 nautical miles (7,000 to 9,695 km).&lt;br /&gt;
&lt;br /&gt;
===Boeing 777-200LR===&lt;br /&gt;
[[File:777-200LR Alaska.jpg|270px||thumb|777-200LR in CathayPacific Colors above Alaska]]&lt;br /&gt;
The '''Boeing 777-200LR''' (&amp;quot;LR&amp;quot; for Longer Range), a variant of the [[Boeing 777]], became the world's longest-range commercial [[airliner]] when it entered service in 2006. Boeing named this aircraft the ''Worldliner'', highlighting its ability to connect almost any two airports in the world. It holds the world record for the longest nonstop flight by a commercial airliner, and has a maximum range of 9,380 nautical miles (17,370 km). The 777-200LR was intended for ultra-long-haul routes such as Los Angeles to Singapore.&amp;lt;ref name=&amp;quot;wikipedia-777&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Boeing 777-300===&lt;br /&gt;
The -300 features a 33.3 ft (10.1 m) fuselage stretch over the baseline -200, allowing seating for up to 550 passengers in a single class high-density configuration. The 777-300ER (&amp;quot;ER&amp;quot; for Extended Range) is the B-market version of the -300. It features raked and extended wingtips, a new main landing gear, reinforced nose gear, and extra fuel tanks. &lt;br /&gt;
&lt;br /&gt;
===Boeing 777-F===&lt;br /&gt;
[[File:777F.png|270px||thumb|777-F]]&lt;br /&gt;
The 777 Freighter (777F) is an all-cargo version of the twinjet, and shares features with the -200LR; these include its airframe, engines, and fuel capacity. With a maximum payload of 226,000 lb (103,000 kg), cargo capacity is similar to the 243,000 lb (110,000 kg) of the 747-200F. The freighter has a range of 4,900 nmi (9,070 km) at maximum payload, although greater range is possible if less cargo weight is carried. As the aircraft promises improved operating economics compared to existing freighters, airlines have targeted the 777F as a replacement for older freighters including the [[747-200]]F and [[MD-11]]F.&lt;br /&gt;
The 777 for Flightgear is based on [[777-200]] developed by Justin Smithies, Syd Adams.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[[sourceforge:projects/xpc-777|Boeing 777 aircraft systems simulator]]  (not too relevant, X-Plane only support, last updated in 2007, AND: written in LISP!!!)&lt;br /&gt;
*[http://www.theairlinepilots.com/forum/viewforum.php?f=32 Airline Pilots 777 forum] Detailled info on procedures, manuals and documents&lt;br /&gt;
*[http://www.smartcockpit.com/plane/BOEING/B777.html Smart cockpît Boeing 777] manuals and procedures&lt;br /&gt;
*[https://archive.org/details/Boeing777FlightManual Flight manual]&lt;br /&gt;
&lt;br /&gt;
{{Appendix}}&lt;br /&gt;
&lt;br /&gt;
{{Boeing}}&lt;br /&gt;
&lt;br /&gt;
[[fr:Boeing 777]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Red Griffin ATC compatible aircraft]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Portal:Developer/Aircraft&amp;diff=146672</id>
		<title>Portal:Developer/Aircraft</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Portal:Developer/Aircraft&amp;diff=146672"/>
		<updated>2026-07-29T05:25:23Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Main page/Header&lt;br /&gt;
  |title=Welcome to the [[aircraft]] developer portal!&lt;br /&gt;
  |introduction=Please visit the {{forum link |f=4 |title=aircraft}} if you cannot find what you're looking for.&lt;br /&gt;
  |rightbox=[[Portal:Developer|Back to the Developer portal]]&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------&lt;br /&gt;
                    Portal overview&lt;br /&gt;
--------------------------------------------------------------&amp;gt;&lt;br /&gt;
  |rightcolumn1= &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;Getting started&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Howto:Make an aircraft|Making an aircraft]] · [[Howto:Make a helicopter|Making a helicopter]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Modeling - Getting Started|Modeling]] ·[[Knob animation]]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |rightcolumn2= &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;General&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Formalizing Aircraft Status|Aircraft status]] · [[Aircraft maintenance]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Create custom splash screens|Creating custom splash screens]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Configure views in FlightGear|Configuring views]] · [[Walk view|Adding walk view]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Define limits|Defining (speed) limits]]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |rightcolumn3= [[File:Portal aircraft.png|40px]] &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;[[Flight dynamics model]]&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Howto:Implement pushback|Implementing pushback]] · [[Howto:Implement aerial refueling capability|Implementing aerial refueling]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Write a fuel system in JSBSim|Writing a JSBSim fuel system]] · [[Howto: Name fuel tanks|Naming fuel tanks]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[JSBSim]] · [[YASim]]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |rightcolumn4= [[File:Portal instrumentation.png|40px]] &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;Instrumentation&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Creating instruments for FG|Creating instruments]] · [[Howto:Adding instruments to an aircraft|Adding instruments]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Make a clickable panel|Making a clickable panel]] · [[Glass reflection effect for instruments|Glass reflection effect]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Control Display Unit]] · [[Ground proximity warning system]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto: Design an autopilot|Designing an autopilot]] · [[GPS]] · [[Route manager]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Soaring instrumentation sdk]]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |rightcolumn5= [[File:Portal modeling.png|40px]] &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;Modeling&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Howto: 3D Aircraft Models|3D aircraft models]] · [[Modelling guidelines]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Animate models|Animating models]] · [[Howto:Use the normal map effect in aircraft|Using a normal map]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto: Add aircraft lights|Adding lights]] · [[Howto:Implement wing flex|Implementing wing flex]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Implement generic tyre smoke|Adding tyre smoke]] · [[Howto:Edit a livery|Editing liveries]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Model Import and Export|Model Importing and exporting]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[AC3D file format|AC3D File Format]] · [[Blender]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------&lt;br /&gt;
                    Main sections&lt;br /&gt;
--------------------------------------------------------------&amp;gt;&lt;br /&gt;
  |sections=&lt;br /&gt;
{{Main page/Leftbox|title=Aircraft, the fundamental part of flight&lt;br /&gt;
  |contents=Without any '''aircraft''', there is no flight simulator. Aircraft development is one of the fundamental parts of a flight simulator. Contributing is fun and can be done at all levels of experience.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Portals]]&lt;br /&gt;
&lt;br /&gt;
[[ca:Portal:Desenvolupador/Aeronau]]&lt;br /&gt;
[[es:Portal:Desarrolladores/Aeronaves]]&lt;br /&gt;
[[it:Portal:Sviluppo/Velivoli]]&lt;br /&gt;
[[pt:Portal:Desenvolvedor/Avião]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Boeing_707&amp;diff=146671</id>
		<title>Boeing 707</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Boeing_707&amp;diff=146671"/>
		<updated>2026-07-29T05:23:55Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Multiplayer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
[[File:Boeing707 1.png|thumb|270px|707 &amp;quot;City of Friedrichshafen&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Tutorialready.png|link=Tutorials]]&lt;br /&gt;
[[Image:Checklistready.png|link=Aircraft Checklists]]&lt;br /&gt;
[[Image:Routemanagerready.png|link=Route Manager]]&lt;br /&gt;
[[Image:Airrefuelingready.png|link=Air Refueling Ready]]&lt;br /&gt;
[[Image:Rembrandtready.png|link=Rembrandt]]&lt;br /&gt;
&lt;br /&gt;
The '''Boeing 707''' is a four-engine commercial passenger jet [[:Category:Airliners|airliner]] developed by [[:Category:Boeing|Boeing]] in the early 1950s. Its name is most commonly spoken as &amp;quot;Seven Oh Seven&amp;quot;. Boeing delivered a total of 1010 Boeing 707s, which dominated passenger air transport in the 1960s and remained common through the 1970s. Boeing also offered a smaller, faster version of the [[aircraft]] that was marketed as the Boeing 720.&lt;br /&gt;
&lt;br /&gt;
Although it was not the first commercial jet in service, the 707 was among the first to be commercially successful, and is generally credited as ushering in the Jet Age. It established Boeing as one of the largest makers of passenger aircraft, and led to the later series of aircraft with &amp;quot;7x7&amp;quot; designations.&lt;br /&gt;
&lt;br /&gt;
== Variants ==&lt;br /&gt;
&lt;br /&gt;
The 707 was a convertible passenger/freight configuration which became the most widely produced variant of the 707. Despite the convertible option, a number of these were delivered as pure freighters.&lt;br /&gt;
&lt;br /&gt;
Later 707-420 were versions with Rolls-Royce Conway 508 turbofans. First appearing in 1960, 37 examples were delivered to BOAC, Lufthansa, Air India, El Al and Varig through November 1963.&lt;br /&gt;
&lt;br /&gt;
This [[FlightGear]] model has the fuselage/wings of the 707-320C. Users can select from the the older Rolls-Royce Conway 508 turbofans engines and the later JT3D engines simply by changing liveries. Note however that the flight model only uses the Rolls-Royce Conway engines and thus the difference is purely cosmetic.&lt;br /&gt;
&lt;br /&gt;
=== Included ===&lt;br /&gt;
* 707: Passenger airliners capable of seating 147 passengers.&lt;br /&gt;
* 707-TT ('''T'''anker '''T'''ransport): An Italian tanker variant. Can be used for [[Howto:Aerial refueling|air-to-air refueling]].&lt;br /&gt;
* EC-137D: An AWACS variant that later evolved into the [[E-3 Sentry]].&lt;br /&gt;
&lt;br /&gt;
== Aircraft help ==&lt;br /&gt;
The 707 has a detailed built-in tutorial in German, English, Czech, Portugues and Spanish. You can help translate the tutorial into other languages by visiting our {{github source|user=D-MKF1|repo=707|text=page on github}}.&lt;br /&gt;
&lt;br /&gt;
[[File:Cockpit1.png|thumb|270px|707 &amp;quot;Chanson de Roland&amp;quot; panel]]&lt;br /&gt;
&lt;br /&gt;
=== Cheat sheet ===&lt;br /&gt;
{| class=&amp;quot;keytable&amp;quot;&lt;br /&gt;
!Key&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Delete}}&lt;br /&gt;
|Deploy reverse thrust.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Shift}} + {{Key press|B}}&lt;br /&gt;
|Set or unset the parking brake.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Control}} + {{Key press|B}}&lt;br /&gt;
|Deploy the speedbrakes.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|G}}&lt;br /&gt;
|Raise the landing gear.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Shift}} + {{Key press|G}}&lt;br /&gt;
|Lower the landing gear.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|]}}&lt;br /&gt;
|Lower the leading and trailing edge flaps.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|[}}&lt;br /&gt;
|Raise the leading and trailing edge flaps.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|y}}&lt;br /&gt;
|Hide or show the cockpit yokes.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|&amp;lt;}}&lt;br /&gt;
|Toggle between pilot and engineer views.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|F9}}&lt;br /&gt;
|Open the fuel and weight controls.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|F11}}&lt;br /&gt;
|Focus or unfocus the view on the autopilot controls.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Usability ==&lt;br /&gt;
&lt;br /&gt;
The aircraft's philosophy is based on the WYSIWYG concept. Everything you see on the panels is clickable - and works.&lt;br /&gt;
&lt;br /&gt;
The light effects in the cockpit are made with extra attention to detail, with the aim of giving the user the most realistic experience possible. The hope is that the pilot to feel as if they are actually in the plane itself.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the 707 is also focused on usability for new users. For example, the generic autopilot dialog has been retained, and an autostart function is available. Tutorials are available in several languages. All this is done with the aim of making things easy for first-time users while also allowing them to learn and have fun.&lt;br /&gt;
&lt;br /&gt;
[[File:Cockpit2.png|thumb|270px|Looking to starboard from the captain's seat]]&lt;br /&gt;
&lt;br /&gt;
== Get certified ==&lt;br /&gt;
It has been estimated that the 707 certification takes about 400 hours of flight time. We will grant 707 Knight Sky Class Certification to those pilots who reach 400 hours. Additionally, we will be giving away a 707 &amp;quot;City of Friedrischafen&amp;quot; custom set of wings, diploma, and avatar.&lt;br /&gt;
[[File:Refuelling707TT-EC137D.jpg|thumb|270px|A 707-TT refueling an EC-137D]]&lt;br /&gt;
The aircraft has been fully tested and certified. Now it's your turn. '''Be a part of the legend.'''&lt;br /&gt;
&lt;br /&gt;
[[File:707Certification.png|Get Certication Boeing 707]]&lt;br /&gt;
&lt;br /&gt;
== Multiplayer ==&lt;br /&gt;
&lt;br /&gt;
In multiplayer, some parts of the 707 are hidden (doors).&lt;br /&gt;
&lt;br /&gt;
To fix this, edit the model file (example : Aircraft/707/Models/707-TT.xml) and remove the slash before /sim/current-view/internal :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;condition&amp;gt;&lt;br /&gt;
      &amp;lt;not&amp;gt;&amp;lt;property&amp;gt;sim/current-view/internal&amp;lt;/property&amp;gt;&amp;lt;/not&amp;gt;&lt;br /&gt;
    &amp;lt;/condition&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Thanks to... ==&lt;br /&gt;
* Innis Cunningham and all the developers who have contributed to FlightGear&lt;br /&gt;
=== Test pilots ===&lt;br /&gt;
* D-3m&lt;br /&gt;
* D-AHGM&lt;br /&gt;
&lt;br /&gt;
=== Technical systems assistance ===&lt;br /&gt;
* D-LEON&lt;br /&gt;
=== Custom autopilot integration ===&lt;br /&gt;
* buster&lt;br /&gt;
=== Bug smashers ===&lt;br /&gt;
* D-STHO&lt;br /&gt;
* D-ABBA&lt;br /&gt;
&lt;br /&gt;
{{boeing}}&lt;br /&gt;
{{air-to-air refueling}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Rembrandt aircraft]]&lt;br /&gt;
[[Category:Aircraft with cabin view]]&lt;br /&gt;
&lt;br /&gt;
[[de:Boeing 707-420]]&lt;br /&gt;
[[Category:Red Griffin ATC compatible aircraft]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Boeing_707&amp;diff=146670</id>
		<title>Boeing 707</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Boeing_707&amp;diff=146670"/>
		<updated>2026-07-29T05:23:18Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
[[File:Boeing707 1.png|thumb|270px|707 &amp;quot;City of Friedrichshafen&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Tutorialready.png|link=Tutorials]]&lt;br /&gt;
[[Image:Checklistready.png|link=Aircraft Checklists]]&lt;br /&gt;
[[Image:Routemanagerready.png|link=Route Manager]]&lt;br /&gt;
[[Image:Airrefuelingready.png|link=Air Refueling Ready]]&lt;br /&gt;
[[Image:Rembrandtready.png|link=Rembrandt]]&lt;br /&gt;
&lt;br /&gt;
The '''Boeing 707''' is a four-engine commercial passenger jet [[:Category:Airliners|airliner]] developed by [[:Category:Boeing|Boeing]] in the early 1950s. Its name is most commonly spoken as &amp;quot;Seven Oh Seven&amp;quot;. Boeing delivered a total of 1010 Boeing 707s, which dominated passenger air transport in the 1960s and remained common through the 1970s. Boeing also offered a smaller, faster version of the [[aircraft]] that was marketed as the Boeing 720.&lt;br /&gt;
&lt;br /&gt;
Although it was not the first commercial jet in service, the 707 was among the first to be commercially successful, and is generally credited as ushering in the Jet Age. It established Boeing as one of the largest makers of passenger aircraft, and led to the later series of aircraft with &amp;quot;7x7&amp;quot; designations.&lt;br /&gt;
&lt;br /&gt;
== Variants ==&lt;br /&gt;
&lt;br /&gt;
The 707 was a convertible passenger/freight configuration which became the most widely produced variant of the 707. Despite the convertible option, a number of these were delivered as pure freighters.&lt;br /&gt;
&lt;br /&gt;
Later 707-420 were versions with Rolls-Royce Conway 508 turbofans. First appearing in 1960, 37 examples were delivered to BOAC, Lufthansa, Air India, El Al and Varig through November 1963.&lt;br /&gt;
&lt;br /&gt;
This [[FlightGear]] model has the fuselage/wings of the 707-320C. Users can select from the the older Rolls-Royce Conway 508 turbofans engines and the later JT3D engines simply by changing liveries. Note however that the flight model only uses the Rolls-Royce Conway engines and thus the difference is purely cosmetic.&lt;br /&gt;
&lt;br /&gt;
=== Included ===&lt;br /&gt;
* 707: Passenger airliners capable of seating 147 passengers.&lt;br /&gt;
* 707-TT ('''T'''anker '''T'''ransport): An Italian tanker variant. Can be used for [[Howto:Aerial refueling|air-to-air refueling]].&lt;br /&gt;
* EC-137D: An AWACS variant that later evolved into the [[E-3 Sentry]].&lt;br /&gt;
&lt;br /&gt;
== Aircraft help ==&lt;br /&gt;
The 707 has a detailed built-in tutorial in German, English, Czech, Portugues and Spanish. You can help translate the tutorial into other languages by visiting our {{github source|user=D-MKF1|repo=707|text=page on github}}.&lt;br /&gt;
&lt;br /&gt;
[[File:Cockpit1.png|thumb|270px|707 &amp;quot;Chanson de Roland&amp;quot; panel]]&lt;br /&gt;
&lt;br /&gt;
=== Cheat sheet ===&lt;br /&gt;
{| class=&amp;quot;keytable&amp;quot;&lt;br /&gt;
!Key&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Delete}}&lt;br /&gt;
|Deploy reverse thrust.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Shift}} + {{Key press|B}}&lt;br /&gt;
|Set or unset the parking brake.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Control}} + {{Key press|B}}&lt;br /&gt;
|Deploy the speedbrakes.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|G}}&lt;br /&gt;
|Raise the landing gear.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Shift}} + {{Key press|G}}&lt;br /&gt;
|Lower the landing gear.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|]}}&lt;br /&gt;
|Lower the leading and trailing edge flaps.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|[}}&lt;br /&gt;
|Raise the leading and trailing edge flaps.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|y}}&lt;br /&gt;
|Hide or show the cockpit yokes.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|&amp;lt;}}&lt;br /&gt;
|Toggle between pilot and engineer views.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|F9}}&lt;br /&gt;
|Open the fuel and weight controls.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|F11}}&lt;br /&gt;
|Focus or unfocus the view on the autopilot controls.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Usability ==&lt;br /&gt;
&lt;br /&gt;
The aircraft's philosophy is based on the WYSIWYG concept. Everything you see on the panels is clickable - and works.&lt;br /&gt;
&lt;br /&gt;
The light effects in the cockpit are made with extra attention to detail, with the aim of giving the user the most realistic experience possible. The hope is that the pilot to feel as if they are actually in the plane itself.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the 707 is also focused on usability for new users. For example, the generic autopilot dialog has been retained, and an autostart function is available. Tutorials are available in several languages. All this is done with the aim of making things easy for first-time users while also allowing them to learn and have fun.&lt;br /&gt;
&lt;br /&gt;
[[File:Cockpit2.png|thumb|270px|Looking to starboard from the captain's seat]]&lt;br /&gt;
&lt;br /&gt;
== Get certified ==&lt;br /&gt;
It has been estimated that the 707 certification takes about 400 hours of flight time. We will grant 707 Knight Sky Class Certification to those pilots who reach 400 hours. Additionally, we will be giving away a 707 &amp;quot;City of Friedrischafen&amp;quot; custom set of wings, diploma, and avatar.&lt;br /&gt;
[[File:Refuelling707TT-EC137D.jpg|thumb|270px|A 707-TT refueling an EC-137D]]&lt;br /&gt;
The aircraft has been fully tested and certified. Now it's your turn. '''Be a part of the legend.'''&lt;br /&gt;
&lt;br /&gt;
[[File:707Certification.png|Get Certication Boeing 707]]&lt;br /&gt;
&lt;br /&gt;
== Multiplayer ==&lt;br /&gt;
&lt;br /&gt;
In multiplayer, some parts of the 707 are hidden.&lt;br /&gt;
&lt;br /&gt;
To fix this, edit the model file (example : Aircraft/707/Models/707-TT.xml) and remove the slash before /sim/current-view/internal :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;condition&amp;gt;&lt;br /&gt;
      &amp;lt;not&amp;gt;&amp;lt;property&amp;gt;sim/current-view/internal&amp;lt;/property&amp;gt;&amp;lt;/not&amp;gt;&lt;br /&gt;
    &amp;lt;/condition&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Thanks to... ==&lt;br /&gt;
* Innis Cunningham and all the developers who have contributed to FlightGear&lt;br /&gt;
=== Test pilots ===&lt;br /&gt;
* D-3m&lt;br /&gt;
* D-AHGM&lt;br /&gt;
&lt;br /&gt;
=== Technical systems assistance ===&lt;br /&gt;
* D-LEON&lt;br /&gt;
=== Custom autopilot integration ===&lt;br /&gt;
* buster&lt;br /&gt;
=== Bug smashers ===&lt;br /&gt;
* D-STHO&lt;br /&gt;
* D-ABBA&lt;br /&gt;
&lt;br /&gt;
{{boeing}}&lt;br /&gt;
{{air-to-air refueling}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Rembrandt aircraft]]&lt;br /&gt;
[[Category:Aircraft with cabin view]]&lt;br /&gt;
&lt;br /&gt;
[[de:Boeing 707-420]]&lt;br /&gt;
[[Category:Red Griffin ATC compatible aircraft]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Boeing_707&amp;diff=146669</id>
		<title>Boeing 707</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Boeing_707&amp;diff=146669"/>
		<updated>2026-07-29T05:22:30Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
[[File:Boeing707 1.png|thumb|270px|707 &amp;quot;City of Friedrichshafen&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Tutorialready.png|link=Tutorials]]&lt;br /&gt;
[[Image:Checklistready.png|link=Aircraft Checklists]]&lt;br /&gt;
[[Image:Routemanagerready.png|link=Route Manager]]&lt;br /&gt;
[[Image:Airrefuelingready.png|link=Air Refueling Ready]]&lt;br /&gt;
[[Image:Rembrandtready.png|link=Rembrandt]]&lt;br /&gt;
&lt;br /&gt;
The '''Boeing 707''' is a four-engine commercial passenger jet [[:Category:Airliners|airliner]] developed by [[:Category:Boeing|Boeing]] in the early 1950s. Its name is most commonly spoken as &amp;quot;Seven Oh Seven&amp;quot;. Boeing delivered a total of 1010 Boeing 707s, which dominated passenger air transport in the 1960s and remained common through the 1970s. Boeing also offered a smaller, faster version of the [[aircraft]] that was marketed as the Boeing 720.&lt;br /&gt;
&lt;br /&gt;
Although it was not the first commercial jet in service, the 707 was among the first to be commercially successful, and is generally credited as ushering in the Jet Age. It established Boeing as one of the largest makers of passenger aircraft, and led to the later series of aircraft with &amp;quot;7x7&amp;quot; designations.&lt;br /&gt;
&lt;br /&gt;
== Variants ==&lt;br /&gt;
&lt;br /&gt;
The 707 was a convertible passenger/freight configuration which became the most widely produced variant of the 707. Despite the convertible option, a number of these were delivered as pure freighters.&lt;br /&gt;
&lt;br /&gt;
Later 707-420 were versions with Rolls-Royce Conway 508 turbofans. First appearing in 1960, 37 examples were delivered to BOAC, Lufthansa, Air India, El Al and Varig through November 1963.&lt;br /&gt;
&lt;br /&gt;
This [[FlightGear]] model has the fuselage/wings of the 707-320C. Users can select from the the older Rolls-Royce Conway 508 turbofans engines and the later JT3D engines simply by changing liveries. Note however that the flight model only uses the Rolls-Royce Conway engines and thus the difference is purely cosmetic.&lt;br /&gt;
&lt;br /&gt;
=== Included ===&lt;br /&gt;
* 707: Passenger airliners capable of seating 147 passengers.&lt;br /&gt;
* 707-TT ('''T'''anker '''T'''ransport): An Italian tanker variant. Can be used for [[Howto:Aerial refueling|air-to-air refueling]].&lt;br /&gt;
* EC-137D: An AWACS variant that later evolved into the [[E-3 Sentry]].&lt;br /&gt;
&lt;br /&gt;
== Aircraft help ==&lt;br /&gt;
The 707 has a detailed built-in tutorial in German, English, Czech, Portugues and Spanish. You can help translate the tutorial into other languages by visiting our {{github source|user=D-MKF1|repo=707|text=page on github}}.&lt;br /&gt;
&lt;br /&gt;
[[File:Cockpit1.png|thumb|270px|707 &amp;quot;Chanson de Roland&amp;quot; panel]]&lt;br /&gt;
&lt;br /&gt;
=== Cheat sheet ===&lt;br /&gt;
{| class=&amp;quot;keytable&amp;quot;&lt;br /&gt;
!Key&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Delete}}&lt;br /&gt;
|Deploy reverse thrust.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Shift}} + {{Key press|B}}&lt;br /&gt;
|Set or unset the parking brake.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Control}} + {{Key press|B}}&lt;br /&gt;
|Deploy the speedbrakes.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|G}}&lt;br /&gt;
|Raise the landing gear.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Shift}} + {{Key press|G}}&lt;br /&gt;
|Lower the landing gear.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|]}}&lt;br /&gt;
|Lower the leading and trailing edge flaps.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|[}}&lt;br /&gt;
|Raise the leading and trailing edge flaps.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|y}}&lt;br /&gt;
|Hide or show the cockpit yokes.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|&amp;lt;}}&lt;br /&gt;
|Toggle between pilot and engineer views.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|F9}}&lt;br /&gt;
|Open the fuel and weight controls.&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|F11}}&lt;br /&gt;
|Focus or unfocus the view on the autopilot controls.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Usability ==&lt;br /&gt;
&lt;br /&gt;
The aircraft's philosophy is based on the WYSIWYG concept. Everything you see on the panels is clickable - and works.&lt;br /&gt;
&lt;br /&gt;
The light effects in the cockpit are made with extra attention to detail, with the aim of giving the user the most realistic experience possible. The hope is that the pilot to feel as if they are actually in the plane itself.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the 707 is also focused on usability for new users. For example, the generic autopilot dialog has been retained, and an autostart function is available. Tutorials are available in several languages. All this is done with the aim of making things easy for first-time users while also allowing them to learn and have fun.&lt;br /&gt;
&lt;br /&gt;
[[File:Cockpit2.png|thumb|270px|Looking to starboard from the captain's seat]]&lt;br /&gt;
&lt;br /&gt;
== Get certified ==&lt;br /&gt;
It has been estimated that the 707 certification takes about 400 hours of flight time. We will grant 707 Knight Sky Class Certification to those pilots who reach 400 hours. Additionally, we will be giving away a 707 &amp;quot;City of Friedrischafen&amp;quot; custom set of wings, diploma, and avatar.&lt;br /&gt;
[[File:Refuelling707TT-EC137D.jpg|thumb|270px|A 707-TT refueling an EC-137D]]&lt;br /&gt;
The aircraft has been fully tested and certified. Now it's your turn. '''Be a part of the legend.'''&lt;br /&gt;
&lt;br /&gt;
[[File:707Certification.png|Get Certication Boeing 707]]&lt;br /&gt;
&lt;br /&gt;
== Multiplayer ==&lt;br /&gt;
&lt;br /&gt;
In multiplayer, some parts of the 707 are hidden (wings, tail, doors)&lt;br /&gt;
&lt;br /&gt;
to fix this, edit the model file (example : Aircraft/707/Models/707-TT.xml) and remove the slash before /sim/current-view/internal :&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;condition&amp;gt;&lt;br /&gt;
      &amp;lt;not&amp;gt;&amp;lt;property&amp;gt;sim/current-view/internal&amp;lt;/property&amp;gt;&amp;lt;/not&amp;gt;&lt;br /&gt;
    &amp;lt;/condition&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Thanks to... ==&lt;br /&gt;
* Innis Cunningham and all the developers who have contributed to FlightGear&lt;br /&gt;
=== Test pilots ===&lt;br /&gt;
* D-3m&lt;br /&gt;
* D-AHGM&lt;br /&gt;
&lt;br /&gt;
=== Technical systems assistance ===&lt;br /&gt;
* D-LEON&lt;br /&gt;
=== Custom autopilot integration ===&lt;br /&gt;
* buster&lt;br /&gt;
=== Bug smashers ===&lt;br /&gt;
* D-STHO&lt;br /&gt;
* D-ABBA&lt;br /&gt;
&lt;br /&gt;
{{boeing}}&lt;br /&gt;
{{air-to-air refueling}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Rembrandt aircraft]]&lt;br /&gt;
[[Category:Aircraft with cabin view]]&lt;br /&gt;
&lt;br /&gt;
[[de:Boeing 707-420]]&lt;br /&gt;
[[Category:Red Griffin ATC compatible aircraft]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Boeing_747-400&amp;diff=146668</id>
		<title>Boeing 747-400</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Boeing_747-400&amp;diff=146668"/>
		<updated>2026-07-29T05:20:47Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
The '''Boeing 747-400''' (''Queen of the Skies'') is the best selling model of the iconic [[Boeing 747|747 family]]. It has been superseded by the more economical and advanced [[Boeing 747-8i|Boeing 747-8]].&lt;br /&gt;
&lt;br /&gt;
== Aircraft help ==&lt;br /&gt;
{{Main article|Boeing 747-400 Tutorial}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;keytable&amp;quot;&lt;br /&gt;
!Key&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Ctrl|B}}&lt;br /&gt;
|Speedbrakes&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Delete}}&lt;br /&gt;
|Reverse thrusters&lt;br /&gt;
|-&lt;br /&gt;
|{{Key press|Shift|B}}&lt;br /&gt;
|Parking brake&lt;br /&gt;
|}&lt;br /&gt;
All buttons/switches in the cockpit can be controlled using the mouse. Most buttons exist of a toggle, where clicking it toggles it either on or off. Switches can be turned clockwise with the left mouse button and counter clockwise using the middle mouse button. Alternatively you can use the scroll wheel to cycle the switch left/right. Some buttons/switches have a cover on them, clicking it will either open or close it, so the button/switch can be pushed/turned.&lt;br /&gt;
&lt;br /&gt;
=== Ground steering ===&lt;br /&gt;
The 744 has tiller steering, just like the real aircraft where the pedals only turn the nose wheel by a few degrees - to achieve optimal precision during takeoffs and landings. Use the tiller (747-400 &amp;gt; Tiller Steering) dialog to steer during taxiing. &lt;br /&gt;
&lt;br /&gt;
* You can also connect a separate joystick axis to the tiller control - just like in the real aircraft, where there is a separate control wheel. &lt;br /&gt;
* Finally, you can also disable the separate tiller control and revert to the unrealistic behaviour of using pedals only to completely control the nose wheel (see 747-400 &amp;gt; Tiller Steering dialog).&lt;br /&gt;
&lt;br /&gt;
=== Simplified procedures ===&lt;br /&gt;
Set the amount of fuel that you would like to carry along, by using the Fill button and slider in the Fuel and Payload dialog. This will ensure the fuel is properly distributed among the seven (or eight, when the stabilizer tank is used) tanks.&lt;br /&gt;
&lt;br /&gt;
==== Startup ====&lt;br /&gt;
[[File:Boeing 747-400 overhead panel.jpg|thumb|270px|The overhead panel.]]&lt;br /&gt;
# Press the continuous ignition switch on the overhead panel.&lt;br /&gt;
# Pull the start select switch for engine #4.&lt;br /&gt;
# Set the cutoff switch on the pedestal to RUN.&lt;br /&gt;
# Now repeat step 2 and 3 for engines #1, #2 and #3.&lt;br /&gt;
&lt;br /&gt;
==== Takeoff ====&lt;br /&gt;
[[File:747-400_SIA_climbing_out_EGKK.png|thumb|270px|Singapore Airlines climbing out of [[London Gatwick Airport|Gatwick]].]]&lt;br /&gt;
# Set flaps to 10 or 20. They will take a minute to extend, so you'd better do this during taxi.&lt;br /&gt;
# Set the stabilizer trim. Check the Takeoff Reference page of the [[CDU]] for the required units of trim. The current setting can be found on the instrument left of the throttle quadrant.&lt;br /&gt;
# Smoothly apply full throttle.&lt;br /&gt;
# Push the stick slightly forward until at least 80 kts.&lt;br /&gt;
# Once the copilot announce &amp;quot;VR&amp;quot; slowly pull the stick back to rotate. Rotate toward 15° pitch attitude.&lt;br /&gt;
# Retract gear as soon as the aircraft is climbing with at least 500 ft per minute.&lt;br /&gt;
&lt;br /&gt;
==== Approach ====&lt;br /&gt;
[[File:Boeing 747-400 PFD ILS approach EHAM 18R.png|thumb|270px|The PFD while on ILS approach to [[Amsterdam Airport Schiphol|Schiphol]]'s runway 18R]]&lt;br /&gt;
# At 10000 ft MSL set the inboard landing light switches to ON.&lt;br /&gt;
&lt;br /&gt;
==== Landing ====&lt;br /&gt;
# Set the flaps as directed by the flap extension schedule.&lt;br /&gt;
# At glideslope alive:&lt;br /&gt;
#* Gear down.&lt;br /&gt;
#* Set flaps to 20.&lt;br /&gt;
# At glideslope capture:&lt;br /&gt;
#* Set flaps to 25 or 30.&lt;br /&gt;
&lt;br /&gt;
==== Landing roll ====&lt;br /&gt;
# Close all thrust levers.&lt;br /&gt;
# Set speedbrakes to UP.&lt;br /&gt;
&lt;br /&gt;
==== Shutdown ====&lt;br /&gt;
# Set all fuel cutoff switches to OFF.&lt;br /&gt;
# Turn continuous ignition OFF.&lt;br /&gt;
&lt;br /&gt;
== Frequently asked questions ==&lt;br /&gt;
Main article: [[Boeing 747-400 FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Development status ==&lt;br /&gt;
[[File:Boeing 747-400 cockpit.png|thumb|270px|The 3D cockpit (in development).]]&lt;br /&gt;
The latest version is always available through [[Git]]. The author would happily receive your comments.&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[Boeing 747-400 Tutorial]]&lt;br /&gt;
&lt;br /&gt;
{{Boeing}}&lt;br /&gt;
&lt;br /&gt;
[[de:Boeing 747-400]]&lt;br /&gt;
[[nl:Boeing 747-400]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft with Route Manager support]]&lt;br /&gt;
[[Category:Red Griffin ATC compatible aircraft]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Boeing_727-230&amp;diff=146667</id>
		<title>Boeing 727-230</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Boeing_727-230&amp;diff=146667"/>
		<updated>2026-07-29T05:20:07Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|This aircraft is out of date. For the new 727, see [[Boeing 727]].}}&lt;br /&gt;
&lt;br /&gt;
{{:{{PAGENAME}}/info}}&lt;br /&gt;
The '''Boeing 727''' is a mid-size, narrow-body, three-engine, T-tailed commercial jet [[:Category:Airliners|airliner]]. The first [[:Category:Boeing|Boeing]] 727 flew in 1963 and for over a decade it was the most produced commercial jet airliner in the world. When production ended in 1984, a total of 1,831 aircraft had been produced.&lt;br /&gt;
&lt;br /&gt;
The model for [[FlightGear]] is currently alpha, but will have some nice eye candies like [[Howto: Implement generic tyre smoke|tyre smoke]], contrails, engine smoke, [[Howto: Implement pushback|pushback]], hopefully a good [[Cockpit|3d-flightdeck]], a good [[autopilot]] usuable from cockpit and a as near-as-possible-realistic [[FDM]]. As it is OpenSource all developers and users are invited to improve this aircraft to make it realistic as possible.&lt;br /&gt;
&lt;br /&gt;
== Development status/Issues/Todo ==&lt;br /&gt;
'''Outside:'''&lt;br /&gt;
* wings not yet completed (fairings missing, flaps and slat animation could be better)&lt;br /&gt;
* stair missing&lt;br /&gt;
* animating passenger doors not yet&lt;br /&gt;
* completing texture mapping not yet&lt;br /&gt;
* livery-over-mp not yet&lt;br /&gt;
* lighting&lt;br /&gt;
* has tyre smoke&lt;br /&gt;
* has now pushback feature &lt;br /&gt;
&lt;br /&gt;
'''3d Cockpit:'''&lt;br /&gt;
* mainpanel in the work, first added instruments&lt;br /&gt;
&lt;br /&gt;
'''General:'''&lt;br /&gt;
* well, it is Alpha! ;-)&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* {{wikipedia|Boeing 727|Wikipedia Boeing 727 Article}}&lt;br /&gt;
* [http://www.boeing.com/history/products/727.page  Boeing Homepage about the 727]&lt;br /&gt;
* [http://rbogash.com/727history.html page about the 727-prototype]&lt;br /&gt;
* [http://www.boeing-727.com/ unofficial site about the 727]&lt;br /&gt;
&amp;lt;Gallery heights=200px widths=300px&amp;gt;&lt;br /&gt;
Image:Tyre smoke 727-230.jpg|Tyre smoke&lt;br /&gt;
Image:YASim-pushback2.jpeg|Getting pushback at [[Amsterdam Airport Schiphol]] (EHAM), Netherlands.&lt;br /&gt;
&amp;lt;/Gallery&amp;gt;&lt;br /&gt;
{{Boeing}}&lt;br /&gt;
&lt;br /&gt;
[[de:Boeing 727-230]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Airliners]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Portal:Developer/Aircraft&amp;diff=146666</id>
		<title>Portal:Developer/Aircraft</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Portal:Developer/Aircraft&amp;diff=146666"/>
		<updated>2026-07-29T05:16:57Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Main page/Header&lt;br /&gt;
  |title=Welcome to the [[aircraft]] developer portal!&lt;br /&gt;
  |introduction=Please visit the {{forum link |f=4 |title=aircraft}} if you cannot find what you're looking for.&lt;br /&gt;
  |rightbox=[[Portal:Developer|Back to the Developer portal]]&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------&lt;br /&gt;
                    Portal overview&lt;br /&gt;
--------------------------------------------------------------&amp;gt;&lt;br /&gt;
  |rightcolumn1= &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;Getting started&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Howto:Make an aircraft|Making an aircraft]] · [[Howto:Make a helicopter|Making a helicopter]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Modeling - Getting Started|Modeling]] ·[[Knob animation]]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |rightcolumn2= &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;General&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Formalizing Aircraft Status|Aircraft status]] · [[Aircraft maintenance]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Create custom splash screens|Creating custom splash screens]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Configure views in FlightGear|Configuring views]] · [[Walk view|Adding walk view]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Define limits|Defining (speed) limits]]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |rightcolumn3= [[File:Portal aircraft.png|40px]] &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;[[Flight dynamics model]]&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Howto:Implement pushback|Implementing pushback]] · [[Howto:Implement aerial refueling capability|Implementing aerial refueling]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Write a fuel system in JSBSim|Writing a JSBSim fuel system]] · [[Howto: Name fuel tanks|Naming fuel tanks]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[JSBSim]] · [[YASim]]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |rightcolumn4= [[File:Portal instrumentation.png|40px]] &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;Instrumentation&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Creating instruments for FG|Creating instruments]] · [[Howto:Adding instruments to an aircraft|Adding instruments]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Make a clickable panel|Making a clickable panel]] · [[Glass reflection effect for instruments|Glass reflection effect]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Canvas MCDU framework|Control Display Unit]] · [[Ground proximity warning system]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto: Design an autopilot|Designing an autopilot]] · [[GPS]] · [[Route manager]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Soaring instrumentation sdk]]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |rightcolumn5= [[File:Portal modeling.png|40px]] &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;Modeling&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Howto: 3D Aircraft Models|3D aircraft models]] · [[Modelling guidelines]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Animate models|Animating models]] · [[Howto:Use the normal map effect in aircraft|Using a normal map]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto: Add aircraft lights|Adding lights]] · [[Howto:Implement wing flex|Implementing wing flex]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Implement generic tyre smoke|Adding tyre smoke]] · [[Howto:Edit a livery|Editing liveries]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Model Import and Export|Model Importing and exporting]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[AC3D file format|AC3D File Format]] · [[Blender]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------&lt;br /&gt;
                    Main sections&lt;br /&gt;
--------------------------------------------------------------&amp;gt;&lt;br /&gt;
  |sections=&lt;br /&gt;
{{Main page/Leftbox|title=Aircraft, the fundamental part of flight&lt;br /&gt;
  |contents=Without any '''aircraft''', there is no flight simulator. Aircraft development is one of the fundamental parts of a flight simulator. Contributing is fun and can be done at all levels of experience.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Portals]]&lt;br /&gt;
&lt;br /&gt;
[[ca:Portal:Desenvolupador/Aeronau]]&lt;br /&gt;
[[es:Portal:Desarrolladores/Aeronaves]]&lt;br /&gt;
[[it:Portal:Sviluppo/Velivoli]]&lt;br /&gt;
[[pt:Portal:Desenvolvedor/Avião]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Control_Display_Unit&amp;diff=146665</id>
		<title>Control Display Unit</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Control_Display_Unit&amp;diff=146665"/>
		<updated>2026-07-29T05:15:25Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Related content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:747-400_CDU.png|thumb|270px|The Boeing-style CDU as seen on a [[Boeing 747-400]].]]&lt;br /&gt;
The '''Control Display Unit''' ('''CDU''') is the interface device unit used to access the Flight Management Computers (FMC), the main computers and software of larger [[aircraft]]. CDUs are mostly seen on [[:Category:Airliners|airliners]], like the [[Boeing 777]].&lt;br /&gt;
&lt;br /&gt;
== CDUs in FlightGear ==&lt;br /&gt;
There are several aircraft equipped with operational CDUs in [[FlightGear]]:&lt;br /&gt;
* [[Airbus A320 Family]]&lt;br /&gt;
* [[Airbus A380]] (has a MFD, being used as a CDU)&lt;br /&gt;
* [[Boeing 747-400]]&lt;br /&gt;
* [[Boeing 757-200]]&lt;br /&gt;
* [[Boeing 777-200ER]]&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[Canvas MCDU framework]]&lt;br /&gt;
* [[Howto: Coding a Boeing CDU|Coding a Boeing CDU]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft instruments]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Control_Display_Unit&amp;diff=146664</id>
		<title>Control Display Unit</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Control_Display_Unit&amp;diff=146664"/>
		<updated>2026-07-29T05:15:09Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Related content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:747-400_CDU.png|thumb|270px|The Boeing-style CDU as seen on a [[Boeing 747-400]].]]&lt;br /&gt;
The '''Control Display Unit''' ('''CDU''') is the interface device unit used to access the Flight Management Computers (FMC), the main computers and software of larger [[aircraft]]. CDUs are mostly seen on [[:Category:Airliners|airliners]], like the [[Boeing 777]].&lt;br /&gt;
&lt;br /&gt;
== CDUs in FlightGear ==&lt;br /&gt;
There are several aircraft equipped with operational CDUs in [[FlightGear]]:&lt;br /&gt;
* [[Airbus A320 Family]]&lt;br /&gt;
* [[Airbus A380]] (has a MFD, being used as a CDU)&lt;br /&gt;
* [[Boeing 747-400]]&lt;br /&gt;
* [[Boeing 757-200]]&lt;br /&gt;
* [[Boeing 777-200ER]]&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[Canvas MCDU framework]]&lt;br /&gt;
* [[Howto: Coding a Boeing CDU|Coding a Boeing CDU]]&lt;br /&gt;
* [[Howto: Implement a Control Display Unit]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft instruments]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Portal:Developer/Aircraft&amp;diff=146663</id>
		<title>Portal:Developer/Aircraft</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Portal:Developer/Aircraft&amp;diff=146663"/>
		<updated>2026-07-29T05:14:50Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Main page/Header&lt;br /&gt;
  |title=Welcome to the [[aircraft]] developer portal!&lt;br /&gt;
  |introduction=Please visit the {{forum link |f=4 |title=aircraft}} if you cannot find what you're looking for.&lt;br /&gt;
  |rightbox=[[Portal:Developer|Back to the Developer portal]]&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------&lt;br /&gt;
                    Portal overview&lt;br /&gt;
--------------------------------------------------------------&amp;gt;&lt;br /&gt;
  |rightcolumn1= &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;Getting started&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Howto:Make an aircraft|Making an aircraft]] · [[Howto:Make a helicopter|Making a helicopter]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Modeling - Getting Started|Modeling]] ·[[Knob animation]]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |rightcolumn2= &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;General&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Formalizing Aircraft Status|Aircraft status]] · [[Aircraft maintenance]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Create custom splash screens|Creating custom splash screens]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Configure views in FlightGear|Configuring views]] · [[Walk view|Adding walk view]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Define limits|Defining (speed) limits]]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |rightcolumn3= [[File:Portal aircraft.png|40px]] &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;[[Flight dynamics model]]&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Howto:Implement pushback|Implementing pushback]] · [[Howto:Implement aerial refueling capability|Implementing aerial refueling]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Write a fuel system in JSBSim|Writing a JSBSim fuel system]] · [[Howto: Name fuel tanks|Naming fuel tanks]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[JSBSim]] · [[YASim]]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |rightcolumn4= [[File:Portal instrumentation.png|40px]] &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;Instrumentation&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Creating instruments for FG|Creating instruments]] · [[Howto:Adding instruments to an aircraft|Adding instruments]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Make a clickable panel|Making a clickable panel]] · [[Glass reflection effect for instruments|Glass reflection effect]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Canvas MCDU framework|Control Display Unit]] · [[Ground proximity warning system]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto: Design an autopilot|Designing an autopilot]] · [[GPS]] · [[Route manager]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Soaring instrumentation sdk]]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |rightcolumn5= [[File:Portal modeling.png|40px]] &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:105%; font-weight:bold&amp;quot;&amp;gt;Modeling&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&lt;br /&gt;
[[Howto: 3D Aircraft Models|3D aircraft models]] · [[Modelling guidelines]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[3D Model Rotates Around Nose]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Animate models|Animating models]] · [[Howto:Use the normal map effect in aircraft|Using a normal map]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto: Add aircraft lights|Adding lights]] · [[Howto:Implement wing flex|Implementing wing flex]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Howto:Implement generic tyre smoke|Adding tyre smoke]] · [[Howto:Edit a livery|Editing liveries]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Model Import and Export|Model Importing and exporting]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[AC3D file format|AC3D File Format]] · [[Blender]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;!-------------------------------------------------------------&lt;br /&gt;
                    Main sections&lt;br /&gt;
--------------------------------------------------------------&amp;gt;&lt;br /&gt;
  |sections=&lt;br /&gt;
{{Main page/Leftbox|title=Aircraft, the fundamental part of flight&lt;br /&gt;
  |contents=Without any '''aircraft''', there is no flight simulator. Aircraft development is one of the fundamental parts of a flight simulator. Contributing is fun and can be done at all levels of experience.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Portals]]&lt;br /&gt;
&lt;br /&gt;
[[ca:Portal:Desenvolupador/Aeronau]]&lt;br /&gt;
[[es:Portal:Desarrolladores/Aeronaves]]&lt;br /&gt;
[[it:Portal:Sviluppo/Velivoli]]&lt;br /&gt;
[[pt:Portal:Desenvolvedor/Avião]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Canvas_MCDU_framework&amp;diff=146662</id>
		<title>Canvas MCDU framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Canvas_MCDU_framework&amp;diff=146662"/>
		<updated>2026-07-29T05:14:21Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
{{Template:Canvas Navigation}}&lt;br /&gt;
{{See also|Canvas EFIS Framework}}&lt;br /&gt;
&lt;br /&gt;
I am currently experimenting with building a framework for implementing a generic framework usable for every type of textual display (also see [[A standard CDU framework for FlightGear]]). The following code drives the AMU for an C-130J as shown in the video:&lt;br /&gt;
{{#ev:youtube|A7j-B0LgV-A}}&lt;br /&gt;
&lt;br /&gt;
The framework should easy to use for different types of displays, so if you use it please provide feedback!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasal&amp;quot;&amp;gt;&lt;br /&gt;
# ==============================================================================&lt;br /&gt;
# Avionics management unit&lt;br /&gt;
# ==============================================================================&lt;br /&gt;
&lt;br /&gt;
var Screen = {&lt;br /&gt;
  canvas_settings: {&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;AMU&amp;quot;,&lt;br /&gt;
    &amp;quot;size&amp;quot;: [512, 512],&lt;br /&gt;
    &amp;quot;view&amp;quot;: [480, 320],&lt;br /&gt;
    &amp;quot;mipmapping&amp;quot;: 1,&lt;br /&gt;
  },&lt;br /&gt;
  new: func(placement)&lt;br /&gt;
  {&lt;br /&gt;
    var m = {&lt;br /&gt;
      parents: [Screen],&lt;br /&gt;
      canvas: canvas.new(Screen.canvas_settings),&lt;br /&gt;
      text_style: {&lt;br /&gt;
        'font': &amp;quot;LiberationFonts/LiberationMono-Bold.ttf&amp;quot;,&lt;br /&gt;
        'character-size': 34,&lt;br /&gt;
        'character-aspect-ratio': 1.044&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    m.canvas.addPlacement(placement);&lt;br /&gt;
    m.canvas.setColorBackground(0, 0.05, 0);&lt;br /&gt;
    m.root = m.canvas.createGroup();&lt;br /&gt;
&lt;br /&gt;
    m.title = m.root.createChild(&amp;quot;text&amp;quot;);&lt;br /&gt;
    m.title._node.setValues(m.text_style);&lt;br /&gt;
    m.title.setColor(0,1,0);&lt;br /&gt;
    m.title.setAlignment(&amp;quot;center-center&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    # Left and right text rows&lt;br /&gt;
    m.l = {&lt;br /&gt;
      x: 8.25,&lt;br /&gt;
      align: &amp;quot;left-center&amp;quot;,&lt;br /&gt;
      rows: setsize([], 4)&lt;br /&gt;
    };&lt;br /&gt;
    m.r = {&lt;br /&gt;
      x: 471.75,&lt;br /&gt;
      align: &amp;quot;right-center&amp;quot;,&lt;br /&gt;
      rows: setsize([], 4)&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    for(var i = 0; i &amp;lt; 4; i += 1)&lt;br /&gt;
    {&lt;br /&gt;
      var y = 16 + (2 * i + 1) * 32;&lt;br /&gt;
      m.l.rows[i] = {&lt;br /&gt;
        y: y,&lt;br /&gt;
        texts: []&lt;br /&gt;
      };&lt;br /&gt;
      m.r.rows[i] = {&lt;br /&gt;
        y: y + 32,&lt;br /&gt;
        texts: []&lt;br /&gt;
      };&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    return m;&lt;br /&gt;
  },&lt;br /&gt;
  setRow: func(side, row_index, config)&lt;br /&gt;
  {&lt;br /&gt;
    # config can either be just the title as single string or an array with two&lt;br /&gt;
    # elements where the first element is the title and the second parameter is&lt;br /&gt;
    # passed to the callback function for hardware key presses&lt;br /&gt;
&lt;br /&gt;
    var row_config = config[side ~ row_index];&lt;br /&gt;
    var label = row_config;&lt;br /&gt;
    var property = nil;&lt;br /&gt;
&lt;br /&gt;
    if( typeof(row_config) == 'hash' )&lt;br /&gt;
    {&lt;br /&gt;
      label = row_config['label'];&lt;br /&gt;
      action = row_config['action'];&lt;br /&gt;
&lt;br /&gt;
      if( action != nil )&lt;br /&gt;
      {&lt;br /&gt;
        var fgcmd = action['fgcmd'];&lt;br /&gt;
        if( fgcmd != nil )&lt;br /&gt;
        {&lt;br /&gt;
          var args = action['args'];&lt;br /&gt;
          if( typeof(args) == 'hash' )&lt;br /&gt;
            property = args['property'];  &lt;br /&gt;
          action = func { fgcommand(fgcmd, props.Node.new(args)) };&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        me.commands[side ~ row_index] = action;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if( typeof(label) == 'scalar' )&lt;br /&gt;
      label = [label];&lt;br /&gt;
&lt;br /&gt;
    var row = me[side].rows[row_index - 1];&lt;br /&gt;
    var num_texts_old = size(row.texts);&lt;br /&gt;
    var num_texts_new = label != nil ? size(label) : 0;&lt;br /&gt;
&lt;br /&gt;
    # remove unneeded texts&lt;br /&gt;
    for(var i = num_texts_new; i &amp;lt; num_texts_old; i += 1)&lt;br /&gt;
      row.texts[i].del();&lt;br /&gt;
    setsize(row.texts, num_texts_new);&lt;br /&gt;
&lt;br /&gt;
    # update/create new texts&lt;br /&gt;
    var offset = 0;&lt;br /&gt;
    var i_start = (side == 'l') ? 0 : num_texts_new - 1;&lt;br /&gt;
    var i_end = (side == 'l') ? num_texts_new : -1;&lt;br /&gt;
    var dir = (side == 'l') ? 1 : -1;&lt;br /&gt;
    for(var i = i_start; i != i_end; i += dir)&lt;br /&gt;
    {&lt;br /&gt;
      var el_text = row.texts[i];&lt;br /&gt;
      if( el_text == nil )&lt;br /&gt;
      {&lt;br /&gt;
        el_text = me.root.createChild(&amp;quot;text&amp;quot;);&lt;br /&gt;
        el_text.setAlignment(me[side].align);&lt;br /&gt;
        el_text.setColor(0, 1, 0);&lt;br /&gt;
        el_text.setColorFill(0, 1, 0);&lt;br /&gt;
        el_text._node.setValues(me.text_style);&lt;br /&gt;
        row.texts[i] = el_text;&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      el_text.setDrawMode(1);&lt;br /&gt;
      el_text.setTranslation(me[side].x + offset, row.y);&lt;br /&gt;
      el_text.setColor(0, 1, 0);&lt;br /&gt;
      &lt;br /&gt;
      var text = label[i];&lt;br /&gt;
      if( typeof(text) == 'vector' )&lt;br /&gt;
      {&lt;br /&gt;
        (func {&lt;br /&gt;
          var text = el_text;&lt;br /&gt;
          var prop = property;&lt;br /&gt;
          var fun = label[i][1];&lt;br /&gt;
&lt;br /&gt;
          var listener = setlistener(prop, func(p) {&lt;br /&gt;
            fun(text, p.getValue())&lt;br /&gt;
          }, 1, 0);&lt;br /&gt;
&lt;br /&gt;
          if( me.listener[side ~ row_index] == nil )&lt;br /&gt;
            me.listener[side ~ row_index] = [listener];&lt;br /&gt;
          else&lt;br /&gt;
            append(me.listener[side ~ row_index], listener);&lt;br /&gt;
        })();&lt;br /&gt;
&lt;br /&gt;
        text = text[0];&lt;br /&gt;
      }&lt;br /&gt;
      offset += dir * size(text) * 30.75/1.59;&lt;br /&gt;
      el_text.setText(text);&lt;br /&gt;
      el_text.update();&lt;br /&gt;
&lt;br /&gt;
#      offset += dir * size(text) * 30.75/1.59;&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  setCallback: func(callback)&lt;br /&gt;
  {&lt;br /&gt;
    me.callback = callback;&lt;br /&gt;
  },&lt;br /&gt;
  setPage: func(config)&lt;br /&gt;
  {&lt;br /&gt;
    me.title.setText(config['title']);&lt;br /&gt;
    # move to full character position (move half character width on odd length)&lt;br /&gt;
    me.title.setTranslation(241 - math.mod(size(config['title']), 2) * 0.5 * 30.75/1.59, 16);&lt;br /&gt;
    me.title.update();&lt;br /&gt;
    &lt;br /&gt;
    me.commands = {};&lt;br /&gt;
    &lt;br /&gt;
    if( me['listener'] != nil )&lt;br /&gt;
    {&lt;br /&gt;
      foreach(var name; keys(me.listener))&lt;br /&gt;
      {&lt;br /&gt;
        foreach(var listener; me.listener[name])&lt;br /&gt;
          removelistener(listener);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    me.listener = {};&lt;br /&gt;
&lt;br /&gt;
    for(var i = 1; i &amp;lt;= 4; i += 1)&lt;br /&gt;
    {&lt;br /&gt;
      me.setRow('l', i, config);&lt;br /&gt;
      me.setRow('r', i, config);&lt;br /&gt;
    }&lt;br /&gt;
  },&lt;br /&gt;
  onKeyPress: func(key)&lt;br /&gt;
  {&lt;br /&gt;
    if( typeof(me.callback) != 'func' )&lt;br /&gt;
      return;&lt;br /&gt;
&lt;br /&gt;
    var type = substr(key, 0, 3);&lt;br /&gt;
    var name = substr(key, 4);&lt;br /&gt;
&lt;br /&gt;
    if( type != &amp;quot;LSK&amp;quot; )&lt;br /&gt;
      return;&lt;br /&gt;
&lt;br /&gt;
    var cmd = me.commands[name];&lt;br /&gt;
    if( typeof(cmd) == 'func' )&lt;br /&gt;
      cmd();&lt;br /&gt;
    else if( cmd != nil )&lt;br /&gt;
      me.callback(cmd);&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
var AMU = {&lt;br /&gt;
  new: func()&lt;br /&gt;
  {&lt;br /&gt;
    debug.dump(&amp;quot;Initializing AMU...&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    var m = {&lt;br /&gt;
      parents: [AMU],&lt;br /&gt;
      screen_left: Screen.new({&amp;quot;node&amp;quot;: &amp;quot;AMU Screen.l&amp;quot;}),&lt;br /&gt;
      screen_right: Screen.new({&amp;quot;node&amp;quot;: &amp;quot;AMU Screen.r&amp;quot;}),&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    m.screen_left.setCallback(func(cmd){ m.onCmd(cmd); });&lt;br /&gt;
    m.screen_right.setCallback(func(cmd){ m.onCmd(cmd); });&lt;br /&gt;
    &lt;br /&gt;
    var setStyle = func(text, active)&lt;br /&gt;
    {&lt;br /&gt;
      text.setPadding(5);&lt;br /&gt;
      text.setDrawMode(active ? 5 : 1);&lt;br /&gt;
      if( active )&lt;br /&gt;
        text.setColor(0, 0.05, 0);&lt;br /&gt;
      else&lt;br /&gt;
        text.setColor(0, 1, 0);&lt;br /&gt;
      text.setPadding(3);&lt;br /&gt;
      text.update();&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var propertyCycle = func(prop, values, texts)&lt;br /&gt;
    {&lt;br /&gt;
      var row = {&lt;br /&gt;
        label: [],&lt;br /&gt;
        action: {&lt;br /&gt;
          fgcmd: 'property-cycle',&lt;br /&gt;
          args: {&lt;br /&gt;
            property: prop,&lt;br /&gt;
            value: values&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      foreach(var text; texts)&lt;br /&gt;
      {&lt;br /&gt;
        if( typeof(text) == 'vector' )&lt;br /&gt;
        {&lt;br /&gt;
          # capture value in closure and add function which&lt;br /&gt;
          # changes style upon comparison with the given value&lt;br /&gt;
          (func {&lt;br /&gt;
            var val = text[1];&lt;br /&gt;
            text[1] = func(t,v) setStyle(t, v == val);&lt;br /&gt;
          })();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        append(row.label, text);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      return row;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var page_hdd_pos = {&lt;br /&gt;
      'title': &amp;quot;HDD POS&amp;quot;,&lt;br /&gt;
      'l1': &amp;quot;HDD 1&amp;quot;,&lt;br /&gt;
      'l2': &amp;quot;HDD 2&amp;quot;,&lt;br /&gt;
      'l3': &amp;quot;HDD 3&amp;quot;,&lt;br /&gt;
      'l4': &amp;quot;HDD 4&amp;quot;,&lt;br /&gt;
      'r1': &amp;quot;DEFAULTS&amp;gt;&amp;quot;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    m.pages = {&lt;br /&gt;
      'main-menu':&lt;br /&gt;
      {&lt;br /&gt;
        'left':&lt;br /&gt;
        {&lt;br /&gt;
          'title': &amp;quot;MAIN MENU&amp;quot;,&lt;br /&gt;
          'l1': {label: &amp;quot;&amp;lt;PFD&amp;quot;, action: {'page': 'pfd'}},&lt;br /&gt;
          'l2': {label: &amp;quot;&amp;lt;ENGINE&amp;quot;, action: {'page': 'engine'}},&lt;br /&gt;
          'l3': &amp;quot;&amp;lt;CAPS&amp;quot;,&lt;br /&gt;
          'r1': {label: &amp;quot;NAV-RADAR&amp;gt;&amp;quot;, action: {'page': 'nav-radar'}},&lt;br /&gt;
          'r2': {label: &amp;quot;SYS STATUS&amp;gt;&amp;quot;, action: {'page': 'sys-status'}},&lt;br /&gt;
          'r3': &amp;quot;DIG MAP&amp;gt;&amp;quot;,&lt;br /&gt;
          'r4': &amp;quot;TAWS&amp;gt;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        'right':&lt;br /&gt;
        {&lt;br /&gt;
          'title': &amp;quot;MAIN MENU&amp;quot;,&lt;br /&gt;
          'l1': &amp;quot;&amp;lt;NAV SELECT&amp;quot;,&lt;br /&gt;
          'l2': &amp;quot;&amp;lt;ACAWS&amp;quot;,&lt;br /&gt;
          'l3': &amp;quot;&amp;lt;DIAGNOSTICS&amp;quot;,&lt;br /&gt;
          'l4': &amp;quot;&amp;lt;PREFLIGHT&amp;quot;,&lt;br /&gt;
          'r1': &amp;quot;DEFAULTS&amp;gt;&amp;quot;,&lt;br /&gt;
          'r3': &amp;quot;LIGHTING&amp;gt;&amp;quot;,&lt;br /&gt;
          'r4': &amp;quot;GCAS AND STALL&amp;gt;&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
      },&lt;br /&gt;
      'pfd':&lt;br /&gt;
      {&lt;br /&gt;
        'left':&lt;br /&gt;
        {&lt;br /&gt;
          'title': &amp;quot;PFD&amp;quot;,&lt;br /&gt;
          'l1': propertyCycle('/instrumentation/pfd[0]/is_pilot', [0,1], [[&amp;quot;PILOT&amp;quot;,1],&amp;quot; / &amp;quot;,[&amp;quot;COPILOT&amp;quot;,0]]),&lt;br /&gt;
          'l2': propertyCycle('/instrumentation/pfd[0]/baro_unit', ['in','mb'],[&amp;quot;BARO &amp;quot;,[&amp;quot;IN&amp;quot;,'in'],&amp;quot; / &amp;quot;,[&amp;quot;MB&amp;quot;,'mb']]),&lt;br /&gt;
          'l3': propertyCycle('/instrumentation/pfd[0]/north', ['mag','true','grid'], [[&amp;quot;MAG&amp;quot;,'mag'],&amp;quot; / &amp;quot;,[&amp;quot;TRUE&amp;quot;,'true'],&amp;quot; / &amp;quot;,[&amp;quot;GRID&amp;quot;,'grid']]),&lt;br /&gt;
          'l4': propertyCycle('/instrumentation/pfd[0]/fd_source', [0,1], [&amp;quot;FD SOURCE &amp;quot;,[&amp;quot;P&amp;quot;, 1],&amp;quot; / &amp;quot;,[&amp;quot;CP&amp;quot;,0]]),&lt;br /&gt;
          'r1': propertyCycle('/instrumentation/pfd[0]/att_ref_imu', [1,2], [&amp;quot;ATT REF IMU &amp;quot;,[&amp;quot;1&amp;quot;,1],&amp;quot; / &amp;quot;,[&amp;quot;2&amp;quot;,2]]),&lt;br /&gt;
          'r2': propertyCycle('/instrumentation/pfd[0]/cadc_src', [1,2], [&amp;quot;CADC &amp;quot;,[&amp;quot;1&amp;quot;,1],&amp;quot; / &amp;quot;,[&amp;quot;2&amp;quot;,2]]),&lt;br /&gt;
          'r3': propertyCycle('/instrumentation/pfd[0]/rad_alt_src', [1,2], [&amp;quot;RAD ALT &amp;quot;, [&amp;quot;1&amp;quot;, 1], &amp;quot; / &amp;quot;, [&amp;quot;2&amp;quot;, 2]]),&lt;br /&gt;
          'r4': {label: &amp;quot;MAIN MENU&amp;gt;&amp;quot;, action: {'page': 'main-menu'}}&lt;br /&gt;
        },&lt;br /&gt;
        'right':&lt;br /&gt;
        {&lt;br /&gt;
          'title': &amp;quot;HDD POS&amp;quot;,&lt;br /&gt;
          'l1': &amp;quot;HDD 1&amp;quot;,&lt;br /&gt;
          'l2': &amp;quot;HDD 2&amp;quot;,&lt;br /&gt;
          'r1': &amp;quot;DEFAULTS&amp;gt;&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      },&lt;br /&gt;
      'engine':&lt;br /&gt;
      {&lt;br /&gt;
        'left':&lt;br /&gt;
        {&lt;br /&gt;
          'title': &amp;quot;ENGINE&amp;quot;,&lt;br /&gt;
          'l1': &amp;quot;&amp;lt;ENG DIAGNOSTICS&amp;quot;,&lt;br /&gt;
          'l2': &amp;quot;&amp;lt;PROP SYNC&amp;quot;,&lt;br /&gt;
          'l3': &amp;quot;EMS DATA DOWNLOAD&amp;quot;,&lt;br /&gt;
          'l4': &amp;quot;EMS EVENT RECORD&amp;quot;,&lt;br /&gt;
          'r3': &amp;quot;HDD POS&amp;gt;&amp;quot;,&lt;br /&gt;
          'r4': {label: &amp;quot;MAIN MENU&amp;gt;&amp;quot;, action: {'page': 'main-menu'}}&lt;br /&gt;
        },&lt;br /&gt;
        'right': page_hdd_pos&lt;br /&gt;
      },&lt;br /&gt;
      'sys-status':&lt;br /&gt;
      {&lt;br /&gt;
        'left':&lt;br /&gt;
        {&lt;br /&gt;
          'title': &amp;quot;SYS STATUS DISPLAY&amp;quot;,&lt;br /&gt;
          'r3': &amp;quot;HDD POS&amp;gt;&amp;quot;,&lt;br /&gt;
          'r4': {label: &amp;quot;MAIN MENU&amp;gt;&amp;quot;, action: {'page': 'main-menu'}}&lt;br /&gt;
        },&lt;br /&gt;
        'right': page_hdd_pos&lt;br /&gt;
      },&lt;br /&gt;
      'nav-radar':&lt;br /&gt;
      {&lt;br /&gt;
        'left':&lt;br /&gt;
        {&lt;br /&gt;
          'title': &amp;quot;NAV-RADAR DISPLAY&amp;quot;,&lt;br /&gt;
          'l1': propertyCycle('/instrumentation/nav[0]/full', [0,1], [[&amp;quot;FULL&amp;quot;,1],&amp;quot; / &amp;quot;,[&amp;quot;PART&amp;quot;,0]]),&lt;br /&gt;
          'l2': propertyCycle('/instrumentation/nav[0]/center', [0,1], [[&amp;quot;CENTER&amp;quot;,1],&amp;quot; / &amp;quot;,[&amp;quot;OFFSET&amp;quot;,0]]),&lt;br /&gt;
          'l3': propertyCycle('/instrumentation/nav[0]/north', ['mag','true','grid'], [[&amp;quot;MAG&amp;quot;,'mag'],&amp;quot; / &amp;quot;,[&amp;quot;TRUE&amp;quot;,'true'],&amp;quot; / &amp;quot;,[&amp;quot;GRID&amp;quot;,'grid']]),&lt;br /&gt;
          'l4': propertyCycle('/instrumentation/nav[0]/up', ['hdg','trk','n'], [[&amp;quot;HDG&amp;quot;,'hdg'],&amp;quot; / &amp;quot;,[&amp;quot;TK&amp;quot;,'trk'],&amp;quot; / &amp;quot;,[&amp;quot;N&amp;quot;,'n']]),&lt;br /&gt;
          'r1': &amp;quot;RANGE    2&amp;gt;&amp;quot;,&lt;br /&gt;
          'r2': &amp;quot;OVERLAYS&amp;gt;&amp;quot;,&lt;br /&gt;
          'r3': &amp;quot;HDD POS&amp;gt;&amp;quot;,&lt;br /&gt;
          'r4': {label: &amp;quot;MAIN MENU&amp;gt;&amp;quot;, action: {'page': 'main-menu'}}&lt;br /&gt;
        },&lt;br /&gt;
        'right': page_hdd_pos&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    m.setPage('main-menu');&lt;br /&gt;
    &lt;br /&gt;
    var input = &amp;quot;/controls/instruments/AMU/input&amp;quot;;&lt;br /&gt;
    setlistener(input, func(cmd) { m.onInput(cmd); });&lt;br /&gt;
    m.node_input = props.globals.getNode(input);&lt;br /&gt;
&lt;br /&gt;
    return m;&lt;br /&gt;
  },&lt;br /&gt;
  setPage: func(id)&lt;br /&gt;
  {&lt;br /&gt;
    var page = me.pages[id];&lt;br /&gt;
&lt;br /&gt;
    if( typeof(page) != 'hash' )&lt;br /&gt;
      return debug.dump(&amp;quot;AMU: Unknown page: &amp;quot; ~ id);&lt;br /&gt;
      &lt;br /&gt;
    var left = page['left'];&lt;br /&gt;
    if( typeof(left) == 'hash' )&lt;br /&gt;
      me.screen_left.setPage(left);&lt;br /&gt;
      &lt;br /&gt;
    var right = page['right'];&lt;br /&gt;
    if( typeof(right) == 'hash' )&lt;br /&gt;
      me.screen_right.setPage(right);&lt;br /&gt;
  },&lt;br /&gt;
  onInput: func()&lt;br /&gt;
  {&lt;br /&gt;
    var input = me.node_input.getValue();&lt;br /&gt;
    me.node_input.setValue(&amp;quot;&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    var prefix = substr(input, 0, 2);&lt;br /&gt;
    var cmd = substr(input, 2);&lt;br /&gt;
    &lt;br /&gt;
    if( prefix == &amp;quot;L-&amp;quot; )&lt;br /&gt;
      me.screen_left.onKeyPress(cmd);&lt;br /&gt;
    else if( prefix == &amp;quot;R-&amp;quot; )&lt;br /&gt;
      me.screen_right.onKeyPress(cmd);&lt;br /&gt;
  },&lt;br /&gt;
  onCmd: func(cmd)&lt;br /&gt;
  {&lt;br /&gt;
    if( typeof(cmd['page']) == 'scalar' )&lt;br /&gt;
      me.setPage(cmd['page']);&lt;br /&gt;
  }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
var node_pfd = props.globals.getNode('/instrumentation/pfd[0]/', 1);&lt;br /&gt;
node_pfd.initNode('is_pilot', 1, 'BOOL');&lt;br /&gt;
node_pfd.initNode('baro_unit', 'mb');&lt;br /&gt;
node_pfd.initNode('north', 'true');&lt;br /&gt;
node_pfd.initNode('fd_source', 1, 'INT');&lt;br /&gt;
node_pfd.initNode('att_ref_imu', 1, 'INT');&lt;br /&gt;
node_pfd.initNode('cadc_src', 1, 'INT');&lt;br /&gt;
node_pfd.initNode('rad_alt_src', 1, 'INT');&lt;br /&gt;
&lt;br /&gt;
var node_nav = props.globals.getNode('/instrumentation/nav[0]/', 1);&lt;br /&gt;
node_nav.initNode('full', 1, 'BOOL');&lt;br /&gt;
node_nav.initNode('center', 1, 'BOOL');&lt;br /&gt;
node_nav.initNode('north', 'true');&lt;br /&gt;
node_nav.initNode('up', 'trk');&lt;br /&gt;
&lt;br /&gt;
setlistener(&amp;quot;/nasal/canvas/loaded&amp;quot;, func {&lt;br /&gt;
  var amu_pilot = AMU.new();&lt;br /&gt;
}, 1);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Canvas_EFIS_framework&amp;diff=146661</id>
		<title>Canvas EFIS framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Canvas_EFIS_framework&amp;diff=146661"/>
		<updated>2026-07-29T05:13:47Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
The '''canvas EFIS framework''' (created by jsb) is by-product of the EFIS development&lt;br /&gt;
done for the CRJ700 family, which uses Rockwell Collins Proline. &lt;br /&gt;
It is published as a separate framework in the hope that it is useful for other aircraft as well, &lt;br /&gt;
however some features may be rather specific.&lt;br /&gt;
The biggest motivation and primary design goal was to support &amp;quot;near optimal&amp;quot; &lt;br /&gt;
performance but that does not come automatically of course.&lt;br /&gt;
&lt;br /&gt;
== Introduction and Overview ==&lt;br /&gt;
An EFIS usually comprises multiple display units (DU for short; CRT or LCD screens) to show all the information&lt;br /&gt;
relevant to the pilot (e.g. 2x PFD, 2x MFD, 2x EICAS in the CRJ700). &lt;br /&gt;
Some displays like an EICAS / ECAM may show different pages for the systems of the aircraft, they&lt;br /&gt;
can be select by the pilot via a corresponding control panel.&lt;br /&gt;
Furthermore, displays can be swapped in case of a DU fault. &lt;br /&gt;
In the CRJ700 the pilot can select display sources by turning the corresponding knobs.&lt;br /&gt;
&lt;br /&gt;
'''The EFIS framework provides Nasal classes to handle the following:'''&lt;br /&gt;
&lt;br /&gt;
=== Display unit ===&lt;br /&gt;
* reference to a 3D object in the cockpit (&amp;quot;display unit&amp;quot;) on which the canvas texture shall be displayed&lt;br /&gt;
* power switch property&lt;br /&gt;
* image source (canvas reference)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Dimming of display can be done by defining an animation in the XML going with the 3D model of the DU.&lt;br /&gt;
See example below.&lt;br /&gt;
&lt;br /&gt;
=== Image source (EFISCanvas) ===&lt;br /&gt;
* base class for EFIS/EICAS pages handling some SVG stuff &lt;br /&gt;
* can load a SVG file and create clipping from &amp;lt;name&amp;gt;_clip elements&lt;br /&gt;
* allows to register multiple update functions with individual update intervals&lt;br /&gt;
* update functions can be en-/disabled by a single property that should reflect the visibility of the canvas (e.g. do not waste CPU with updating pages that are not currently displayed)&lt;br /&gt;
* several listener factories for common animations like show/hide, translation, rotation&lt;br /&gt;
&lt;br /&gt;
=== Display selectors / routing ===&lt;br /&gt;
* Handle input events from cockpit knobs to switch displays / pages&lt;br /&gt;
&lt;br /&gt;
=== EICAS Message system ===&lt;br /&gt;
* Handle EICAS messages efficiently without eating up to much frame rate&lt;br /&gt;
* Message queue: decouple canvas updates from message arrival&lt;br /&gt;
&lt;br /&gt;
== Thoughts on implementation ==&lt;br /&gt;
Design goal: '''EFIS framework should support best performance by offering different update methods and update rates for efficency.'''&lt;br /&gt;
&lt;br /&gt;
=== Update rates ===&lt;br /&gt;
The EFIS/EICAS basically monitors the whole aircraft so it will have to read lots of properties. &lt;br /&gt;
For efficiency the properties must be grouped into different classes already in the design phase, that is, the aircraft developer shall carefully think about how often a property '''changes'''. &lt;br /&gt;
Some props are written to at frame rate by property rules but that does not mean the value changes every time. Furthermore, not every change has the same relevance, not everything needs to be displayed real time (= frame rate).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! update rate !! Interval !! comment&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 0.500s || low performance needs&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 0.100s || low to med. performance but no fluent animation&lt;br /&gt;
|-&lt;br /&gt;
| 20 || 0.050s ||&lt;br /&gt;
|-&lt;br /&gt;
| 30 || 0.033s || smooth canvas animation but possibly high performance need&lt;br /&gt;
|-&lt;br /&gt;
| 60 || 0.017s ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Some examples:'''&lt;br /&gt;
* PFD contains many &amp;quot;real-time&amp;quot; elements like attitude indicator, speed, altitude etc. They should be updated probably at frame rate (min. 25 Hz) Other elements like radio frequency may be ok to update after 100ms or even 0.5s &lt;br /&gt;
* An EICAS page displaying the door status maybe just fine with one update per second as doors move slowly and you won't see the door from outside and EICAS display inside the cockpit at the same time so a delay of one second does not matter &lt;br /&gt;
&lt;br /&gt;
=== Update methods ===&lt;br /&gt;
* Simple approach is to write an update loop that reads all relevant props, calculates the needed updates and updates the canvas elements (which in the end means writing properties) -&amp;gt; tends to be inefficient.&lt;br /&gt;
* Property read/write is somehow &amp;quot;expensive&amp;quot; and can cost you a lot of frame rate. So the next better idea could be to limit the rate at which the update function is called - usually by a timer with some sensible interval.&lt;br /&gt;
* If an animation is triggered only by one property and that property is unlikely to change often, remove the prop / animation from the update loop and use a listener instead. The listener may read other props as needed. A listener does not consume any CPU unless the property it listens to has changed, in which case the listener function is run.&lt;br /&gt;
&lt;br /&gt;
== Framework API documentation ==&lt;br /&gt;
The following sections document the framework classes and their methods.&lt;br /&gt;
&lt;br /&gt;
== Class EFIS ==&lt;br /&gt;
This is the top level class which ties together the different parts like display units, sources and cockpit controls. &lt;br /&gt;
&lt;br /&gt;
=== new() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = new(display_names, object_names, canvas_settings=nil);&lt;br /&gt;
|text = Returns a new EFIS object&lt;br /&gt;
|param1 = display_names&lt;br /&gt;
|param1text = Vector of display names &lt;br /&gt;
|param2 = object_names&lt;br /&gt;
|param2text = Vector of 3D object names for canvas placement.&lt;br /&gt;
|param3 = canvas_settings&lt;br /&gt;
|param3text = Optional config hash for canvas that is merged with default settings of EFIS class&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== setPowerProp() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setPowerProp(path);&lt;br /&gt;
|text = Creates listener for property path. Power on will start all display update functions, power of will stop them.&lt;br /&gt;
|param1 = path&lt;br /&gt;
|param1text = Property path to EFIS power property (bool).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== setWindowSize() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setWindowSize(window_size);&lt;br /&gt;
|text = Sets default size for canvas windows&lt;br /&gt;
|param1 = window_size&lt;br /&gt;
|param1text = Vector [size_x, size_y]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== setDUPowerProps() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setDUPowerProps(power_props, minimum_power=0);&lt;br /&gt;
|text = Sets default size for canvas windows&lt;br /&gt;
|param1 = power_props&lt;br /&gt;
|param1text = Vector of property paths, must be of same size as display_names given to new().&lt;br /&gt;
|param2 = minimum_power&lt;br /&gt;
|param2text = Passed to DisplayUnit.setPowerSource()&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== addSource() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addSource(efis_canvas);&lt;br /&gt;
|text = Adds a EFISCanvas as display source, returns source ID to be used in mappings.&lt;br /&gt;
|param1 = efis_canvas&lt;br /&gt;
|param1text = A EFISCanvas instance created with EFISCanvas.new()&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== addDisplaySwapControl() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addDisplaySwapControl(ctrl, mappings, callback=nil);&lt;br /&gt;
|text = Adds a listener for &amp;quot;ctrl&amp;quot;, activates new source-display-mapping on change. Use this to implement a display swap knob in the cockpit.&lt;br /&gt;
|param1 = ctrl&lt;br /&gt;
|param1text =  property path to integer prop, e.g. some selector knob in the cockpit&lt;br /&gt;
|param2 = mappings&lt;br /&gt;
|param2text = vector of display mappings, one mapping per value of ctrl&lt;br /&gt;
|param3 = callback&lt;br /&gt;
|param3text = optional function that will be called with current ctrl value&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== addSourceSelector() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addSourceSelector(selected, target, sources=nil);&lt;br /&gt;
|text = Adds a listener for &amp;quot;selected&amp;quot; which will read the target DU from &amp;quot;target&amp;quot; and sets its source according to &amp;quot;selected&amp;quot;. Use this e.g. for a EICAS / ECAM page select panel.&lt;br /&gt;
|param1 = selected &lt;br /&gt;
|param1text = property (node or path); source number (index to sources vector)&lt;br /&gt;
|param2 = target&lt;br /&gt;
|param2text = property (node or path); DU number to which the source will be mapped&lt;br /&gt;
|param3 = sources&lt;br /&gt;
|param3text = optional vector; selected -&amp;gt; source ID (as returned by addSource), defaults to all registered sources&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== setDefaultMapping() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setDefaultMapping(mapping);&lt;br /&gt;
|text = Sets and activates a default mapping of sources to display units.&lt;br /&gt;
|param1 = mapping&lt;br /&gt;
|param1text = Vector [source_id1, source_id2, ...] or hash {DisplayName: source_id}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== displayWindow() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = displayWindow(id);&lt;br /&gt;
|text = Opens display unit as canvas window.&lt;br /&gt;
|param1 = id&lt;br /&gt;
|param1text = Index of display&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Class EFISCanvas ==&lt;br /&gt;
EFISCanvas manages a single canvas for you. &lt;br /&gt;
It offers a bunch of little helpers to make the live of an aircraft developer easier. &lt;br /&gt;
These helpers mostly do animation and update stuff on canvas elements in an efficient way.&lt;br /&gt;
&lt;br /&gt;
=== new() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = new(name, svgfile);&lt;br /&gt;
|text = Returns a new EFISCanvas&lt;br /&gt;
|param1 = name&lt;br /&gt;
|param1text = Used e.g. in window title (see below)&lt;br /&gt;
|param2 = svgfile&lt;br /&gt;
|param2text = Filename of a SVG to load. (see also: loadsvg)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== getPath() ===&lt;br /&gt;
returns path of canvas&lt;br /&gt;
&lt;br /&gt;
=== getCanvas() ===&lt;br /&gt;
returns canvas instance&lt;br /&gt;
&lt;br /&gt;
=== getRoot() ===&lt;br /&gt;
returns root group of the canvas&lt;br /&gt;
&lt;br /&gt;
=== setUpdateN() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setUpdateN(node);&lt;br /&gt;
|text = set a node that is checked in all registered update functions, they will only be run, if the value of this node is true&lt;br /&gt;
|param1 = node&lt;br /&gt;
|param1text = props.node object&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== loadsvg() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = loadsvg(file);&lt;br /&gt;
|text = Parses the given SVG file into the root group of the EFISCanvas. Clipping is setup for elements that have a corresponding element with the same name extended by &amp;quot;_clip&amp;quot;.&lt;br /&gt;
|param1 = file&lt;br /&gt;
|param1text = filepath passed to canvas.parsesvg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== addUpdateFunction() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addUpdateFunction(f, interval);&lt;br /&gt;
|text = Creates a timer with given interval that runs the given function if the value of the update node is true.&lt;br /&gt;
|param1 = f&lt;br /&gt;
|param1text = Nasal function to run&lt;br /&gt;
|param2 = interval&lt;br /&gt;
|param2text = Interval in seconds&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== startUpdates() ===&lt;br /&gt;
Start all update timers.&lt;br /&gt;
&lt;br /&gt;
=== stopUpdates() ===&lt;br /&gt;
Stop all update timers.&lt;br /&gt;
&lt;br /&gt;
=== getInstr() ===&lt;br /&gt;
When updating EFIS displays, there is a need to access properties under /instrumentation very often.&lt;br /&gt;
To avoid the rather expensive append operator (&amp;quot;~&amp;quot;) and property path lookups, you should use this little helper.&lt;br /&gt;
It creates node objects (only once) to access properties like &amp;quot;/instrumentation/&amp;quot;~sys~&amp;quot;[&amp;quot;~id~&amp;quot;]/&amp;quot;~prop,&lt;br /&gt;
&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = getInstr(sys, prop, default=0, id=nil);&lt;br /&gt;
|text = Helper to quickly access instrumentation properties with this name schema: &amp;quot;/instrumentation/&amp;quot;~sys~&amp;quot;[&amp;quot;~id~&amp;quot;]/&amp;quot;~prop&lt;br /&gt;
|param1 = sys&lt;br /&gt;
|param1text = the system name under /instrumentation &lt;br /&gt;
|param2 = prop&lt;br /&gt;
|param2text = &lt;br /&gt;
|param3 = default&lt;br /&gt;
|param3text = Optional default value to return, if getValue() returns nil&lt;br /&gt;
|param4 = id&lt;br /&gt;
|param4text = Optional override the id of the current EFISCanvas obj (me.id)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== updateTextElement() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = updateTextElement(svgkey, text, color=nil);&lt;br /&gt;
|text = Updates a single text element and optionally sets its color.&lt;br /&gt;
|param1 = svgkey&lt;br /&gt;
|param1text = Name of the text element to update.&lt;br /&gt;
|param2 = text&lt;br /&gt;
|param2text = new text, passed to setText()&lt;br /&gt;
|param3 = color&lt;br /&gt;
|param3text = Vector [r,g,b] or valid color name from EFISCanvas.colors&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== _updateClip() ===&lt;br /&gt;
private function that sets clipping for an element, if there is another element with the same name extended by &amp;quot;_clip&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Listener factories ===&lt;br /&gt;
{{note|&lt;br /&gt;
The following listener factories will return a function. The general usage is &lt;br /&gt;
setlistener(&amp;quot;/some/property/name&amp;quot;, _makeListener_xxx(parameters), 1, 0);&lt;br /&gt;
&lt;br /&gt;
As usual, the listened-to node is passed into the listener function as first argument and the function will getValue() and do something meaningful with the value.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The first argument to the listener factory functions is always svgkey which can &lt;br /&gt;
be either a string naming one canvas element or a vector of such strings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== _makeListener_showHide() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = _makeListener_showHide(svgkey, value=nil);&lt;br /&gt;
|text = Returns listener to show/hide element(s).&lt;br /&gt;
|param1 = svgkey&lt;br /&gt;
|param1text = String or vector; the element(s) to update.&lt;br /&gt;
|param2 = value&lt;br /&gt;
|param2text = optional value to trigger show(); otherwise node.value will be implicitly treated as bool.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== _makeListener_rotate() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = _makeListener_rotate(svgkey, factors=nil);&lt;br /&gt;
|text = Returns listener to rotate one or more canvas element(s) by property value. If svgkey is a vector, factors must be a hash having each elemnent in svgkey as a key and the corresponding factor.&lt;br /&gt;
|param1 = svgkey&lt;br /&gt;
|param1text = String or vector; the element(s) to update.&lt;br /&gt;
|param2 = factors=nil&lt;br /&gt;
|param2text = Factor for setRotation(value * factor); defaults to 1 if not given&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== _makeListener_translate() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = _makeListener_translate(svgkey, fx, fy);&lt;br /&gt;
|text = Returns listener to translate one or more canvas element(s) by property value. If svgkey is a vector, fx and fy must be hashes having each elemnent in svgkey as a key and the corresponding factor for translation.&lt;br /&gt;
|param1 = svgkey&lt;br /&gt;
|param1text = String or vector; the element(s) to update.&lt;br /&gt;
|param2 = fx&lt;br /&gt;
|param2text = Factor for translation in x direction&lt;br /&gt;
|param3 = fy&lt;br /&gt;
|param3text = Factor for translation in y direction&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== _makeListener_setColor() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = _makeListener_setColor(svgkey, color_true, color_false);&lt;br /&gt;
|text = Returns generic listener to change element color. Both color arguments can be either a vector [r,g,b] or a valid name (hash key) for EFISCanvas.colors; &lt;br /&gt;
|param1 = svgkey&lt;br /&gt;
|param1text = String or vector; element(s) on which to call setColor().&lt;br /&gt;
|param2 = color_true&lt;br /&gt;
|param2text = Color to use, if getValue() is true. &lt;br /&gt;
|param3 = color_false&lt;br /&gt;
|param3text = Color to use, if getValue() is false.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== _makeListener_updateText() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = _makeListener_updateText(svgkey, format=&amp;quot;%s&amp;quot;, default=&amp;quot;&amp;quot;);&lt;br /&gt;
|text = Returns listener to update a canvas text element from property value.&lt;br /&gt;
|param1 = svgkey&lt;br /&gt;
|param1text = The element to update.&lt;br /&gt;
|param2 = format&lt;br /&gt;
|param2text = A valid format string for printf()&lt;br /&gt;
|param3 = default&lt;br /&gt;
|param3text = Value to use, if getValue() returns nil or false.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Class DisplayUnit ==&lt;br /&gt;
This class is used by the EFIS class. DisplayUnit creates and places a canvas to a 3D object specified in new().&lt;br /&gt;
&lt;br /&gt;
=== new() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = new(name, canvas_settings, screen_obj, parent_obj = nil);&lt;br /&gt;
|text = Configure the nasal file to load.&lt;br /&gt;
|param1 = name&lt;br /&gt;
|param1text = Used e.g. in window title (see below)&lt;br /&gt;
|param2 = canvas_settings&lt;br /&gt;
|param2text = passed to canvas.new()&lt;br /&gt;
|param3 = screen_obj&lt;br /&gt;
|param3text = used for canvas placement&lt;br /&gt;
|param4 = parent_obj&lt;br /&gt;
|param4text = used for canvas placement&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== setSource() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = display_unit.setSource(path);&lt;br /&gt;
|text = Select a canvas to show on the display unit.&lt;br /&gt;
|param1 = path&lt;br /&gt;
|param1text = A valid canvas path as returned by the canvas.getPath() method.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== setPowerSource() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = display_unit.setPowerSource(prop, min);&lt;br /&gt;
|text = Sets a listener to prop. Display will show only if property value &amp;gt;= min &lt;br /&gt;
|param1 = prop&lt;br /&gt;
|param1text = Path to property that represents display power supply.&lt;br /&gt;
|param2 = min&lt;br /&gt;
|param2text = Minimum value of property to show display.&lt;br /&gt;
|example1 =&lt;br /&gt;
var my_display_unit = DisplayUnit.new(&amp;quot;PFD1&amp;quot;);&lt;br /&gt;
# display turns on when DC power is &amp;gt;= 24 volts&lt;br /&gt;
my_display_unit.setPowerSource(&amp;quot;/systems/DC/outputs/pfd1&amp;quot;, 24);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== asWindow() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = display_unit.asWindow(window_size);&lt;br /&gt;
|text = Opens the display in a canvas window.&lt;br /&gt;
|param1 = window_size&lt;br /&gt;
|param1text = Vector [size_x, size_y]; passed to canvas.Window.new().&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== EICAS message system ==&lt;br /&gt;
The message system decouples the update of canvas text elements (e.g. message lines) from the handling of messages.&lt;br /&gt;
It is configured with the necessary message classes (e.g. warnings, caution messages, status messages) and a list of all possible messages.&lt;br /&gt;
For each message a corresponding property can be defined that controls whether or not the message is shown.&lt;br /&gt;
Alternatively, a message can be shown or hidden via the Nasal methods (see also the HOWTO section for examples and best practices).&lt;br /&gt;
&lt;br /&gt;
=== Class MessageSystem ===&lt;br /&gt;
==== new() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = new(page_length, prop_path);&lt;br /&gt;
|text = Creates a new message system.&lt;br /&gt;
|param1 = page_length&lt;br /&gt;
|param1text = Maximum page length. Page length can be changed at runtime but not exceed this initial value.&lt;br /&gt;
|param2 = prop_path&lt;br /&gt;
|param2text = Property path, some config and data of the message system will be put here.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== setPowerProp() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setPowerProp(prop_path);&lt;br /&gt;
|text = Sets a listener to the &amp;quot;power switch&amp;quot; property. Will call init() if property changes to true.&lt;br /&gt;
|param1 = prop_path&lt;br /&gt;
|param1text = Path to a bool property representing the EFIS power state.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== addMessageClass() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addMessageClass(class_name, paging, color = nil);&lt;br /&gt;
|text = Sets the number of lines per page.&lt;br /&gt;
|param1 = lines&lt;br /&gt;
|param1text = Number of lines per page&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== addMessages() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addMessages(class, messages);&lt;br /&gt;
|text = Add message definitions to a class. Setup listeners according to message definitions that call setMessage() accordingly.&lt;br /&gt;
|param1 = class&lt;br /&gt;
|param1text = Class identifier returned by addMessageClass()&lt;br /&gt;
|param2 = messages&lt;br /&gt;
|param2text = Vector of message definitions. See below for format.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{caution|Use setSoundPath() before addAuralAlert() or addAuralAlerts().}}&lt;br /&gt;
==== setSoundPath() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setSoundPath(path);&lt;br /&gt;
|text = Set aural alert configuration hash&lt;br /&gt;
|param1 = path&lt;br /&gt;
|param1text = Default path for aural alert audio files.&lt;br /&gt;
|example1 =&lt;br /&gt;
var sound_dir = getprop(&amp;quot;sim/aircraft-dir&amp;quot;)~&amp;quot;/Sounds/auralalerts/&amp;quot;;&lt;br /&gt;
myMessageSystem..setSoundPath(sound_dir);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== addAuralAlert() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addAuralAlert(id, filename, volume=1.0, path=nil);&lt;br /&gt;
|text = Add a single aural alert.&lt;br /&gt;
|param1 = id&lt;br /&gt;
|param1text = Name of aural alert referenced in the message definitions or the auralAlert() method.&lt;br /&gt;
|param2 = filename&lt;br /&gt;
|param2text = Name of the sound file, e.g. &amp;quot;alert.wav&amp;quot;&lt;br /&gt;
|param3 = volume&lt;br /&gt;
|param3text = Sound volume for this alert, defaults to 1.0&lt;br /&gt;
|param4 = path&lt;br /&gt;
|param4text = Optional, override default path set with setSoundPath() before(!).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{note|If you want to store the alerts in a single hash you can pass this to the message system by calling addAuralAlerts(). Note the 's' at the end.}}&lt;br /&gt;
&lt;br /&gt;
{{warning|addAuralAlerts() overwrites any previous alert config. If you want to add single alerts with addAuralAlert() this has to be done after calling addAuralAlerts(). }}&lt;br /&gt;
&lt;br /&gt;
==== addAuralAlerts() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addAuralAlerts(alert_hash);&lt;br /&gt;
|text = Set aural alert configuration hash&lt;br /&gt;
|param1 = alert_hash&lt;br /&gt;
|param1text = Hash&lt;br /&gt;
|example1 =&lt;br /&gt;
var sound_dir = getprop(&amp;quot;sim/aircraft-dir&amp;quot;)~&amp;quot;/Sounds/auralalerts/&amp;quot;;&lt;br /&gt;
# you can add aural alerts one by one...&lt;br /&gt;
myMessageSystem.addAuralAlert(&amp;quot;firebell&amp;quot;, &amp;quot;firebell.wav&amp;quot;);&lt;br /&gt;
# ... or you can define everything in one hash and pass it to addAuralAlerts (mind the trailing 's')&lt;br /&gt;
var Alerts = {&lt;br /&gt;
    overspeed: {path: &amp;quot;/Sounds&amp;quot;, file: &amp;quot;overspeed.wav&amp;quot;, volume: 1.0 },&lt;br /&gt;
    alert1: {file: &amp;quot;sound.wav&amp;quot;, volume: 0.8 },&lt;br /&gt;
    alert2: &amp;quot;sound2.wav&amp;quot;,&lt;br /&gt;
};&lt;br /&gt;
myMessageSystem.setSoundPath(sound_dir);&lt;br /&gt;
myMessageSystem.addAuralAlerts(Alerts);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== setMessage() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setMessage(class, msg_id, visible=1);&lt;br /&gt;
|text = Show or hide a message, optional trigger aural alert on show. Does nothing if message is already in desired state.&lt;br /&gt;
|param1 = class&lt;br /&gt;
|param1text = Class identifier returned by addMessageClass()&lt;br /&gt;
|param2 = msg_id&lt;br /&gt;
|param2text = see getMessageID()&lt;br /&gt;
|param3 = visible&lt;br /&gt;
|param3text = bool; 0 = hide, otherwise show&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== auralAlert() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = auralAlert(id);&lt;br /&gt;
|text = Plays an aural alert.&lt;br /&gt;
|param1 = id&lt;br /&gt;
|param1text = Identifier of the aural alert (see addAuralAlert() ).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== init() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = init();&lt;br /&gt;
|text = Used on power up to check for active messages. Enables sound queue for aural alerts.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== hasUpdate() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = hasUpdate();&lt;br /&gt;
|text = Returns update flag.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== setPageLength() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setPageLength(length);&lt;br /&gt;
|text = Change page length. Length cannot exceed initial page length (see new())&lt;br /&gt;
|param1 = length&lt;br /&gt;
|param1text = New number of lines per page.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== getPageLength() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = getPageLength();&lt;br /&gt;
|text = Returns current page length.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== getFirstUpdateIndex() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = getFirstUpdateIndex();&lt;br /&gt;
|text = Returns the index of the first line that has changed.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== getActiveMessages() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = getActiveMessages();&lt;br /&gt;
|text = Returns message queue and clears the hasUpdate flag.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== getMessageID() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = getMessageID(class, msg_text);&lt;br /&gt;
|text = Returns numeric id for a message in given class.&lt;br /&gt;
|param1 = class&lt;br /&gt;
|param1text = Class identifier returned by addMessageClass()&lt;br /&gt;
|param2 = msg_text&lt;br /&gt;
|param2text = Message string to search for.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== disableMessage() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = disableMessage(class, msg_id);&lt;br /&gt;
|text = Inhibit message (or all messages in class if no msg_id is given).&lt;br /&gt;
|param1 = class&lt;br /&gt;
|param1text = Class identifier returned by addMessageClass()&lt;br /&gt;
|param2 = msg_id&lt;br /&gt;
|param2text = see getMessageID()&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== enableMessage() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = enableMessage(class, msg_id);&lt;br /&gt;
|text = Re-enable message (or all messages in class if no id is given).&lt;br /&gt;
|param1 = class&lt;br /&gt;
|param1text = Class identifier returned by addMessageClass()&lt;br /&gt;
|param2 = msg_id&lt;br /&gt;
|param2text = see getMessageID()&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''-- following methods are for message output on a canvas --'''&lt;br /&gt;
&lt;br /&gt;
==== setCanvasGroup() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setCanvasGroup(group);&lt;br /&gt;
|text = Set an existing canvas group to create text elements on.&lt;br /&gt;
|param1 = group&lt;br /&gt;
|param1text = A valid canvas group element&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== createCanvasTextLines() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = createCanvasTextLines(left, top, line_spacing, font_size);&lt;br /&gt;
|text = Show or hide a message, optional trigger aural alert on show. Does nothing if message is already in desired state.&lt;br /&gt;
|param1 = left, top&lt;br /&gt;
|param1text = Position of text element.&lt;br /&gt;
|param2 = line_spacing&lt;br /&gt;
|param2text = see getMessageID()&lt;br /&gt;
|param3 = font_size&lt;br /&gt;
|param3text = Font size.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== createPageIndicator() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = createPageIndicator(left, top, font_size, format_string = nil);&lt;br /&gt;
|text = Creates a text element for a page indicator on the canvas group set with setCanvasGroup().&lt;br /&gt;
|param1 = left, top&lt;br /&gt;
|param1text = Position of text element&lt;br /&gt;
|param2 = font_size&lt;br /&gt;
|param2text = Font size.&lt;br /&gt;
|param3 = format_string&lt;br /&gt;
|param3text = Optional printf format string, defaults to &amp;quot;Page %2d/%2d&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== updateCanvas() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = updateCanvas();&lt;br /&gt;
|text = Call this regularly to update text lines on canvas with the content of the message queue.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== updatePageIndicator() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = updatePageIndicator(current, total);&lt;br /&gt;
|text = Updates the page indicator text element.&lt;br /&gt;
|param1 = current&lt;br /&gt;
|param1text = Currently displayed page.&lt;br /&gt;
|param2 = total&lt;br /&gt;
|param2text = Total number of pages.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Format for message definitions ===&lt;br /&gt;
MessageSystem.addMessages() expects a vector of message definitions. A message definition is a hash with the keys ''msg'', ''prop'', ''aural'', ''condition'' (only msg is required, the rest is optional).&lt;br /&gt;
&lt;br /&gt;
''prop'' shall be used if &lt;br /&gt;
# the visibility of a message depends on only one property&lt;br /&gt;
# this property does NOT change frequently &lt;br /&gt;
&lt;br /&gt;
The optional ''condition'' element reqires ''prop'' and is again a hash where you can define up to four compare values. &lt;br /&gt;
For each existing key a listener to ''prop'' will be created performing the selected comparision. &lt;br /&gt;
It is up to the developer to provide a reasonable configuration here.&lt;br /&gt;
&lt;br /&gt;
The optional ''aural'' element can be any key of the aural configuration hash passed to MessageSystem.addAuralAlerts(). If the &lt;br /&gt;
&lt;br /&gt;
{{#tag:syntaxhighlight|&lt;br /&gt;
{&lt;br /&gt;
    msg: &amp;quot;Message Text&amp;quot;,&lt;br /&gt;
    prop: &amp;quot;/some/bool/trigger&amp;quot;, # optional&lt;br /&gt;
    aural: &amp;quot;sound_name&amp;quot;,        # optional&lt;br /&gt;
    condition: {                # optional&lt;br /&gt;
        eq: &amp;quot;foo&amp;quot;,&lt;br /&gt;
        ne: &amp;quot;bar&amp;quot;,&lt;br /&gt;
        lt: 21, # &amp;quot;less than&amp;quot;,&lt;br /&gt;
        gt: 42, # &amp;quot;greater than&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
}&lt;br /&gt;
# example:&lt;br /&gt;
var EICASMessages = [&lt;br /&gt;
    {msg: &amp;quot;APU FIRE&amp;quot;, prop: &amp;quot;engines/engine[2]/on-fire&amp;quot;, aural: &amp;quot;firebell&amp;quot;},&lt;br /&gt;
    {msg: &amp;quot;AC 1 AUTOXFER&amp;quot;, prop: &amp;quot;systems/AC/system[1]/serviceable&amp;quot;, condition: {eq: 0} },&lt;br /&gt;
    {msg: &amp;quot;AC BUS 1&amp;quot;, prop: &amp;quot;systems/AC/outputs/bus1&amp;quot;, condition: {lt: 100} },&lt;br /&gt;
    {msg: &amp;quot;ELT ON&amp;quot;, prop: &amp;quot;&amp;quot;},&lt;br /&gt;
];&lt;br /&gt;
|lang=&amp;quot;nasal&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
=== Class MessageClass ===&lt;br /&gt;
Helper class for MessageSystem. Stores configuration data for a message class.&lt;br /&gt;
&lt;br /&gt;
=== Class Pager ===&lt;br /&gt;
Helper class for MessageSystem.&lt;br /&gt;
The pager class takes a vector of messages and splits it into pages (sub vectors of defined length).&lt;br /&gt;
It can be configured via the Nasal methods described below or via some properties on the fly.&lt;br /&gt;
&lt;br /&gt;
'''Config nodes'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! property name !! Type and access !! Description&lt;br /&gt;
|-&lt;br /&gt;
| page_length || (INT, r/w)|| maximum number of lines per page.&lt;br /&gt;
|-&lt;br /&gt;
| page || (INT, r/w)|| currently selected page.&lt;br /&gt;
|-&lt;br /&gt;
| pages || (INT, r/o)|| number of pages according to last run of the page() method.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== new() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = new(page_length, prop_path);&lt;br /&gt;
|text = Configure the nasal file to load.&lt;br /&gt;
|param1 = page_length&lt;br /&gt;
|param1text = Maximum lines per page.&lt;br /&gt;
|param2 = prop_path&lt;br /&gt;
|param2text = Property base path; pager configuration nodes will be created under this path.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== page() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = page(lines);&lt;br /&gt;
|text = Return lines of current page; sticky messages will not be paged.&lt;br /&gt;
|param1 = lines&lt;br /&gt;
|param1text = Vector of messages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== pageChanged() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = pageChanged();&lt;br /&gt;
|text = Return the page-changed flag and resets it to false, so calling this method again will return false unless another page has been selected in the meantime.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== setPageLength() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setPageLength(lines);&lt;br /&gt;
|text = Update the value of the page_length node (the number of lines per page).&lt;br /&gt;
|param1 = lines&lt;br /&gt;
|param1text = Number of lines per page&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== setPage() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setPage(page);&lt;br /&gt;
|text = Update the value of page node used by page() to return the right lines.&lt;br /&gt;
|param1 = page&lt;br /&gt;
|param1text = Selected page&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== getPageCount() ====&lt;br /&gt;
Returns total number of pages, according to last run of page()&lt;br /&gt;
&lt;br /&gt;
==== getCurrentPage() ====&lt;br /&gt;
Returns current page, according to last run of page()&lt;br /&gt;
&lt;br /&gt;
== HOWTO and Examples ==&lt;br /&gt;
to be written / reference implementation in CRJ700 familiy to be published after framework is published.&lt;br /&gt;
&lt;br /&gt;
[[Category:Electronic flight instrument systems]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Canvas_EFIS_framework&amp;diff=146660</id>
		<title>Canvas EFIS framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Canvas_EFIS_framework&amp;diff=146660"/>
		<updated>2026-07-29T05:13:31Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Canvas Navigation}}&lt;br /&gt;
&lt;br /&gt;
The '''canvas EFIS framework''' (created by jsb) is by-product of the EFIS development&lt;br /&gt;
done for the CRJ700 family, which uses Rockwell Collins Proline. &lt;br /&gt;
It is published as a separate framework in the hope that it is useful for other aircraft as well, &lt;br /&gt;
however some features may be rather specific.&lt;br /&gt;
The biggest motivation and primary design goal was to support &amp;quot;near optimal&amp;quot; &lt;br /&gt;
performance but that does not come automatically of course.&lt;br /&gt;
&lt;br /&gt;
== Introduction and Overview ==&lt;br /&gt;
An EFIS usually comprises multiple display units (DU for short; CRT or LCD screens) to show all the information&lt;br /&gt;
relevant to the pilot (e.g. 2x PFD, 2x MFD, 2x EICAS in the CRJ700). &lt;br /&gt;
Some displays like an EICAS / ECAM may show different pages for the systems of the aircraft, they&lt;br /&gt;
can be select by the pilot via a corresponding control panel.&lt;br /&gt;
Furthermore, displays can be swapped in case of a DU fault. &lt;br /&gt;
In the CRJ700 the pilot can select display sources by turning the corresponding knobs.&lt;br /&gt;
&lt;br /&gt;
'''The EFIS framework provides Nasal classes to handle the following:'''&lt;br /&gt;
&lt;br /&gt;
=== Display unit ===&lt;br /&gt;
* reference to a 3D object in the cockpit (&amp;quot;display unit&amp;quot;) on which the canvas texture shall be displayed&lt;br /&gt;
* power switch property&lt;br /&gt;
* image source (canvas reference)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Dimming of display can be done by defining an animation in the XML going with the 3D model of the DU.&lt;br /&gt;
See example below.&lt;br /&gt;
&lt;br /&gt;
=== Image source (EFISCanvas) ===&lt;br /&gt;
* base class for EFIS/EICAS pages handling some SVG stuff &lt;br /&gt;
* can load a SVG file and create clipping from &amp;lt;name&amp;gt;_clip elements&lt;br /&gt;
* allows to register multiple update functions with individual update intervals&lt;br /&gt;
* update functions can be en-/disabled by a single property that should reflect the visibility of the canvas (e.g. do not waste CPU with updating pages that are not currently displayed)&lt;br /&gt;
* several listener factories for common animations like show/hide, translation, rotation&lt;br /&gt;
&lt;br /&gt;
=== Display selectors / routing ===&lt;br /&gt;
* Handle input events from cockpit knobs to switch displays / pages&lt;br /&gt;
&lt;br /&gt;
=== EICAS Message system ===&lt;br /&gt;
* Handle EICAS messages efficiently without eating up to much frame rate&lt;br /&gt;
* Message queue: decouple canvas updates from message arrival&lt;br /&gt;
&lt;br /&gt;
== Thoughts on implementation ==&lt;br /&gt;
Design goal: '''EFIS framework should support best performance by offering different update methods and update rates for efficency.'''&lt;br /&gt;
&lt;br /&gt;
=== Update rates ===&lt;br /&gt;
The EFIS/EICAS basically monitors the whole aircraft so it will have to read lots of properties. &lt;br /&gt;
For efficiency the properties must be grouped into different classes already in the design phase, that is, the aircraft developer shall carefully think about how often a property '''changes'''. &lt;br /&gt;
Some props are written to at frame rate by property rules but that does not mean the value changes every time. Furthermore, not every change has the same relevance, not everything needs to be displayed real time (= frame rate).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! update rate !! Interval !! comment&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 0.500s || low performance needs&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 0.100s || low to med. performance but no fluent animation&lt;br /&gt;
|-&lt;br /&gt;
| 20 || 0.050s ||&lt;br /&gt;
|-&lt;br /&gt;
| 30 || 0.033s || smooth canvas animation but possibly high performance need&lt;br /&gt;
|-&lt;br /&gt;
| 60 || 0.017s ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Some examples:'''&lt;br /&gt;
* PFD contains many &amp;quot;real-time&amp;quot; elements like attitude indicator, speed, altitude etc. They should be updated probably at frame rate (min. 25 Hz) Other elements like radio frequency may be ok to update after 100ms or even 0.5s &lt;br /&gt;
* An EICAS page displaying the door status maybe just fine with one update per second as doors move slowly and you won't see the door from outside and EICAS display inside the cockpit at the same time so a delay of one second does not matter &lt;br /&gt;
&lt;br /&gt;
=== Update methods ===&lt;br /&gt;
* Simple approach is to write an update loop that reads all relevant props, calculates the needed updates and updates the canvas elements (which in the end means writing properties) -&amp;gt; tends to be inefficient.&lt;br /&gt;
* Property read/write is somehow &amp;quot;expensive&amp;quot; and can cost you a lot of frame rate. So the next better idea could be to limit the rate at which the update function is called - usually by a timer with some sensible interval.&lt;br /&gt;
* If an animation is triggered only by one property and that property is unlikely to change often, remove the prop / animation from the update loop and use a listener instead. The listener may read other props as needed. A listener does not consume any CPU unless the property it listens to has changed, in which case the listener function is run.&lt;br /&gt;
&lt;br /&gt;
== Framework API documentation ==&lt;br /&gt;
The following sections document the framework classes and their methods.&lt;br /&gt;
&lt;br /&gt;
== Class EFIS ==&lt;br /&gt;
This is the top level class which ties together the different parts like display units, sources and cockpit controls. &lt;br /&gt;
&lt;br /&gt;
=== new() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = new(display_names, object_names, canvas_settings=nil);&lt;br /&gt;
|text = Returns a new EFIS object&lt;br /&gt;
|param1 = display_names&lt;br /&gt;
|param1text = Vector of display names &lt;br /&gt;
|param2 = object_names&lt;br /&gt;
|param2text = Vector of 3D object names for canvas placement.&lt;br /&gt;
|param3 = canvas_settings&lt;br /&gt;
|param3text = Optional config hash for canvas that is merged with default settings of EFIS class&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== setPowerProp() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setPowerProp(path);&lt;br /&gt;
|text = Creates listener for property path. Power on will start all display update functions, power of will stop them.&lt;br /&gt;
|param1 = path&lt;br /&gt;
|param1text = Property path to EFIS power property (bool).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== setWindowSize() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setWindowSize(window_size);&lt;br /&gt;
|text = Sets default size for canvas windows&lt;br /&gt;
|param1 = window_size&lt;br /&gt;
|param1text = Vector [size_x, size_y]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== setDUPowerProps() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setDUPowerProps(power_props, minimum_power=0);&lt;br /&gt;
|text = Sets default size for canvas windows&lt;br /&gt;
|param1 = power_props&lt;br /&gt;
|param1text = Vector of property paths, must be of same size as display_names given to new().&lt;br /&gt;
|param2 = minimum_power&lt;br /&gt;
|param2text = Passed to DisplayUnit.setPowerSource()&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== addSource() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addSource(efis_canvas);&lt;br /&gt;
|text = Adds a EFISCanvas as display source, returns source ID to be used in mappings.&lt;br /&gt;
|param1 = efis_canvas&lt;br /&gt;
|param1text = A EFISCanvas instance created with EFISCanvas.new()&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== addDisplaySwapControl() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addDisplaySwapControl(ctrl, mappings, callback=nil);&lt;br /&gt;
|text = Adds a listener for &amp;quot;ctrl&amp;quot;, activates new source-display-mapping on change. Use this to implement a display swap knob in the cockpit.&lt;br /&gt;
|param1 = ctrl&lt;br /&gt;
|param1text =  property path to integer prop, e.g. some selector knob in the cockpit&lt;br /&gt;
|param2 = mappings&lt;br /&gt;
|param2text = vector of display mappings, one mapping per value of ctrl&lt;br /&gt;
|param3 = callback&lt;br /&gt;
|param3text = optional function that will be called with current ctrl value&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== addSourceSelector() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addSourceSelector(selected, target, sources=nil);&lt;br /&gt;
|text = Adds a listener for &amp;quot;selected&amp;quot; which will read the target DU from &amp;quot;target&amp;quot; and sets its source according to &amp;quot;selected&amp;quot;. Use this e.g. for a EICAS / ECAM page select panel.&lt;br /&gt;
|param1 = selected &lt;br /&gt;
|param1text = property (node or path); source number (index to sources vector)&lt;br /&gt;
|param2 = target&lt;br /&gt;
|param2text = property (node or path); DU number to which the source will be mapped&lt;br /&gt;
|param3 = sources&lt;br /&gt;
|param3text = optional vector; selected -&amp;gt; source ID (as returned by addSource), defaults to all registered sources&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== setDefaultMapping() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setDefaultMapping(mapping);&lt;br /&gt;
|text = Sets and activates a default mapping of sources to display units.&lt;br /&gt;
|param1 = mapping&lt;br /&gt;
|param1text = Vector [source_id1, source_id2, ...] or hash {DisplayName: source_id}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== displayWindow() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = displayWindow(id);&lt;br /&gt;
|text = Opens display unit as canvas window.&lt;br /&gt;
|param1 = id&lt;br /&gt;
|param1text = Index of display&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Class EFISCanvas ==&lt;br /&gt;
EFISCanvas manages a single canvas for you. &lt;br /&gt;
It offers a bunch of little helpers to make the live of an aircraft developer easier. &lt;br /&gt;
These helpers mostly do animation and update stuff on canvas elements in an efficient way.&lt;br /&gt;
&lt;br /&gt;
=== new() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = new(name, svgfile);&lt;br /&gt;
|text = Returns a new EFISCanvas&lt;br /&gt;
|param1 = name&lt;br /&gt;
|param1text = Used e.g. in window title (see below)&lt;br /&gt;
|param2 = svgfile&lt;br /&gt;
|param2text = Filename of a SVG to load. (see also: loadsvg)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== getPath() ===&lt;br /&gt;
returns path of canvas&lt;br /&gt;
&lt;br /&gt;
=== getCanvas() ===&lt;br /&gt;
returns canvas instance&lt;br /&gt;
&lt;br /&gt;
=== getRoot() ===&lt;br /&gt;
returns root group of the canvas&lt;br /&gt;
&lt;br /&gt;
=== setUpdateN() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setUpdateN(node);&lt;br /&gt;
|text = set a node that is checked in all registered update functions, they will only be run, if the value of this node is true&lt;br /&gt;
|param1 = node&lt;br /&gt;
|param1text = props.node object&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== loadsvg() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = loadsvg(file);&lt;br /&gt;
|text = Parses the given SVG file into the root group of the EFISCanvas. Clipping is setup for elements that have a corresponding element with the same name extended by &amp;quot;_clip&amp;quot;.&lt;br /&gt;
|param1 = file&lt;br /&gt;
|param1text = filepath passed to canvas.parsesvg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== addUpdateFunction() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addUpdateFunction(f, interval);&lt;br /&gt;
|text = Creates a timer with given interval that runs the given function if the value of the update node is true.&lt;br /&gt;
|param1 = f&lt;br /&gt;
|param1text = Nasal function to run&lt;br /&gt;
|param2 = interval&lt;br /&gt;
|param2text = Interval in seconds&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== startUpdates() ===&lt;br /&gt;
Start all update timers.&lt;br /&gt;
&lt;br /&gt;
=== stopUpdates() ===&lt;br /&gt;
Stop all update timers.&lt;br /&gt;
&lt;br /&gt;
=== getInstr() ===&lt;br /&gt;
When updating EFIS displays, there is a need to access properties under /instrumentation very often.&lt;br /&gt;
To avoid the rather expensive append operator (&amp;quot;~&amp;quot;) and property path lookups, you should use this little helper.&lt;br /&gt;
It creates node objects (only once) to access properties like &amp;quot;/instrumentation/&amp;quot;~sys~&amp;quot;[&amp;quot;~id~&amp;quot;]/&amp;quot;~prop,&lt;br /&gt;
&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = getInstr(sys, prop, default=0, id=nil);&lt;br /&gt;
|text = Helper to quickly access instrumentation properties with this name schema: &amp;quot;/instrumentation/&amp;quot;~sys~&amp;quot;[&amp;quot;~id~&amp;quot;]/&amp;quot;~prop&lt;br /&gt;
|param1 = sys&lt;br /&gt;
|param1text = the system name under /instrumentation &lt;br /&gt;
|param2 = prop&lt;br /&gt;
|param2text = &lt;br /&gt;
|param3 = default&lt;br /&gt;
|param3text = Optional default value to return, if getValue() returns nil&lt;br /&gt;
|param4 = id&lt;br /&gt;
|param4text = Optional override the id of the current EFISCanvas obj (me.id)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== updateTextElement() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = updateTextElement(svgkey, text, color=nil);&lt;br /&gt;
|text = Updates a single text element and optionally sets its color.&lt;br /&gt;
|param1 = svgkey&lt;br /&gt;
|param1text = Name of the text element to update.&lt;br /&gt;
|param2 = text&lt;br /&gt;
|param2text = new text, passed to setText()&lt;br /&gt;
|param3 = color&lt;br /&gt;
|param3text = Vector [r,g,b] or valid color name from EFISCanvas.colors&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== _updateClip() ===&lt;br /&gt;
private function that sets clipping for an element, if there is another element with the same name extended by &amp;quot;_clip&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Listener factories ===&lt;br /&gt;
{{note|&lt;br /&gt;
The following listener factories will return a function. The general usage is &lt;br /&gt;
setlistener(&amp;quot;/some/property/name&amp;quot;, _makeListener_xxx(parameters), 1, 0);&lt;br /&gt;
&lt;br /&gt;
As usual, the listened-to node is passed into the listener function as first argument and the function will getValue() and do something meaningful with the value.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The first argument to the listener factory functions is always svgkey which can &lt;br /&gt;
be either a string naming one canvas element or a vector of such strings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== _makeListener_showHide() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = _makeListener_showHide(svgkey, value=nil);&lt;br /&gt;
|text = Returns listener to show/hide element(s).&lt;br /&gt;
|param1 = svgkey&lt;br /&gt;
|param1text = String or vector; the element(s) to update.&lt;br /&gt;
|param2 = value&lt;br /&gt;
|param2text = optional value to trigger show(); otherwise node.value will be implicitly treated as bool.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== _makeListener_rotate() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = _makeListener_rotate(svgkey, factors=nil);&lt;br /&gt;
|text = Returns listener to rotate one or more canvas element(s) by property value. If svgkey is a vector, factors must be a hash having each elemnent in svgkey as a key and the corresponding factor.&lt;br /&gt;
|param1 = svgkey&lt;br /&gt;
|param1text = String or vector; the element(s) to update.&lt;br /&gt;
|param2 = factors=nil&lt;br /&gt;
|param2text = Factor for setRotation(value * factor); defaults to 1 if not given&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== _makeListener_translate() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = _makeListener_translate(svgkey, fx, fy);&lt;br /&gt;
|text = Returns listener to translate one or more canvas element(s) by property value. If svgkey is a vector, fx and fy must be hashes having each elemnent in svgkey as a key and the corresponding factor for translation.&lt;br /&gt;
|param1 = svgkey&lt;br /&gt;
|param1text = String or vector; the element(s) to update.&lt;br /&gt;
|param2 = fx&lt;br /&gt;
|param2text = Factor for translation in x direction&lt;br /&gt;
|param3 = fy&lt;br /&gt;
|param3text = Factor for translation in y direction&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== _makeListener_setColor() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = _makeListener_setColor(svgkey, color_true, color_false);&lt;br /&gt;
|text = Returns generic listener to change element color. Both color arguments can be either a vector [r,g,b] or a valid name (hash key) for EFISCanvas.colors; &lt;br /&gt;
|param1 = svgkey&lt;br /&gt;
|param1text = String or vector; element(s) on which to call setColor().&lt;br /&gt;
|param2 = color_true&lt;br /&gt;
|param2text = Color to use, if getValue() is true. &lt;br /&gt;
|param3 = color_false&lt;br /&gt;
|param3text = Color to use, if getValue() is false.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== _makeListener_updateText() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = _makeListener_updateText(svgkey, format=&amp;quot;%s&amp;quot;, default=&amp;quot;&amp;quot;);&lt;br /&gt;
|text = Returns listener to update a canvas text element from property value.&lt;br /&gt;
|param1 = svgkey&lt;br /&gt;
|param1text = The element to update.&lt;br /&gt;
|param2 = format&lt;br /&gt;
|param2text = A valid format string for printf()&lt;br /&gt;
|param3 = default&lt;br /&gt;
|param3text = Value to use, if getValue() returns nil or false.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Class DisplayUnit ==&lt;br /&gt;
This class is used by the EFIS class. DisplayUnit creates and places a canvas to a 3D object specified in new().&lt;br /&gt;
&lt;br /&gt;
=== new() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = new(name, canvas_settings, screen_obj, parent_obj = nil);&lt;br /&gt;
|text = Configure the nasal file to load.&lt;br /&gt;
|param1 = name&lt;br /&gt;
|param1text = Used e.g. in window title (see below)&lt;br /&gt;
|param2 = canvas_settings&lt;br /&gt;
|param2text = passed to canvas.new()&lt;br /&gt;
|param3 = screen_obj&lt;br /&gt;
|param3text = used for canvas placement&lt;br /&gt;
|param4 = parent_obj&lt;br /&gt;
|param4text = used for canvas placement&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== setSource() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = display_unit.setSource(path);&lt;br /&gt;
|text = Select a canvas to show on the display unit.&lt;br /&gt;
|param1 = path&lt;br /&gt;
|param1text = A valid canvas path as returned by the canvas.getPath() method.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== setPowerSource() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = display_unit.setPowerSource(prop, min);&lt;br /&gt;
|text = Sets a listener to prop. Display will show only if property value &amp;gt;= min &lt;br /&gt;
|param1 = prop&lt;br /&gt;
|param1text = Path to property that represents display power supply.&lt;br /&gt;
|param2 = min&lt;br /&gt;
|param2text = Minimum value of property to show display.&lt;br /&gt;
|example1 =&lt;br /&gt;
var my_display_unit = DisplayUnit.new(&amp;quot;PFD1&amp;quot;);&lt;br /&gt;
# display turns on when DC power is &amp;gt;= 24 volts&lt;br /&gt;
my_display_unit.setPowerSource(&amp;quot;/systems/DC/outputs/pfd1&amp;quot;, 24);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== asWindow() ===&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = display_unit.asWindow(window_size);&lt;br /&gt;
|text = Opens the display in a canvas window.&lt;br /&gt;
|param1 = window_size&lt;br /&gt;
|param1text = Vector [size_x, size_y]; passed to canvas.Window.new().&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== EICAS message system ==&lt;br /&gt;
The message system decouples the update of canvas text elements (e.g. message lines) from the handling of messages.&lt;br /&gt;
It is configured with the necessary message classes (e.g. warnings, caution messages, status messages) and a list of all possible messages.&lt;br /&gt;
For each message a corresponding property can be defined that controls whether or not the message is shown.&lt;br /&gt;
Alternatively, a message can be shown or hidden via the Nasal methods (see also the HOWTO section for examples and best practices).&lt;br /&gt;
&lt;br /&gt;
=== Class MessageSystem ===&lt;br /&gt;
==== new() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = new(page_length, prop_path);&lt;br /&gt;
|text = Creates a new message system.&lt;br /&gt;
|param1 = page_length&lt;br /&gt;
|param1text = Maximum page length. Page length can be changed at runtime but not exceed this initial value.&lt;br /&gt;
|param2 = prop_path&lt;br /&gt;
|param2text = Property path, some config and data of the message system will be put here.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== setPowerProp() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setPowerProp(prop_path);&lt;br /&gt;
|text = Sets a listener to the &amp;quot;power switch&amp;quot; property. Will call init() if property changes to true.&lt;br /&gt;
|param1 = prop_path&lt;br /&gt;
|param1text = Path to a bool property representing the EFIS power state.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== addMessageClass() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addMessageClass(class_name, paging, color = nil);&lt;br /&gt;
|text = Sets the number of lines per page.&lt;br /&gt;
|param1 = lines&lt;br /&gt;
|param1text = Number of lines per page&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== addMessages() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addMessages(class, messages);&lt;br /&gt;
|text = Add message definitions to a class. Setup listeners according to message definitions that call setMessage() accordingly.&lt;br /&gt;
|param1 = class&lt;br /&gt;
|param1text = Class identifier returned by addMessageClass()&lt;br /&gt;
|param2 = messages&lt;br /&gt;
|param2text = Vector of message definitions. See below for format.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{caution|Use setSoundPath() before addAuralAlert() or addAuralAlerts().}}&lt;br /&gt;
==== setSoundPath() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setSoundPath(path);&lt;br /&gt;
|text = Set aural alert configuration hash&lt;br /&gt;
|param1 = path&lt;br /&gt;
|param1text = Default path for aural alert audio files.&lt;br /&gt;
|example1 =&lt;br /&gt;
var sound_dir = getprop(&amp;quot;sim/aircraft-dir&amp;quot;)~&amp;quot;/Sounds/auralalerts/&amp;quot;;&lt;br /&gt;
myMessageSystem..setSoundPath(sound_dir);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== addAuralAlert() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addAuralAlert(id, filename, volume=1.0, path=nil);&lt;br /&gt;
|text = Add a single aural alert.&lt;br /&gt;
|param1 = id&lt;br /&gt;
|param1text = Name of aural alert referenced in the message definitions or the auralAlert() method.&lt;br /&gt;
|param2 = filename&lt;br /&gt;
|param2text = Name of the sound file, e.g. &amp;quot;alert.wav&amp;quot;&lt;br /&gt;
|param3 = volume&lt;br /&gt;
|param3text = Sound volume for this alert, defaults to 1.0&lt;br /&gt;
|param4 = path&lt;br /&gt;
|param4text = Optional, override default path set with setSoundPath() before(!).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{note|If you want to store the alerts in a single hash you can pass this to the message system by calling addAuralAlerts(). Note the 's' at the end.}}&lt;br /&gt;
&lt;br /&gt;
{{warning|addAuralAlerts() overwrites any previous alert config. If you want to add single alerts with addAuralAlert() this has to be done after calling addAuralAlerts(). }}&lt;br /&gt;
&lt;br /&gt;
==== addAuralAlerts() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = addAuralAlerts(alert_hash);&lt;br /&gt;
|text = Set aural alert configuration hash&lt;br /&gt;
|param1 = alert_hash&lt;br /&gt;
|param1text = Hash&lt;br /&gt;
|example1 =&lt;br /&gt;
var sound_dir = getprop(&amp;quot;sim/aircraft-dir&amp;quot;)~&amp;quot;/Sounds/auralalerts/&amp;quot;;&lt;br /&gt;
# you can add aural alerts one by one...&lt;br /&gt;
myMessageSystem.addAuralAlert(&amp;quot;firebell&amp;quot;, &amp;quot;firebell.wav&amp;quot;);&lt;br /&gt;
# ... or you can define everything in one hash and pass it to addAuralAlerts (mind the trailing 's')&lt;br /&gt;
var Alerts = {&lt;br /&gt;
    overspeed: {path: &amp;quot;/Sounds&amp;quot;, file: &amp;quot;overspeed.wav&amp;quot;, volume: 1.0 },&lt;br /&gt;
    alert1: {file: &amp;quot;sound.wav&amp;quot;, volume: 0.8 },&lt;br /&gt;
    alert2: &amp;quot;sound2.wav&amp;quot;,&lt;br /&gt;
};&lt;br /&gt;
myMessageSystem.setSoundPath(sound_dir);&lt;br /&gt;
myMessageSystem.addAuralAlerts(Alerts);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== setMessage() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setMessage(class, msg_id, visible=1);&lt;br /&gt;
|text = Show or hide a message, optional trigger aural alert on show. Does nothing if message is already in desired state.&lt;br /&gt;
|param1 = class&lt;br /&gt;
|param1text = Class identifier returned by addMessageClass()&lt;br /&gt;
|param2 = msg_id&lt;br /&gt;
|param2text = see getMessageID()&lt;br /&gt;
|param3 = visible&lt;br /&gt;
|param3text = bool; 0 = hide, otherwise show&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== auralAlert() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = auralAlert(id);&lt;br /&gt;
|text = Plays an aural alert.&lt;br /&gt;
|param1 = id&lt;br /&gt;
|param1text = Identifier of the aural alert (see addAuralAlert() ).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== init() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = init();&lt;br /&gt;
|text = Used on power up to check for active messages. Enables sound queue for aural alerts.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== hasUpdate() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = hasUpdate();&lt;br /&gt;
|text = Returns update flag.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== setPageLength() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setPageLength(length);&lt;br /&gt;
|text = Change page length. Length cannot exceed initial page length (see new())&lt;br /&gt;
|param1 = length&lt;br /&gt;
|param1text = New number of lines per page.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== getPageLength() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = getPageLength();&lt;br /&gt;
|text = Returns current page length.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== getFirstUpdateIndex() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = getFirstUpdateIndex();&lt;br /&gt;
|text = Returns the index of the first line that has changed.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== getActiveMessages() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = getActiveMessages();&lt;br /&gt;
|text = Returns message queue and clears the hasUpdate flag.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== getMessageID() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = getMessageID(class, msg_text);&lt;br /&gt;
|text = Returns numeric id for a message in given class.&lt;br /&gt;
|param1 = class&lt;br /&gt;
|param1text = Class identifier returned by addMessageClass()&lt;br /&gt;
|param2 = msg_text&lt;br /&gt;
|param2text = Message string to search for.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== disableMessage() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = disableMessage(class, msg_id);&lt;br /&gt;
|text = Inhibit message (or all messages in class if no msg_id is given).&lt;br /&gt;
|param1 = class&lt;br /&gt;
|param1text = Class identifier returned by addMessageClass()&lt;br /&gt;
|param2 = msg_id&lt;br /&gt;
|param2text = see getMessageID()&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== enableMessage() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = enableMessage(class, msg_id);&lt;br /&gt;
|text = Re-enable message (or all messages in class if no id is given).&lt;br /&gt;
|param1 = class&lt;br /&gt;
|param1text = Class identifier returned by addMessageClass()&lt;br /&gt;
|param2 = msg_id&lt;br /&gt;
|param2text = see getMessageID()&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''-- following methods are for message output on a canvas --'''&lt;br /&gt;
&lt;br /&gt;
==== setCanvasGroup() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setCanvasGroup(group);&lt;br /&gt;
|text = Set an existing canvas group to create text elements on.&lt;br /&gt;
|param1 = group&lt;br /&gt;
|param1text = A valid canvas group element&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== createCanvasTextLines() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = createCanvasTextLines(left, top, line_spacing, font_size);&lt;br /&gt;
|text = Show or hide a message, optional trigger aural alert on show. Does nothing if message is already in desired state.&lt;br /&gt;
|param1 = left, top&lt;br /&gt;
|param1text = Position of text element.&lt;br /&gt;
|param2 = line_spacing&lt;br /&gt;
|param2text = see getMessageID()&lt;br /&gt;
|param3 = font_size&lt;br /&gt;
|param3text = Font size.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== createPageIndicator() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = createPageIndicator(left, top, font_size, format_string = nil);&lt;br /&gt;
|text = Creates a text element for a page indicator on the canvas group set with setCanvasGroup().&lt;br /&gt;
|param1 = left, top&lt;br /&gt;
|param1text = Position of text element&lt;br /&gt;
|param2 = font_size&lt;br /&gt;
|param2text = Font size.&lt;br /&gt;
|param3 = format_string&lt;br /&gt;
|param3text = Optional printf format string, defaults to &amp;quot;Page %2d/%2d&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== updateCanvas() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = updateCanvas();&lt;br /&gt;
|text = Call this regularly to update text lines on canvas with the content of the message queue.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== updatePageIndicator() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = updatePageIndicator(current, total);&lt;br /&gt;
|text = Updates the page indicator text element.&lt;br /&gt;
|param1 = current&lt;br /&gt;
|param1text = Currently displayed page.&lt;br /&gt;
|param2 = total&lt;br /&gt;
|param2text = Total number of pages.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Format for message definitions ===&lt;br /&gt;
MessageSystem.addMessages() expects a vector of message definitions. A message definition is a hash with the keys ''msg'', ''prop'', ''aural'', ''condition'' (only msg is required, the rest is optional).&lt;br /&gt;
&lt;br /&gt;
''prop'' shall be used if &lt;br /&gt;
# the visibility of a message depends on only one property&lt;br /&gt;
# this property does NOT change frequently &lt;br /&gt;
&lt;br /&gt;
The optional ''condition'' element reqires ''prop'' and is again a hash where you can define up to four compare values. &lt;br /&gt;
For each existing key a listener to ''prop'' will be created performing the selected comparision. &lt;br /&gt;
It is up to the developer to provide a reasonable configuration here.&lt;br /&gt;
&lt;br /&gt;
The optional ''aural'' element can be any key of the aural configuration hash passed to MessageSystem.addAuralAlerts(). If the &lt;br /&gt;
&lt;br /&gt;
{{#tag:syntaxhighlight|&lt;br /&gt;
{&lt;br /&gt;
    msg: &amp;quot;Message Text&amp;quot;,&lt;br /&gt;
    prop: &amp;quot;/some/bool/trigger&amp;quot;, # optional&lt;br /&gt;
    aural: &amp;quot;sound_name&amp;quot;,        # optional&lt;br /&gt;
    condition: {                # optional&lt;br /&gt;
        eq: &amp;quot;foo&amp;quot;,&lt;br /&gt;
        ne: &amp;quot;bar&amp;quot;,&lt;br /&gt;
        lt: 21, # &amp;quot;less than&amp;quot;,&lt;br /&gt;
        gt: 42, # &amp;quot;greater than&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
}&lt;br /&gt;
# example:&lt;br /&gt;
var EICASMessages = [&lt;br /&gt;
    {msg: &amp;quot;APU FIRE&amp;quot;, prop: &amp;quot;engines/engine[2]/on-fire&amp;quot;, aural: &amp;quot;firebell&amp;quot;},&lt;br /&gt;
    {msg: &amp;quot;AC 1 AUTOXFER&amp;quot;, prop: &amp;quot;systems/AC/system[1]/serviceable&amp;quot;, condition: {eq: 0} },&lt;br /&gt;
    {msg: &amp;quot;AC BUS 1&amp;quot;, prop: &amp;quot;systems/AC/outputs/bus1&amp;quot;, condition: {lt: 100} },&lt;br /&gt;
    {msg: &amp;quot;ELT ON&amp;quot;, prop: &amp;quot;&amp;quot;},&lt;br /&gt;
];&lt;br /&gt;
|lang=&amp;quot;nasal&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
=== Class MessageClass ===&lt;br /&gt;
Helper class for MessageSystem. Stores configuration data for a message class.&lt;br /&gt;
&lt;br /&gt;
=== Class Pager ===&lt;br /&gt;
Helper class for MessageSystem.&lt;br /&gt;
The pager class takes a vector of messages and splits it into pages (sub vectors of defined length).&lt;br /&gt;
It can be configured via the Nasal methods described below or via some properties on the fly.&lt;br /&gt;
&lt;br /&gt;
'''Config nodes'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! property name !! Type and access !! Description&lt;br /&gt;
|-&lt;br /&gt;
| page_length || (INT, r/w)|| maximum number of lines per page.&lt;br /&gt;
|-&lt;br /&gt;
| page || (INT, r/w)|| currently selected page.&lt;br /&gt;
|-&lt;br /&gt;
| pages || (INT, r/o)|| number of pages according to last run of the page() method.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== new() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = new(page_length, prop_path);&lt;br /&gt;
|text = Configure the nasal file to load.&lt;br /&gt;
|param1 = page_length&lt;br /&gt;
|param1text = Maximum lines per page.&lt;br /&gt;
|param2 = prop_path&lt;br /&gt;
|param2text = Property base path; pager configuration nodes will be created under this path.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== page() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = page(lines);&lt;br /&gt;
|text = Return lines of current page; sticky messages will not be paged.&lt;br /&gt;
|param1 = lines&lt;br /&gt;
|param1text = Vector of messages&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== pageChanged() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = pageChanged();&lt;br /&gt;
|text = Return the page-changed flag and resets it to false, so calling this method again will return false unless another page has been selected in the meantime.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== setPageLength() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setPageLength(lines);&lt;br /&gt;
|text = Update the value of the page_length node (the number of lines per page).&lt;br /&gt;
|param1 = lines&lt;br /&gt;
|param1text = Number of lines per page&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== setPage() ====&lt;br /&gt;
{{Nasal doc&lt;br /&gt;
|syntax = setPage(page);&lt;br /&gt;
|text = Update the value of page node used by page() to return the right lines.&lt;br /&gt;
|param1 = page&lt;br /&gt;
|param1text = Selected page&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== getPageCount() ====&lt;br /&gt;
Returns total number of pages, according to last run of page()&lt;br /&gt;
&lt;br /&gt;
==== getCurrentPage() ====&lt;br /&gt;
Returns current page, according to last run of page()&lt;br /&gt;
&lt;br /&gt;
== HOWTO and Examples ==&lt;br /&gt;
to be written / reference implementation in CRJ700 familiy to be published after framework is published.&lt;br /&gt;
&lt;br /&gt;
[[Category:Electronic flight instrument systems]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Howto:Implement_a_Control_Display_Unit&amp;diff=146659</id>
		<title>Howto:Implement a Control Display Unit</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Howto:Implement_a_Control_Display_Unit&amp;diff=146659"/>
		<updated>2026-07-29T05:12:31Z</updated>

		<summary type="html">&lt;p&gt;Servo: out of date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{out of date}}&lt;br /&gt;
{{Affected by Canvas|Canvas MCDU Framework}}&lt;br /&gt;
&lt;br /&gt;
[[File:747-400_CDU.png|thumb|270px|The Boeing-style CDU as seen on a [[Boeing 747-400]].]]&lt;br /&gt;
[[FlightGear]] has a generic [[Control Display Unit]] (CDU) model available, for easy implementation into [[aircraft]]. Currently only a [[Boeing]] style one is available, under &amp;lt;tt&amp;gt;[{{fgdata url|path=Aircraft/Instruments-3d/cdu Aircraft/Instruments-3d/cdu/}}]&amp;lt;/tt&amp;gt;. Be sure you have [[Howto: Calculate V-speeds|implemented a V-speed calculator]] before implementing the CDU.&lt;br /&gt;
&lt;br /&gt;
The [[Boeing 747-400]] is an example aircraft for the generic CDU.&lt;br /&gt;
&lt;br /&gt;
=== Status 01/2013 ===&lt;br /&gt;
As of 01/2013, a new CDU framework is being worked on by James, based on a combination of C++ and Nasal code, for further details please check out [[FlightGear Newsletter January 2013#Canvas-based CDU development]].&lt;br /&gt;
&lt;br /&gt;
=== model .xml ===&lt;br /&gt;
For each single CDU unit, the following code block is required in your aircraft's model .xml file. You can add as many CDUs as you need.&lt;br /&gt;
 &amp;lt;model&amp;gt;&lt;br /&gt;
  &amp;lt;path&amp;gt;Aircraft/Instruments-3d/cdu/boeing.xml&amp;lt;/path&amp;gt;&lt;br /&gt;
  &amp;lt;offsets&amp;gt;&lt;br /&gt;
   &amp;lt;x-m&amp;gt; 0.858&amp;lt;/x-m&amp;gt;&lt;br /&gt;
   &amp;lt;y-m&amp;gt; 0.186&amp;lt;/y-m&amp;gt;&lt;br /&gt;
   &amp;lt;z-m&amp;gt; 0.489&amp;lt;/z-m&amp;gt;&lt;br /&gt;
   &amp;lt;pitch-deg&amp;gt;-75&amp;lt;/pitch-deg&amp;gt;&lt;br /&gt;
  &amp;lt;/offsets&amp;gt;&lt;br /&gt;
  &amp;lt;overlay&amp;gt;&lt;br /&gt;
   &amp;lt;texture&amp;gt;boeing_brown.png&amp;lt;/texture&amp;gt;&lt;br /&gt;
  &amp;lt;/overlay&amp;gt;&lt;br /&gt;
 &amp;lt;/model&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''offsets:''' use these to position the CDU in your cockpit. The CDU model's origin is in the center of the model.&lt;br /&gt;
* '''texture:''' currently there are two textures to chose from, in order to fit your aircraft's panel color:&lt;br /&gt;
** {{fgdata source|path=Aircraft/Instruments-3d/cdu/boeing_brown.png|text=boeing_brown.png}}&lt;br /&gt;
** {{fgdata source|path=Aircraft/Instruments-3d/cdu/boeing_grey.png|text=boeing_grey.png}}&lt;br /&gt;
&lt;br /&gt;
=== -set.xml ===&lt;br /&gt;
These should all be placed outside the &amp;lt;sim&amp;gt;&amp;lt;/sim&amp;gt; part.&lt;br /&gt;
 &amp;lt;instrumentation&amp;gt;&lt;br /&gt;
  &amp;lt;cdu&amp;gt;&lt;br /&gt;
   &amp;lt;display&amp;gt;IDENT&amp;lt;/display&amp;gt;&lt;br /&gt;
   &amp;lt;ident&amp;gt;&lt;br /&gt;
    &amp;lt;model&amp;gt;747-400&amp;lt;/model&amp;gt;&lt;br /&gt;
    &amp;lt;engines&amp;gt;-80C2B1F&amp;lt;/engines&amp;gt;&lt;br /&gt;
   &amp;lt;/ident&amp;gt;&lt;br /&gt;
   &amp;lt;input type=&amp;quot;string&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;serviceable type=&amp;quot;bool&amp;quot;&amp;gt;true&amp;lt;/serviceable&amp;gt;&lt;br /&gt;
  &amp;lt;/cdu&amp;gt;&lt;br /&gt;
 &amp;lt;/instrumentation&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nasal&amp;gt;&lt;br /&gt;
  &amp;lt;cdu&amp;gt;&lt;br /&gt;
   &amp;lt;file&amp;gt;Aircraft/Instruments-3d/cdu/boeing.nas&amp;lt;/file&amp;gt;&lt;br /&gt;
  &amp;lt;/cdu&amp;gt;&lt;br /&gt;
 &amp;lt;/nasal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''display:''' the initial page, when power is first applied to the aircraft.&lt;br /&gt;
* '''ident:''' data to be displayed on the IDENTIFICATION page.&lt;br /&gt;
&lt;br /&gt;
[[Category:Howto|Implement Control Display Unit]]&lt;br /&gt;
[[Category:Aircraft enhancement|Implement Control Display Unit]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Boeing_737-800YV&amp;diff=146658</id>
		<title>Boeing 737-800YV</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Boeing_737-800YV&amp;diff=146658"/>
		<updated>2026-07-29T05:10:00Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:{{PAGENAME}}/info}}&lt;br /&gt;
The '''Boeing 737-800''' is a twin-engined narrow-body aircraft produced by Boeing Commercial Airplanes. Its direct competitor is the [[Airbus A320 Family]]. The &amp;quot;YV&amp;quot; in the name refers to the author YV3399.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
[[File:737-800YV interior.png|thumb|The interior of 737-800YV.]]&lt;br /&gt;
* Modeled interior (can be turned on/off via the menu).&lt;br /&gt;
* Openable cabin, cockpit, and cargo doors, along with boarding stairs and ground cargo.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Boeing_737_Next_Generation Boeing 737 Next Generation] (Wikipedia)&lt;br /&gt;
&lt;br /&gt;
{{Boeing}}&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Control_Display_Unit&amp;diff=146657</id>
		<title>Control Display Unit</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Control_Display_Unit&amp;diff=146657"/>
		<updated>2026-07-29T05:08:06Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:747-400_CDU.png|thumb|270px|The Boeing-style CDU as seen on a [[Boeing 747-400]].]]&lt;br /&gt;
The '''Control Display Unit''' ('''CDU''') is the interface device unit used to access the Flight Management Computers (FMC), the main computers and software of larger [[aircraft]]. CDUs are mostly seen on [[:Category:Airliners|airliners]], like the [[Boeing 777]].&lt;br /&gt;
&lt;br /&gt;
== CDUs in FlightGear ==&lt;br /&gt;
There are several aircraft equipped with operational CDUs in [[FlightGear]]:&lt;br /&gt;
* [[Airbus A320 Family]]&lt;br /&gt;
* [[Airbus A380]] (has a MFD, being used as a CDU)&lt;br /&gt;
* [[Boeing 747-400]]&lt;br /&gt;
* [[Boeing 757-200]]&lt;br /&gt;
* [[Boeing 777-200ER]]&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
* [[Howto: Development of the CDU|Development of the CDU (obsolete, but good for reference)]]&lt;br /&gt;
* [[Howto: Coding a Boeing CDU|Coding a Boeing CDU]]&lt;br /&gt;
* [[Howto: Implement a Control Display Unit]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Aircraft instruments]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Barcelona%E2%80%93El_Prat_Airport&amp;diff=146656</id>
		<title>Barcelona–El Prat Airport</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Barcelona%E2%80%93El_Prat_Airport&amp;diff=146656"/>
		<updated>2026-07-29T04:29:52Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Terminals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox Airport&lt;br /&gt;
|name = Barcelona - El Prat Airport (Aeropuerto de Barcelona-El Prat)&lt;br /&gt;
|image = Overview-lebl.jpg&lt;br /&gt;
|iata =BCN&lt;br /&gt;
|icao =LEBL&lt;br /&gt;
|type =Public&lt;br /&gt;
|owner =ENAIRE&lt;br /&gt;
|city = Barcelona, Spain&lt;br /&gt;
|runway= 07L/25R&lt;br /&gt;
|length= 3552 m   &lt;br /&gt;
|material= Asphalt &lt;br /&gt;
|runway2= 07R/25L&lt;br /&gt;
|length2= 2660 m  &lt;br /&gt;
|material2= Asphalt &lt;br /&gt;
|runway3= 02/20&lt;br /&gt;
|length3= 2528 m   &lt;br /&gt;
|material3= Asphalt &lt;br /&gt;
|website =http://www.aena.es/csee/Satellite/Aeropuerto-Barcelona/en/&lt;br /&gt;
}}&lt;br /&gt;
[[File:Terminal-lebl.jpg|thumb|A view of the terminal of Barcelona - El Prat with a runway in the foreground]]&lt;br /&gt;
[[File:Tower-lebl.jpg|thumb|The tower of Barcelona with one of the two terminals in the background]]&lt;br /&gt;
[[File:LEBL top-down.jpg|thumb|Top-down view of Barcelona-El Prat]]&lt;br /&gt;
'''Barcelona–El Prat Airport''' (IATA: '''BCN''', ICAO: '''LEBL'''), simply known as '''Barcelona Airport''', is an international airport located 12 km (7.5 mi) southwest of the centre of Barcelona, Spain, lying in the municipalities of El Prat de Llobregat, Viladecans, and Sant Boi. In FlightGear, the airport as well as the city is well-developed with a range of custom [[scenery]] building models.&lt;br /&gt;
&lt;br /&gt;
It was once [https://forum.flightgear.org/viewtopic.php?f=42&amp;amp;t=28927 voted] to be the default airport for FlightGear 2016.2.&lt;br /&gt;
&lt;br /&gt;
== Runways ==&lt;br /&gt;
Barcelona Airport has three runways, of which two (07R/25L and 07L/25R) are parallel while the other one crosses them (02/20).&lt;br /&gt;
&lt;br /&gt;
== Terminals ==&lt;br /&gt;
The airport of Barcelona has two terminals; Terminal 1 was opened in 2009. Terminal 2 is divided into three connected sections. Both terminals serve international and domestic flights.&lt;br /&gt;
&lt;br /&gt;
== City of Barcelona ==&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = The city of Barcelona&lt;br /&gt;
| width  = 320&lt;br /&gt;
| lines  = 2&lt;br /&gt;
| align  = center&lt;br /&gt;
| footer = In-sim screenshots of the city of Barcelona in FlightGear.&lt;br /&gt;
&lt;br /&gt;
| Montjuic1.jpg | The &amp;quot;Castell de Montjuic&amp;quot;&lt;br /&gt;
| Montjuic2.jpg | Overview over Barcelona with the &amp;quot;Montjuic&amp;quot;(hill) in the foreground&lt;br /&gt;
| LEBL at dawn.jpg | LEBL at dawn with the city of Barcelona in the background&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Feel free to add your own screenshots of Barcelona!&lt;br /&gt;
&lt;br /&gt;
== Suggested Flights ==&lt;br /&gt;
=== Majorca/Mallorca ===&lt;br /&gt;
Majorca or Mallorca is a beautiful island to the south-south-east of Barcelona, in the Mediterranean sea. It is situated between Minorca and Ibiza, which, along with Mallorca, form the Balearic Islands. While the southern part is rather flat and boring, the north-western part has a great mountainous scenery with mountains up to 1445 meters (Puig Major).&lt;br /&gt;
Take your favourite mid-class airliner like the A320(neo)-family, the 737-series or the E-Jet-Family. Start at Barcelona and taxi to the preferred runway. When at a safe altitude, turn to 164° and head directly to Mallorca while climbing to the cruise altitude. If the wind is coming from the right direction, you have the luck to get the approach from the north-east to runway 24 and you can see the great mountains on your right while landing. If not, well, then you'll see them while departing ;)&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = Flight to Mallorca(Majorca)&lt;br /&gt;
| width  = 400&lt;br /&gt;
| lines  = 2&lt;br /&gt;
| align  = center&lt;br /&gt;
| E 195 LEBL.jpg | Barcelona Tower, Europa 342 ready for takeoff&lt;br /&gt;
| Embraer 195 Rotate LEBL.jpg | Rotate!&lt;br /&gt;
| Lebl view.jpg | Right after takeoff, you will have a great view over the mountains next to Barcelona&lt;br /&gt;
| Turn LEBL.jpg | Turning direct LEPA&lt;br /&gt;
| Cruising E195.jpg | Cruise&lt;br /&gt;
| Approaching LEBL - 1.jpg | Approaching the ILS/glideslope of LEBL 24R&lt;br /&gt;
| Approaching LEBL - 2.jpg | Intercepting localizer&lt;br /&gt;
| Approaching LEBL - 3.jpg | A great view over Mallorca's north-west, short before landing&lt;br /&gt;
| Approaching LEBL - 4.jpg | The Airport &lt;br /&gt;
| Approaching LEBL - 5.jpg | The Airport (2)&lt;br /&gt;
| LEPA Touchdown.jpg | Touchdown at LEPA&lt;br /&gt;
| LEPA Parking.jpg | Parked at gate. You can see again the mountains in the background.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
You know another good flight around LEBL? Write it into this article!&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.fly-sea.com/charts/LEBL.pdf Airport Diagram]&lt;br /&gt;
* {{wikipedia|Barcelona–El Prat Airport|Wikipedia article|noicon=1}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Airports in Spain]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Template:Did_you_know&amp;diff=146655</id>
		<title>Template:Did you know</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Template:Did_you_know&amp;diff=146655"/>
		<updated>2026-07-29T04:29:15Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LangSwitch&lt;br /&gt;
| ca =  &amp;lt;!--Catalan --&amp;gt;&lt;br /&gt;
*...FlightGear s'utilitza en diversos [http://www.atcflightsim.com/ simuladors aprovats per la FAA]?&lt;br /&gt;
*...podeu simular fallades aleatòries del sistema de forma realista?&lt;br /&gt;
*...qualsevol pot editar el codi font de FlightGear i contribuir al projecte?&lt;br /&gt;
*...tota la ciutat de París, França està disponible en models 3D?&lt;br /&gt;
*...hi ha [[Special:Statistics|{{NUMBEROFARTICLES}}]] articles en aquest wiki?&lt;br /&gt;
| de =  &amp;lt;!-- German--&amp;gt;&lt;br /&gt;
*... dass zufällige Systemausfälle realistisch simuliert werden können?&lt;br /&gt;
*... dass Sie den Quellcode von FlightGear bearbeiten können?&lt;br /&gt;
*... dass jeder dazu eingeladen ist, sich an der Entwicklung von FlightGear zu beteiligen?&lt;br /&gt;
*... dass das ganze Stadtzentrum von Paris in 3D nachgebaut ist?&lt;br /&gt;
*... dass Sie Ihr Flugzeug [[Dual control|zusammen mit einem (Co-) Piloten]] über [[Multiplayer_Howto|Multiplayer]] steuern können?&lt;br /&gt;
| en = &amp;lt;!--  English--&amp;gt;&lt;br /&gt;
*...that FlightGear is used in several [http://www.atcflightsim.com/ FAA approved simulators]?&lt;br /&gt;
*...that you can simulate random system failures realistically?&lt;br /&gt;
*...that anyone can edit FlightGear source and contribute to the project?&lt;br /&gt;
*...that the whole city of Barcelona, Spain is [[Barcelona–El Prat Airport|available]] in 3D models?&lt;br /&gt;
*...that there are [[Special:Statistics|{{NUMBEROFARTICLES}}]] articles on this wiki?&lt;br /&gt;
| es =  &amp;lt;!-- Spanish --&amp;gt;&lt;br /&gt;
* ...puedes simular fallos aleatorios de sistemas realísticamente?&lt;br /&gt;
* ...cualquiera puede editar el código fuente de FlightGear y contribuir al proyecto?&lt;br /&gt;
* ...la ciudad de París en Francia está completamente modelada en 3D?&lt;br /&gt;
* ...que puedes usar [[Dual control/es|Control Dual|cabina compartida]] en algunos aviones para poder jugar con otros pilotos en la red multijugador?&lt;br /&gt;
| fa = &amp;lt;!-- Persian--&amp;gt;&lt;br /&gt;
*...در چندین شبیه ساز مورد تائید اداره هوانوردی فدرال استفاده می شود؟&lt;br /&gt;
*...که شما می توانید از کار افتادن سامانه های پروازی را شبیه سازی کنید؟&lt;br /&gt;
*...که هر کسی می تواند کدهای این شبیه ساز را ویرایش و در توسعه آن همکاری کند؟&lt;br /&gt;
*...تمام منطقه پروازی کشور ایران و عوارض سطح زمین آن شبیه سازی شده اند؟&lt;br /&gt;
*...که تعداد [[Special:Statistics|{{NUMBEROFARTICLES}}]] مقاله در این ویکی وجود دارد؟&lt;br /&gt;
| fr = &amp;lt;!--  Français--&amp;gt;&lt;br /&gt;
*...que FlightGear est en service dans plusieurs [http://www.atcflightsim.com/ Simulateurs approuvés par la FAA] ?&lt;br /&gt;
*...que vous pouvez simuler des pannes système aléatoires de manière réaliste ?&lt;br /&gt;
*...que n'importe qui peut éditer le code source de FlightGear et contribuer au projet ?&lt;br /&gt;
*...que toute la ville de Barcelone, en Espagne, est [[Barcelona–El Prat Airport|disponible]] dans des modèles 3D ?&lt;br /&gt;
*...qu'il y a [[Special:Statistics|{{NUMBEROFARTICLES}}]] articles dans ce  wiki ?&lt;br /&gt;
| it =  &amp;lt;!-- Italian --&amp;gt;&lt;br /&gt;
* ...puoi simulare realisticamente guasti casuali?&lt;br /&gt;
* ...tutti possono modificare il codice di FlightGear e contribuire al progetto?&lt;br /&gt;
* ...per l'intera città di Parigi sono disponibili modelli 3D degli edifici?&lt;br /&gt;
* ...puoi [[Dual control|condividere il cruscotto]] (di alcuni velivoli) con un altro utente tramite la rete in modalità multiplayer?&lt;br /&gt;
| nl =  &amp;lt;!-- Dutch --&amp;gt;&lt;br /&gt;
*...het mogelijk is om willekeurige afwijkingen realistisch te simuleren?&lt;br /&gt;
*...iedereen de broncode van FlightGear kan aanpassen en zo bij kan dragen aan het project?&lt;br /&gt;
*...het centrum van Parijs, met gebouwen en landschap, beschikbaar is?&lt;br /&gt;
*...het mogelijk is om de cockpit te [[Dual control|delen]] (bij sommige vliegtuigen) met iemand anders via het [[:nl:Howto: Multiplayer|MP netwerk]]?&lt;br /&gt;
| pl =  &amp;lt;!-- Polish --&amp;gt;&lt;br /&gt;
* ...FlightGear jest używany w kilku [http://www.atcflightsim.com/ symulatorach zatwierdzonych przez FAA]?&lt;br /&gt;
* ...można losowo symulować realistyczną awarię? &lt;br /&gt;
* ...każdy może edytować źródła FlightGeara i ulepszać projekt?&lt;br /&gt;
* ...całe miasto Barcelona w Hiszpanii jest [[Barcelona–El Prat Airport|wymodelowane]] w 3D?&lt;br /&gt;
* ...istnieje [[Special:Statistics|{{NUMBEROFARTICLES}}]] artykułów na tej wiki?&lt;br /&gt;
| pt =  &amp;lt;!-- Portugese --&amp;gt;&lt;br /&gt;
*...que você pode simular falhas realistas no sistema?&lt;br /&gt;
*...que qualquer um pode editar o FlightGear e contribuir?&lt;br /&gt;
*...que toda a cidade de Paris, França, está completamente modelada em 3D?&lt;br /&gt;
*...que você pode [[Pt/Controle duplo|compartilhar o controle]] (de algumas aeronaves) com outro usuário via [[Pt/Tutorial de Multiplayer|multiplayer]]?&lt;br /&gt;
| ru = &amp;lt;!--  Russian --&amp;gt;&lt;br /&gt;
*...что FlightGear используется в нескольких [http://www.atcflightsim.com/ симуляторах, одоборенных Федеральным управлением гражданской авиации США (FAA)]?&lt;br /&gt;
*...что вы можете реалистично симулировать случайные ошибки в системах?&lt;br /&gt;
*...что кто угодно может редактировать исходный код FlightGear и вносить свой вклад в проект?&lt;br /&gt;
*...что целый город Париж, Франция доступен в виде 3D-моделей?&lt;br /&gt;
*...что на этой Вики уже [[Special:Statistics|{{NUMBEROFARTICLES}}]] статей?&lt;br /&gt;
&amp;lt;!-- | sv =  Swedish --&amp;gt;&lt;br /&gt;
| zh =  &amp;lt;!-- Chinese --&amp;gt;&lt;br /&gt;
* ...FlightGear 是多个[http://www.atcflightsim.com/ 被FAA(美国联邦航空管理局)批准的模拟器之一]？&lt;br /&gt;
* ...你可以真实地模拟随机的系统故障？&lt;br /&gt;
* ...任何人都能贡献 FlightGear 的源代码？&lt;br /&gt;
* ...整个西班牙巴塞罗那市都有[[Barcelona–El Prat Airport|完善的]]3D模型地景？&lt;br /&gt;
* ...这个wiki上有[[Special:Statistics|{{NUMBEROFARTICLES}}]]篇文章？&lt;br /&gt;
| lang = {{{lang|}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Informative template|1=&lt;br /&gt;
== Goal ==&lt;br /&gt;
This template is used on the main page to show some hints and tips.&lt;br /&gt;
&lt;br /&gt;
If a language is not available the template will show the English text.&lt;br /&gt;
__TOC__&lt;br /&gt;
== Usage ==&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;'''did you know''' &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;''lang=''&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; lang:  Optional parameter that will override the language selection.  Useful for debugging purposes.&lt;br /&gt;
&lt;br /&gt;
== Alternative lines ==&lt;br /&gt;
Every now and then we can change the &amp;quot;Did you know&amp;quot; lines, replacing them by some of the ones below, or create new.&lt;br /&gt;
&lt;br /&gt;
Each line should start with (for English):&lt;br /&gt;
 *...that&lt;br /&gt;
&lt;br /&gt;
=== English ===&lt;br /&gt;
==== Unused ====&lt;br /&gt;
*...that everyone can control our aircraft [[carriers]]?&lt;br /&gt;
*...that pressing the middle mouse button can control the throttle?&lt;br /&gt;
&lt;br /&gt;
==== Already shown ====&lt;br /&gt;
'''These have already been shown, only reshow them if the list above is empty!'''&lt;br /&gt;
*...that you can [[Dual control|share the cockpit]] (of some aircraft) with another user over the multiplayer network?&lt;br /&gt;
*...that FlightGear is used by almost 25.000 users?&lt;br /&gt;
*...that some planes can perform [[dogfights]]?&lt;br /&gt;
*...that FlightGears [[scenery]] covers the whole globe?&lt;br /&gt;
*...that you can move your head around by holding the middle mouse button in view mode?&lt;br /&gt;
*...that you can chat live with both developers and users in our [http://flightgear.org/mail.html IRC channel]?&lt;br /&gt;
*...that you can toggle the [[menubar]] on or off by pressing F10, and even change the GUI style by pressing Shift + F10? &lt;br /&gt;
*...that FlightGear changed from [[PLIB]] to [[OSG]] as of version 1.9?&lt;br /&gt;
*...that you can walk through some of the [[aircraft]] cabins? &lt;br /&gt;
*...that FlightGear's first release was in July 1997?&lt;br /&gt;
*...that there are over 230 aircraft available?&lt;br /&gt;
*...that there's a total of over 150 liveries, based on real airlines, available for various planes?&lt;br /&gt;
*...that FlightGear is available in over 5 languages?&lt;br /&gt;
*...that everyone can control [[ATC-aircraft|air traffic]] as of version 1.9?&lt;br /&gt;
*...that crashes ignite real fires in the development version?&lt;br /&gt;
*...that MPDummy is positioned near runway 28L at [[KSFO]] to test your [[Howto: Multiplayer|multiplayer]] settings?&lt;br /&gt;
*...that FlightGear can simulate the real weather at any location at a given moment?&lt;br /&gt;
*...that [[Howto: Edit a livery|creating liveries]] is one of the easiest ways to contribute to the FlightGear project?&lt;br /&gt;
*...that you can set up full heigth storms with lightning and turbulence?&lt;br /&gt;
*...that FlightGear is used for research by several companies, including universities?&lt;br /&gt;
*...that [[OSG]] is able to render reflections on water?&lt;br /&gt;
&lt;br /&gt;
=== Dutch ===&lt;br /&gt;
==== Unused ====&lt;br /&gt;
*...dat je met de middenste muisknop gas kan geven?&lt;br /&gt;
*...dat iedereen de [[carriers|vliegdekschepen]] kan besturen?&lt;br /&gt;
*...dat FlightGear ruim 25.000 gebruikers kent?&lt;br /&gt;
*...dat sommige gevechtsvliegtuigen echt in [[dogfights|gevecht]] kunnen gaan?&lt;br /&gt;
*...dat het FlightGear [[scenery|landschap]] de gehele aardbol omvat?&lt;br /&gt;
*...dat je de zitpositie kan veranderen door de middelste muistoets ingedrukt te houden in &amp;quot;view mode&amp;quot;?&lt;br /&gt;
*...dat een live chat sessie, via ons [http://flightgear.org/mail.html IRC kanaal], met gebruikers en ontwikkelaars mogelijk is?&lt;br /&gt;
*...dat je de [[menubar]] aan en uit kunt doen met F10, zelfs de window-stijl kan aanpassen met Shift-F10?&lt;br /&gt;
*...dat oudere versies van FlightGear [[PLIB]] gebruikten en dat nu [[OSG]] gebruikt wordt?&lt;br /&gt;
*...dat je in sommige vliegtuigen heen en weer kunt lopen, zelfs kasjes open en dicht kan doen?&lt;br /&gt;
*...dat de eerste publicatie van FlightGear in juli 1997 was?&lt;br /&gt;
*...dat er ruim 230 vliegtuigen beschikbaar zijn?&lt;br /&gt;
*...dat gebruikers ruim 150 verschillende vliegtuig-paintjobs (Liveries) voor ons hebben gemaakt?&lt;br /&gt;
*...dat FlightGear beschikbaar is in 5 verschillende talen?&lt;br /&gt;
*...dat iedereen [[ATC-aircraft|luchtverkeersleider]] kan zijn, op elk vliegveld?&lt;br /&gt;
*...dat een ongeluk in FlightGear [[Wildfire simulation|vuur]] kan veroorzaken?&lt;br /&gt;
*...dat FlightGear het huidige (echte) weer kan tonen en gebruiken, over de gehele wereld?&lt;br /&gt;
*...dat het maken van een [[Howto: Edit a livery|vliegtuig-paintjob]] (Liveries) één van de eenvoudigste manieren is om bij te dragen aan FlightGear.&lt;br /&gt;
*...dat het mogelijk is om stormen te simuleren, tot in de hoogste atmosfeer, met bliksem en turbulentie?&lt;br /&gt;
*...dat FlightGear gebruikt wordt als simulator bij bedrijven en universiteiten?&lt;br /&gt;
*...dat [[OSG]] in staat is om water-reflecties te tonen?&lt;br /&gt;
&lt;br /&gt;
== Related templates ==&lt;br /&gt;
* {{tl|news}} &amp;amp;ndash; The template used on the main page to show the latest news.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Barcelona%E2%80%93El_Prat_Airport&amp;diff=146654</id>
		<title>Barcelona–El Prat Airport</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Barcelona%E2%80%93El_Prat_Airport&amp;diff=146654"/>
		<updated>2026-07-29T04:27:20Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox Airport&lt;br /&gt;
|name = Barcelona - El Prat Airport (Aeropuerto de Barcelona-El Prat)&lt;br /&gt;
|image = Overview-lebl.jpg&lt;br /&gt;
|iata =BCN&lt;br /&gt;
|icao =LEBL&lt;br /&gt;
|type =Public&lt;br /&gt;
|owner =ENAIRE&lt;br /&gt;
|city = Barcelona, Spain&lt;br /&gt;
|runway= 07L/25R&lt;br /&gt;
|length= 3552 m   &lt;br /&gt;
|material= Asphalt &lt;br /&gt;
|runway2= 07R/25L&lt;br /&gt;
|length2= 2660 m  &lt;br /&gt;
|material2= Asphalt &lt;br /&gt;
|runway3= 02/20&lt;br /&gt;
|length3= 2528 m   &lt;br /&gt;
|material3= Asphalt &lt;br /&gt;
|website =http://www.aena.es/csee/Satellite/Aeropuerto-Barcelona/en/&lt;br /&gt;
}}&lt;br /&gt;
[[File:Terminal-lebl.jpg|thumb|A view of the terminal of Barcelona - El Prat with a runway in the foreground]]&lt;br /&gt;
[[File:Tower-lebl.jpg|thumb|The tower of Barcelona with one of the two terminals in the background]]&lt;br /&gt;
[[File:LEBL top-down.jpg|thumb|Top-down view of Barcelona-El Prat]]&lt;br /&gt;
'''Barcelona–El Prat Airport''' (IATA: '''BCN''', ICAO: '''LEBL'''), simply known as '''Barcelona Airport''', is an international airport located 12 km (7.5 mi) southwest of the centre of Barcelona, Spain, lying in the municipalities of El Prat de Llobregat, Viladecans, and Sant Boi. In FlightGear, the airport as well as the city is well-developed with a range of custom [[scenery]] building models.&lt;br /&gt;
&lt;br /&gt;
It was once [https://forum.flightgear.org/viewtopic.php?f=42&amp;amp;t=28927 voted] to be the default airport for FlightGear 2016.2.&lt;br /&gt;
&lt;br /&gt;
== Runways ==&lt;br /&gt;
Barcelona Airport has three runways, of which two (07R/25L and 07L/25R) are parallel while the other one crosses them (02/20).&lt;br /&gt;
&lt;br /&gt;
== Terminals ==&lt;br /&gt;
The airport of Barcelona has two terminals; the latest (Terminal 1) was opened in 2009. Terminal 2 is divided into three connected sections. Both terminals serve international and domestic flights.&lt;br /&gt;
&lt;br /&gt;
== City of Barcelona ==&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = The city of Barcelona&lt;br /&gt;
| width  = 320&lt;br /&gt;
| lines  = 2&lt;br /&gt;
| align  = center&lt;br /&gt;
| footer = In-sim screenshots of the city of Barcelona in FlightGear.&lt;br /&gt;
&lt;br /&gt;
| Montjuic1.jpg | The &amp;quot;Castell de Montjuic&amp;quot;&lt;br /&gt;
| Montjuic2.jpg | Overview over Barcelona with the &amp;quot;Montjuic&amp;quot;(hill) in the foreground&lt;br /&gt;
| LEBL at dawn.jpg | LEBL at dawn with the city of Barcelona in the background&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Feel free to add your own screenshots of Barcelona!&lt;br /&gt;
&lt;br /&gt;
== Suggested Flights ==&lt;br /&gt;
=== Majorca/Mallorca ===&lt;br /&gt;
Majorca or Mallorca is a beautiful island to the south-south-east of Barcelona, in the Mediterranean sea. It is situated between Minorca and Ibiza, which, along with Mallorca, form the Balearic Islands. While the southern part is rather flat and boring, the north-western part has a great mountainous scenery with mountains up to 1445 meters (Puig Major).&lt;br /&gt;
Take your favourite mid-class airliner like the A320(neo)-family, the 737-series or the E-Jet-Family. Start at Barcelona and taxi to the preferred runway. When at a safe altitude, turn to 164° and head directly to Mallorca while climbing to the cruise altitude. If the wind is coming from the right direction, you have the luck to get the approach from the north-east to runway 24 and you can see the great mountains on your right while landing. If not, well, then you'll see them while departing ;)&lt;br /&gt;
{{gallery&lt;br /&gt;
| title  = Flight to Mallorca(Majorca)&lt;br /&gt;
| width  = 400&lt;br /&gt;
| lines  = 2&lt;br /&gt;
| align  = center&lt;br /&gt;
| E 195 LEBL.jpg | Barcelona Tower, Europa 342 ready for takeoff&lt;br /&gt;
| Embraer 195 Rotate LEBL.jpg | Rotate!&lt;br /&gt;
| Lebl view.jpg | Right after takeoff, you will have a great view over the mountains next to Barcelona&lt;br /&gt;
| Turn LEBL.jpg | Turning direct LEPA&lt;br /&gt;
| Cruising E195.jpg | Cruise&lt;br /&gt;
| Approaching LEBL - 1.jpg | Approaching the ILS/glideslope of LEBL 24R&lt;br /&gt;
| Approaching LEBL - 2.jpg | Intercepting localizer&lt;br /&gt;
| Approaching LEBL - 3.jpg | A great view over Mallorca's north-west, short before landing&lt;br /&gt;
| Approaching LEBL - 4.jpg | The Airport &lt;br /&gt;
| Approaching LEBL - 5.jpg | The Airport (2)&lt;br /&gt;
| LEPA Touchdown.jpg | Touchdown at LEPA&lt;br /&gt;
| LEPA Parking.jpg | Parked at gate. You can see again the mountains in the background.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
You know another good flight around LEBL? Write it into this article!&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://www.fly-sea.com/charts/LEBL.pdf Airport Diagram]&lt;br /&gt;
* {{wikipedia|Barcelona–El Prat Airport|Wikipedia article|noicon=1}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Airports in Spain]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Spanish&amp;diff=146653</id>
		<title>Spanish</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Spanish&amp;diff=146653"/>
		<updated>2026-07-29T04:23:47Z</updated>

		<summary type="html">&lt;p&gt;Servo: Changed redirect target from Es/Cessna 337G Skymaster to Category:Scenery in Spain&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[:Category:Scenery_in_Spain]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Germany&amp;diff=146652</id>
		<title>Germany</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Germany&amp;diff=146652"/>
		<updated>2026-07-29T04:19:33Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:EDDI-generic1.jpg|thumb|right|200px|[[Berlin Tempelhof Airport]]]]&lt;br /&gt;
Germany, formally ''Bundesrepublik Deutschland'', is a nation in western Europe of about 83 million people &amp;lt;ref&amp;gt;&lt;br /&gt;
  Statistical Agency of Germany, 2019. [[https://www.destatis.de/DE/Themen/Gesellschaft-Umwelt/Bevoelkerung/Bevoelkerungsstand/_inhalt.html]]&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Due to its federal nature, Germany is subdivided into 16 states, including Bavaria in the south-east, famous for bordering the Alps and being home to the &amp;quot;Oktoberfest&amp;quot; of Munich.&lt;br /&gt;
&lt;br /&gt;
In clockwise motion, starting from the North, Germany is bordered by a jut of land currently occupied by Denmark, the Baltic Sea, [[Poland]] &amp;amp; Czech Republic to the East, Austria &amp;amp; Switzerland to the South, France, [[Belgium]] and [[Category:The Netherlands|the Netherlands]] to the west, and the North Sea to the North in 2019.&lt;br /&gt;
&lt;br /&gt;
However just a few decades ago the nations and borders were somewhat different, for example the Czech Republic used to be Czechoslovakia. Even farther back, parts of eastern Germany and Western Poland were part of of one nation called Prussia, bordered by the now long defunct Russian Empire. Other nuances include smaller territorial exchanges, such as the Rheinland.&lt;br /&gt;
&lt;br /&gt;
=== Five major cites ===&lt;br /&gt;
* Berlin, the capital city&lt;br /&gt;
* Hamburg&lt;br /&gt;
* Munich&lt;br /&gt;
* Cologne&lt;br /&gt;
* Frankfurt&lt;br /&gt;
&lt;br /&gt;
=== German airports ===&lt;br /&gt;
For a list of [[Airport]]s in Germany see [[:Category:Airports in Germany]].&lt;br /&gt;
&lt;br /&gt;
=== Aircraft ===&lt;br /&gt;
[[File:Hansajet-Schiphol.jpg|200px|thumb|right|Hansajet landing at Schiphol]]&lt;br /&gt;
Many aircraft are related to Germany, with components produced or engineered at this location. Most of the designs were from the 20th century, and lately its aerospace industry has been reduced mainly to being part of the international [[Airbus]] corporation.&lt;br /&gt;
&lt;br /&gt;
Some examples of German related aircraft in [[FlightGear]] include:&lt;br /&gt;
&lt;br /&gt;
* [[Der Kleine Uhu]]&lt;br /&gt;
* [[Junkers Ju 52]]&lt;br /&gt;
* [[Messerschmitt Bf 109]]&lt;br /&gt;
* [[Messerschmitt Me 262]]&lt;br /&gt;
* [[Dornier Do 335]]		&lt;br /&gt;
* [[Dornier Do X]]&lt;br /&gt;
* [[Fieseler Fi 156|Fieseler Fi-156 Storch]] 		&lt;br /&gt;
* [[Focke-Wulf Fw 44|Focke-Wulf Fw 44 Stieglitz]]		 			&lt;br /&gt;
* [[Focke-Wulf Fw 190]] 		&lt;br /&gt;
* [[Focke-Wulf Fw 200|Focke-Wulf Fw 200 Condor]]&lt;br /&gt;
* [[Hamburger Flugzeugbau HFB 320 Hansa Jet‎]] &lt;br /&gt;
* [[Zeppelin NT]]&lt;br /&gt;
&lt;br /&gt;
== Aircraft museums &amp;amp; displays ==&lt;br /&gt;
Aerospace museums in Germany are for example the [[Luftwaffe Museum Berlin-Gatow]] or the [[Technik Museum Speyer]].&lt;br /&gt;
&lt;br /&gt;
== Custom Scenery ==&lt;br /&gt;
There are multiple custom sceneries available for different locations in Germany, see [[:Category:Airports in Germany]].&lt;br /&gt;
A custom scenery for multiple locations in Germany can be found [https://github.com/D-ECHO/GermanyCustomScenery here].&lt;br /&gt;
=== What's needed? How can I help? ===&lt;br /&gt;
The [https://github.com/D-ECHO/GermanyCustomScenery development repository] of this custom scenery contains a textfile called &amp;quot;regions.txt&amp;quot; which includes a list of airports/airfields existing in the currently available regions. Every airfield having a &amp;quot;TODO&amp;quot; marker behind it does not yet exist in the [https://gateway.x-plane.com/airports/page X-Plane scenery gateway] we share to provide airport files. Using the World Editor, you can create these airfields and upload them to said gateway to make sure these can be included in future builds of this custom scenery.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.destatis.de/DE/Home/_inhalt.html Germany's statistical agency]&lt;br /&gt;
&lt;br /&gt;
[[Category:Germany]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Germany&amp;diff=146651</id>
		<title>Germany</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Germany&amp;diff=146651"/>
		<updated>2026-07-29T04:19:16Z</updated>

		<summary type="html">&lt;p&gt;Servo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:EDDI-generic1.jpg|thumb|right|200px|[[Berlin Tempelhof Airport]]]]&lt;br /&gt;
Germany, formally ''Bundesrepublik Deutschland'', is a nation in western Europe of about 83 million people &amp;lt;ref&amp;gt;&lt;br /&gt;
  Statistical Agency of Germany, 2019. [[https://www.destatis.de/DE/Themen/Gesellschaft-Umwelt/Bevoelkerung/Bevoelkerungsstand/_inhalt.html]]&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Due to its federal nature, Germany is subdivided into 16 states, including Bavaria in the south-east, famous for bordering the Alps and being home to the &amp;quot;Oktoberfest&amp;quot; of Munich.&lt;br /&gt;
&lt;br /&gt;
In clockwise motion, starting from the North, Germany is bordered by a jut of land currently occupied by Denmark, the Baltic Sea, [[Poland]] &amp;amp; Czech Republic to the East, Austria &amp;amp; Switzerland to the South, France, [[Belgium]] and [[Category:The Netherlands|the Netherlands]] to the west, and the North Sea to the North in 2019.&lt;br /&gt;
&lt;br /&gt;
However just a few decades ago the nations and borders were somewhat different, for example the Czech Republic used to be Czechoslovakia. Even farther back, parts of eastern Germany and Western Poland were part of of one nation called Prussia, bordered by the now long defunct Russian Empire. Other nuances include smaller territorial exchanges, such as the Rheinland.&lt;br /&gt;
&lt;br /&gt;
=== Five major cites ===&lt;br /&gt;
* Berlin, the capital city&lt;br /&gt;
* Hamburg&lt;br /&gt;
* Munich&lt;br /&gt;
* Cologne&lt;br /&gt;
* Frankfurt&lt;br /&gt;
&lt;br /&gt;
=== German airports ===&lt;br /&gt;
For a list of [[Airport]]s in Germany see [[:Category:Airports in Germany]].&lt;br /&gt;
&lt;br /&gt;
=== Aircraft ===&lt;br /&gt;
[[File:Hansajet-Schiphol.jpg|200px|thumb|right|Hansajet landing at Schiphol]]&lt;br /&gt;
Many aircraft are related to Germany, with components produced or engineered at this location. Most of the designs were from the 20th century, and lately its aerospace industry has been reduced mainly to being part of the international [[Airbus]] corporation.&lt;br /&gt;
&lt;br /&gt;
Some examples of German related aircraft in [[FlightGear]] include:&lt;br /&gt;
&lt;br /&gt;
* [[Der Kleine Uhu]]&lt;br /&gt;
* [[Junkers Ju 52]]&lt;br /&gt;
* [[Messerschmitt Bf 109]]&lt;br /&gt;
* [[Messerschmitt Me 262]]&lt;br /&gt;
* [[Dornier Do 335]]		&lt;br /&gt;
* [[Dornier Do X]]&lt;br /&gt;
* [[Fieseler Fi 156|Fieseler Fi-156 Storch]] 		&lt;br /&gt;
* [[Focke-Wulf Fw 44|Focke-Wulf Fw 44 Stieglitz]]		 			&lt;br /&gt;
* [[Focke-Wulf Fw 190]] 		&lt;br /&gt;
* [[Focke-Wulf Fw 200|Focke-Wulf Fw 200 Condor]]&lt;br /&gt;
* [[Hamburger Flugzeugbau HFB 320 Hansa Jet‎]] &lt;br /&gt;
* [[Zeppelin NT]]&lt;br /&gt;
&lt;br /&gt;
== Aircraft museums &amp;amp; displays ==&lt;br /&gt;
Aerospace museums in Germany are for example the [[Luftwaffe Museum Berlin-Gatow]] or the [[Technik Museum Speyer]].&lt;br /&gt;
&lt;br /&gt;
== Custom Scenery ==&lt;br /&gt;
There are multiple custom sceneries available for different locations in Germany, see [[:Category:Airports in Germany]].&lt;br /&gt;
A custom scenery for multiple locations in Germany can be found [https://github.com/D-ECHO/GermanyCustomScenery here].&lt;br /&gt;
=== What's needed? How can I help? ===&lt;br /&gt;
The [https://github.com/D-ECHO/GermanyCustomScenery development repository] of this custom scenery contains a textfile called &amp;quot;regions.txt&amp;quot; which includes a list of airports/airfields existing in the currently available regions. Every airfield having a &amp;quot;TODO&amp;quot; marker behind it does not yet exist in the [https://gateway.x-plane.com/airports/page X-Plane scenery gateway] we share to provide airport files. Using the World Editor, you can create these airfields and upload them to said gateway to make sure these can be included in future builds of this custom scenery.&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.destatis.de/DE/Home/_inhalt.html Germany's statistical agency]&lt;br /&gt;
&lt;br /&gt;
[[Category:Germany]]&lt;br /&gt;
[[Category:&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
	<entry>
		<id>https://wiki.flightgear.org/w/index.php?title=Modelling_guidelines&amp;diff=146650</id>
		<title>Modelling guidelines</title>
		<link rel="alternate" type="text/html" href="https://wiki.flightgear.org/w/index.php?title=Modelling_guidelines&amp;diff=146650"/>
		<updated>2026-07-29T04:15:44Z</updated>

		<summary type="html">&lt;p&gt;Servo: /* Improving models for best FlightGear performance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When modelling an aircraft, building or any other 3D model, you are encouraged to follow the '''modelling guidelines''' outlined in this article.&lt;br /&gt;
&lt;br /&gt;
Feel free to add/modify. (''please leave a comment in the [[Talk:Modelling guidelines|talk page]] for radical modifications'').&lt;br /&gt;
&lt;br /&gt;
== Definitions ==&lt;br /&gt;
; Model&lt;br /&gt;
: The file with the 3D model.&lt;br /&gt;
&lt;br /&gt;
; Object/mesh&lt;br /&gt;
: Part of the model file. A model can contain several objects or meshes.&lt;br /&gt;
&lt;br /&gt;
; Texture&lt;br /&gt;
: Image file (&amp;lt;code&amp;gt;.rgb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.png&amp;lt;/code&amp;gt;) that are draped around the model.&lt;br /&gt;
&lt;br /&gt;
== Modelling guidelines ==&lt;br /&gt;
* Vertices are free up to a point - use as many as you need.&lt;br /&gt;
* Many small (in vertex numbers) objects/meshes have a far worse negative impact on performance than a single object/mesh with very high vertex numbers.&lt;br /&gt;
* Combine all different parts of the model into one single object/mesh, with the exception of parts that need to be animated, or of transparent parts.&lt;br /&gt;
:; Blender&lt;br /&gt;
:: Select some objects and press {{Key press|Ctrl|J}} to join them into one Object. The new object origin/transform/orientation/name will be based on the ones of the last object selected.&lt;br /&gt;
* Use different unique names for each of the objects in a model file. Even more so when the different parts need to be animated.&lt;br /&gt;
* Make all faces of the objects single sided.&lt;br /&gt;
* If you need a part of the model to be visible from both sides, duplicate it in place and flip the normals. The extra geometry overhead is negligible compared to the extra work generated by double-sided faces.&lt;br /&gt;
* Separate transparent parts into their own objects.&amp;lt;!-- and place at the end of the object list --&amp;gt;&amp;lt;!-- I'm not sure this is not some kind of placebo--&amp;gt;&lt;br /&gt;
:; Blender&lt;br /&gt;
:: Go into ''edit mode'', select the part of the object that you would like to separate and press {{Key press|P}}.&lt;br /&gt;
* Assign to all transparent objects at least the ''model-transparent'' effect:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;effect&amp;gt;&lt;br /&gt;
		&amp;lt;inherits-from&amp;gt;Effects/model-transparent&amp;lt;/inherits-from&amp;gt;&lt;br /&gt;
		&amp;lt;object-name&amp;gt;Transparent-object1&amp;lt;/object-name&amp;gt;&lt;br /&gt;
		&amp;lt;object-name&amp;gt;Transparent-object2&amp;lt;/object-name&amp;gt;&lt;br /&gt;
		&amp;lt;object-name&amp;gt;Transparent-object3&amp;lt;/object-name&amp;gt;&lt;br /&gt;
		&amp;lt;object-name&amp;gt;other-Transparent-object&amp;lt;/object-name&amp;gt;&lt;br /&gt;
	&amp;lt;/effect&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* The interior should be a separate model. Having it separate enables delayed loading of such models in multiplayer/AI contexts.&lt;br /&gt;
: Only one instance of the tag is allowed for the whole aircraft. Such a model is specified as follows in the XML file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;model&amp;gt;&lt;br /&gt;
			&amp;lt;usage&amp;gt;interior&amp;lt;/usage&amp;gt; &amp;lt;!--make sure to have this tag--&amp;gt;&lt;br /&gt;
			&amp;lt;path&amp;gt;Models/your-interior-model.xml&amp;lt;/path&amp;gt;&lt;br /&gt;
		&amp;lt;/model&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your model require an &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;offsets&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; section, you must move the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;offsets&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; section in the children XML like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;your/aircraft/Models/aircraft.xml&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;PropertyList&amp;gt;&lt;br /&gt;
  &amp;lt;path&amp;gt;path/to/model.ac&amp;lt;/path&amp;gt;&lt;br /&gt;
  &amp;lt;model&amp;gt;&lt;br /&gt;
    &amp;lt;path&amp;gt;your/aircraft/Models/Interior/model.xml&amp;lt;/path&amp;gt;&lt;br /&gt;
    &amp;lt;usage&amp;gt;interior&amp;lt;/usage&amp;gt;&lt;br /&gt;
  &amp;lt;/model&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/PropertyList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;your/aircraft/Models/Interior/model.xml&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;PropertyList&amp;gt;&lt;br /&gt;
  &amp;lt;path&amp;gt;path/to/another/model.ac&amp;lt;/path&amp;gt;&lt;br /&gt;
  &amp;lt;offsets&amp;gt;&lt;br /&gt;
    &amp;lt;x-m&amp;gt; -1.91552 &amp;lt;/x-m&amp;gt;&lt;br /&gt;
    &amp;lt;y-m&amp;gt;  0.00000 &amp;lt;/y-m&amp;gt;&lt;br /&gt;
    &amp;lt;z-m&amp;gt;  0.23706 &amp;lt;/z-m&amp;gt;&lt;br /&gt;
    &amp;lt;roll-deg&amp;gt;    40.0 &amp;lt;/roll-deg&amp;gt;&lt;br /&gt;
    &amp;lt;pitch-deg&amp;gt;   35.0 &amp;lt;/pitch-deg&amp;gt;&lt;br /&gt;
    &amp;lt;heading-deg&amp;gt; 60.0 &amp;lt;/heading-deg&amp;gt;&lt;br /&gt;
  &amp;lt;/offsets&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;model&amp;gt;&lt;br /&gt;
    &amp;lt;path&amp;gt;path/to/another/model.xml&amp;lt;/path&amp;gt;&lt;br /&gt;
  &amp;lt;/model&amp;gt;&lt;br /&gt;
  ...  &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Texturing guidelines ==&lt;br /&gt;
* Combine as many parts of a single model to a single texture as you can. The maximum texture size is 4096 x 4096 pixels.&lt;br /&gt;
* Do not assign multiple textures to the same object/mesh. The object will be split so as to have a single texture per mesh.&lt;br /&gt;
* Do not use different parts of a single texture for different models. Instead, split the texture into smaller parts.&lt;br /&gt;
* If using the same texture on multiple models, use a single file, do not make different copies.&lt;br /&gt;
* Prefer texture replacing animations to textranslate for models that spend large amounts of their time in one state (day/night animations).&lt;br /&gt;
* Avoid transparency like the plague, it kills frame rate like nothing else. Remove the alpha channel from textures if they are non-transparent.&lt;br /&gt;
:; GIMP&lt;br /&gt;
:: Go to ''Layers'' &amp;gt; ''Transparency'' &amp;gt; ''Remove alpha layer''.&lt;br /&gt;
:; Inkscape&lt;br /&gt;
:: Go to ''File'' &amp;gt; ''Document Properties'' and set the ''Background'' to a non transparent colour (preferably black).&lt;br /&gt;
* Hive off transparent parts of textures into their own textures.&lt;br /&gt;
* Use power of two dimensions for textures (in essence 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, for example 256x256, 512x1024). Do not worry if your image would get stretched in the texture, you can fix that with the mapping on the model.&lt;br /&gt;
* Do not have textures with the image in one corner and the rest unused.&lt;br /&gt;
* Recommended texture format is: &amp;lt;code&amp;gt;.png&amp;lt;/code&amp;gt;. In general any texture format supported by OSG could be used, but be aware of varying cross-platform support for such formats, or of lossy compression.&lt;br /&gt;
&amp;lt;!--== Animation guidelines ==&lt;br /&gt;
* Keep the number of range animations to a minimum. Load the instruments in a submodel XML file, to avoid having one for each instrument. Testing one range animation is cheaper than 47.--&amp;gt; &amp;lt;!--commented out for now--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Multiplayer property usage ==&lt;br /&gt;
When your model is loaded over multiplayer instead of the property tree starting at the top (&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;) your model will be loaded with a property tree root of &amp;lt;code&amp;gt;ai/models/multiplay[#]&amp;lt;/code&amp;gt;. It is important that you use the right properties inside your model. This is possibly one of the most commonly misunderstood aspects of the correct way to use properties.&lt;br /&gt;
&lt;br /&gt;
# The general rule is that you must never include a leading &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; on any property path.&lt;br /&gt;
# The exception to this rule is the few properties that relate to the FlightGear instance on which the model is running. An example of this is the properties related to environmental lighting.&lt;br /&gt;
# Writing or modifying an absolute property should never be done.&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
* All model XML files are loaded such that their property root is correctly adjusted already, and thus &amp;lt;code&amp;gt;sim/model&amp;lt;/code&amp;gt; will be either &amp;lt;code&amp;gt;/sim/model&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ai/models/carrier[0]/sim/model&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;ai/models/multiplay[0]/sim/model&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Any Nasal code (loaded from the model XML file) needs to use the property root that is passed into the model XML file in cmdarg (you can see this in the model XML file for the F-14 {{github source|user=Zaretto|repo=fg-aircraft|branch=develop|path=aircraft/f-14b/Models/f-14b.xml|line=25}}&lt;br /&gt;
&lt;br /&gt;
== Improving models for best FlightGear performance ==&lt;br /&gt;
[[File:Motor.jpg|thumb|270px|Using Multiple Models with varied detailing]]&lt;br /&gt;
[[File:Singlesided_blender.jpg|thumb|270px|To set faces to Singlesided (Blender), deselect the Doublesided button]]&lt;br /&gt;
=== Mesh ===&lt;br /&gt;
* In a single model, use a single mesh so far as possible. Note that this doesn't mean that every node must be linked to its object with an edge (e.g. a line of trees can be easily a single object.) Only have the separate objects if you need them for an animation or parts that use a transparent texture (any object using more then one texture is anyway spitted by the rendering engine.)&lt;br /&gt;
* Delete unseen faces such as faces inside the model, but note that some renderers needs closed meshes to cast shadows correctly, so you'll often want to keep the ones below.&lt;br /&gt;
* Remove &amp;quot;line faces&amp;quot;, which are faces whose points are in the same line.&lt;br /&gt;
* Don't forget to remove double vertices (i.e. vertices sharing the same coordinates)&lt;br /&gt;
&lt;br /&gt;
=== Single sided / double sided ===&lt;br /&gt;
* Set all the faces of the model to SingleSided. DoubleSided faces are very expensive to render properly. If a face needs to be displayed from every view angle use two faces with opposite normals rather than a Doublesided one (the overhead from the extra geometry is far lower than the overhead of doublesided faces)&lt;br /&gt;
&lt;br /&gt;
=== Textures and Materials ===&lt;br /&gt;
{{FGCquote&lt;br /&gt;
  |Modern graphics cards can handle very large textures and huge numbers of vertices with minimal frame rate impact.  A typical scene in FlightGear (with clouds, buildings rivers, roads...) has millions of vertices which simply dwarfs a 17K aircraft making the aircraft model an insignificant factor.  The general rule is use enough vertices and large enough textures to make things look right and no more.  More recent aircraft efforts tend to have much higher vertex counts, much larger textures and a lot more detail then older work because of how capable modern hardware is.  It is not unusual to see newer aircraft exceeding 100K vertices.  For example the P-51D that will be released with 3.2 has an external model that is slightly over 100K vertices and this had a minimal frame rate impact on my (newer high end) hardware compared to the old 10K external model. &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
If you can't see the difference between using a 512x512 instrument texture compared to a 256x256 texture then use the smaller texture.  But if you can see the difference then use the larger texture.   On modern hardware the difference in frame rate will be very small but it may impact those with older/slower/obsolete hardware in a noticeable way.  All of the instruments in the P-51D are 512x512 for larger gauges or 256x256 for smaller gauges and at least to me they have a sharp appearance even when zoomed in fairly close.  Many older aircraft use 128x128 textures for instruments but to me at least on the larger instruments on a very high resolution monitor these textures are a little bit fuzzy in appearance.  The other thing I do is I create the textures at much higher resolution and then scale it to final size.  This allows the scaling algorithm in the graphics package to apply anti aliasing during the scaling process which I think helps make the smaller textures look good since it reduces the appearance of jaggies.&lt;br /&gt;
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=216211#p216211&lt;br /&gt;
     |title=&amp;lt;nowiki&amp;gt;Re: key + animation&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |author=&amp;lt;nowiki&amp;gt;hvengel&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     |date=&amp;lt;nowiki&amp;gt;Fri Aug 08&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   }}&lt;br /&gt;
}}&lt;br /&gt;
* Use Materials on Objects instead of textures where possible, but...&lt;br /&gt;
* ...avoid mixing textured and untextured geometry in the same model. Build the coloring into the texture map instead. This is to prevent that the object gets split, and anyway, the [[File Formats#*.ac files|AC format]] supports only one texture per object.&lt;br /&gt;
* Textures must be a power of two, or they will be resized at loading, and cause issues to some users.&lt;br /&gt;
* Avoid using big textures: 512x512 is mostly enough for most models.&lt;br /&gt;
* Use a single texture. However, if your model absolutely needs alpha texture and another part of the model is opaque, you should use two textures: one with alpha and the other without.&lt;br /&gt;
* Don't use alpha in texture when it is not needed: transparency is not easy to deal with, and often causes artifacts.&lt;br /&gt;
&lt;br /&gt;
=== Effects ===&lt;br /&gt;
* Shader effects (like lightmaps, normalmaps...) and Rembrandt lights are not affordable by everyone's machine, so try to provide alternatives. However, remember also that FlightGear provides options to adjust such effects.&lt;br /&gt;
&lt;br /&gt;
=== Level of Detail (LOD) ===&lt;br /&gt;
{{note|Note that range animations often used for LOD are very expensive (any time you move, every range animation must be evaluated), and give a real advantage only if they remove a very large amount of details (like 1000-2000 triangles), so it's not useful in many cases of for example scenery objects or cockpit details.}}&lt;br /&gt;
{{tip|Instead of using range animations for each little detail you could group many details together and do the range animation for them all, for example having one range animation for an entire cockpit instead of several dozens.}}&lt;br /&gt;
* If a model has to be detailed to a ''very high'' degree, use multiple objects with different levels of detailing, and switch between them based on LOD with a [[Howto:Animate models#Range|range animation]], or split the detailed parts to make them a couple more objects that add details incrementally.&lt;br /&gt;
* An alternative, less expensive way to support LOD is applying a [[Howto:Animate models#Select|select animation]], that can hide an object based on some property, for example hiding a cars side mirrors if &amp;quot;detailed&amp;quot; level is at less than 1500m (which is the default), indicating that the user has a less powerful machine. It is less flexible, but allows everyone to enjoy your models.&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* With modern graphics cards, the amount of objects can have a higher impact on performance than the amount of triangles/vertices.&lt;br /&gt;
* Textures, transparency, .xml included sub-models: The things that kill frame rate in FlightGear. Try to avoid them.&lt;br /&gt;
* Also avoid smooth shading when possible, but don't be afraid to use it for curved surfaces where it really has an impact on model quality.&lt;br /&gt;
&lt;br /&gt;
== Related content ==&lt;br /&gt;
=== Developer mailing list threads ===&lt;br /&gt;
* [https://sourceforge.net/p/flightgear/mailman/message/36699863/ &amp;lt;nowiki&amp;gt;[Flightgear-devel] Scenery Modelling&amp;lt;/nowiki&amp;gt;] (June 2019) - About scenery model complexity vs. rendering performance.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modeling]]&lt;/div&gt;</summary>
		<author><name>Servo</name></author>
	</entry>
</feed>