David Culp - 2018-04-29

1) Flightgear will also read your joystick, and it will probably have the axes/buttons bound to different actions. I recommend disabling the joystick in FlightGear. This is done in the launch script below by setting the property "input/joysticks/js=0".

2) For a true out-the-window (OTW) view you'll need to remove the aircraft model. If you just delete the reference to a model you will get the blue/yellow glider by default. To prevent this you can set the model to "Models/Geometry/null.ac", which is a no-op model. This way FlightGear will not give you the default glider.

3) I created a new directory in the FlightGear Aircraft Directory called "737". Inside this directory is only one file, which is shown below, named 737-set.xml.

<PropertyList>
  <sim>
    <description>737</description>
    <status>Beta</status>
    <flight-model>ufo</flight-model>
    <allow-toggle-cockpit >true</allow-toggle-cockpit>
    <chase-distance-m>-40</chase-distance-m>
    <model>
      <path>Models/Geometry/null.ac</path>
    </model>
    <view>
      <internal archive="y">true</internal>
      <config>
        <!-- x/y/z == right/up/back -->
        <x-offset-m archive="y">-0.470</x-offset-m>
        <y-offset-m archive="y">1.23</y-offset-m>
        <z-offset-m archive="y">2.83</z-offset-m>

        <pitch-offset-deg archive="y">0.0</pitch-offset-deg>
      </config>
    </view>
    <systems>
      <electrical>
        <path>Aircraft/Generic/generic-electrical.xml</path>
      </electrical>
    </systems>

    <sound>
    </sound>
  </sim>
<systems>
  <pitot n="1">
    <serviceable type="bool">true</serviceable>
  </pitot>
  <pitot n="2">
    <serviceable type="bool">true</serviceable>
  </pitot>
  <pitot n="3">
    <serviceable type="bool">true</serviceable>
  </pitot>
  <static n="1">
    <serviceable type="bool">true</serviceable>
  </static>
  <static n="2">
    <serviceable type="bool">true</serviceable>
  </static>
  <static n="3">
    <serviceable type="bool">true</serviceable>
  </static>
</systems>

  <instrumentation>

    <adf>
      <volume-norm type="double">0.0</volume-norm>
    </adf>

    <adf n="1">
      <volume-norm type="double">0.0</volume-norm>
    </adf>

    <comm>
      <volume type="double">0.7</volume>
      <power-btn type="bool">1</power-btn>  
      <power-good type="bool">1</power-good>
    </comm>

    <comm n="1">
      <volume type="double">0.7</volume>
      <power-btn type="bool">1</power-btn>  
      <power-good type="bool">1</power-good>
    </comm>

    <nav>
      <volume type="double">0.0</volume>
    </nav>

    <nav n="1">
      <volume type="double">0.0</volume>
    </nav>

    <dme>
      <frequencies>
        <source type="string">/instrumentation/nav[0]/frequencies/selected-mhz</source>
      </frequencies>
      <serviceable type="bool">true</serviceable>
    </dme>

    <dme n="1">
      <frequencies>
        <source type="string">/instrumentation/nav[1]/frequencies/selected-mhz</source>
      </frequencies>
      <serviceable type="bool">true</serviceable>
    </dme>

    <nav-compass>
      <nav-display type="int">0</nav-display>
      <nav-display n="1" type="int">0</nav-display>
    </nav-compass>


    <flightdirector>
      <fd-left-on>0</fd-left-on>
      <fd-right-on>0</fd-right-on>
    </flightdirector>

    <transponder>
      <id-code>1200</id-code>
    </transponder>

    <airspeed-indicator>
      <speed-bug-pushed type="bool">true</speed-bug-pushed>
      <speed-bug type="int">182</speed-bug>
    </airspeed-indicator>  

    <airspeed-indicator n="1">
      <serviceable type="bool">true</serviceable>
    </airspeed-indicator>

    <airspeed-indicator n="2">
      <serviceable type="bool">true</serviceable>
    </airspeed-indicator>

    <altimeter n="1">
      <serviceable type="bool">true</serviceable>
    </altimeter>

    <altimeter n="2">
      <serviceable type="bool">true</serviceable>
    </altimeter>
    <wxradar>
      <serviceable>true</serviceable>
      <range type="int" archive="y">40</range>
      <minimized type="bool" archive="y">false</minimized>
      <switch archive="y">on</switch>
      <mode archive="y">wx</mode>
      <lightning type="bool" archive="y">false</lightning>
      <display-mode archive="y">arc</display-mode>
    </wxradar>

    <radar>
      <range type="int" archive="y">40</range>
    </radar>

    <turn-indicator>
      <serviceable type="bool">true</serviceable>
      <spin type="double">1</spin>
    </turn-indicator>
  </instrumentation>

  <nasal>
  </nasal>

</PropertyList>

4) I launch FlightGear with the following script:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
#
#
#
#
cd ~/FG/install/flightgear/bin/
./fgfs \
--fdm=null \
--native-fdm=socket,in,60,,5508,udp \
--fg-root="/home/dave/FG/install/flightgear/fgdata" \
--log-level=warn \
--prop:/sim/ai/enabled=false \
--prop:input/joysticks/js=0 \
--disable-ai-traffic \
--disable-sound \
--disable-real-weather-fetch \
--disable-save-on-exit \
--aircraft=737 \
--airport=KLAX \
--runway=25R \
--timeofday=noon \
--fog-nicest \
--geometry=800x600 \
--language=en \
--prop:/autopilot/route-manager/disable-route-manager=true \
--prop:/sim/rendering/random-objects=false \
--prop:/sim/rendering/random-vegetation=false \
--prop:/sim/rendering/particles=false \
--prop:/sim/rendering/fps-display=true \
--prop:/sim/voice=false \
--prop:/sim/traffic-manager/enabled=false \
--fg-scenery="/home/dave/Scenery"
#
#
#echo "Start script terminated."

5) I created a new weather scenario for FlightGear and made it the default:

    <scenario>
      <name type="string">Standard Day</name>
      <metar type="string">XXXX 012345Z 00000KT 19SM 15/07 Q1013 NOSIG</metar>
      <description type="string">Standard Day.</description>
      <local-weather>
        <tile-type>High-pressure-core</tile-type>
        <tile-management>realistic weather</tile-management>        
      </local-weather>
    </scenario>

6) The earlier instability I had with running FlightGear probably came from turning off too many systems. There are a lot more systems running than you need, but if you turn off too many of them you can crash the app. Apparently one or more of these systems is expecting some other system to be active, and if it isn't you get a segfault.

 

Last edit: David Culp 2021-04-20