From FlightGear wiki
Jump to navigation Jump to search

Transponders are radio beacons which make aircraft more identifiable on ATC displays and systems. Modern transponders support transmitting additional data such as an identification ('squawk') code and aircraft altitude. See more at Transponder (aeronautics) This is a link to a Wikipedia article.

Id Codes

Id or 'squawk' codes aid ATC in identify aircraft positively. 1200 is the standard code for VFR flight (in the US; Europe uses 7000), IFR aircraft will typically be advised a code on delivery clearance or startup.

Normal code digits are 0..7; 0000 is reserved for military use, and there are other standard codes, such as 7600 for radio comms failure. See the Wikipedia page for many more examples.


Civilian Mode-S and Mode-C both transmit pressure altitude (at 10-foot and 100-foot precision, respectively). To do this the transponder needs an altitude source. In real-life this can be a separate box called an encoder, or may be derived for FMC / ADIRU sources. It's important to note this altitude is referenced to standard pressure (29.92 inHg / 1012Hpa), and not corrected for actual barometric pressure in the local environment.

Additional support for military modes is possible if anyone wishes to add it.

Configuration in FlightGear

Transponder support was overhauled in May 2013; earlier versions (2.10 and prior) have different support and are not documented here. Updating an aircraft to use the new config is straightforward. Key transponder properties (altitude, ident and transmitted-id) are now sent via the MP protocols for use in ATC clients.

The default altimeter can act as an altitude encoder; in its configuration, set either or both of the following boolean flags:

  • encode-mode-c
  • encode-mode-s

The transponder has various config properties:

  • minimum-supply-volts: required DV volts for operations, defaults to 8.0 (old bus-volts is now deprecated)
  • encoder-path: defaults to '/instruments/altimeter', but can be changed to any other location. The transponder looks for child properties 'mode-c-alt-ft' and 'mode-s-alt-ft' at this path for altitude data.
  • kt70-compatibility: boolean, default to false. Set this to enable legacy compatibility with the old KT-70 C++ instrument. Do not use in new/updated aircraft!
  • mode: this is 0 for Mode-A, 1 for Mode-C and 2 for Mode-S. Other modes can be added, ask on the devel list!

Run-time properties

  • altitude: gives the transmitted altitude in feet (or -9999 for invalid)
  • altitude-valid: indicates if altitude value is valid data or not
  • id-code: allows the id-code to be read and set
  • serviceable: can be set to control the instrument serviceability
  • transmitted-id: gives the value being transmitted, including over the network via MP

Input properties

These live under /inputs.

  • knob-mode: sets the transponder operating mode. This corresponds to the KT-70 knob positions for convenience, but the actual modes should work for any transponder instrument. Knob modes are documented below
  • ident-btn: can be set to place the transponder in ident mode for 18 seconds. Note this property is not spring-loaded, i.e you must manually reset it to false
  • digit[0]-[4]: properties allow the id code individual digits to be read and set

In KT-70 compatibility mode, additional properties are read and set, to preserve legacy aircraft. Do not use these properties in new aircraft.

Knob/Functional Modes

  • 0 - off
  • 1 - standby, basically the same as off for the C++ code (3D instrument would power up the display, presumably)
  • 2 - test, again the C++ largely ignores this since the test configuration of real-world instruments varies. In particular the unit does *not* set altitude or transmitted-id to any test values, you should do that in your own logic. (Maybe we should allow the test values to be defined int he config section?)
  • 3 - Ground mode, responds to altitude interrogation but does not broadcast an ID. This would typically be used while taxiing prior to takeoff.
  • 4 - On, normal operation but altitude transmission is inhibited
  • 5 - Alt, same as on but altitude is broadcast if transponder was configured in Mode-S or Mode-C

Generic transponder

Below are all available property that you can set for your instrumentation.xml file :

    <name type="string">transponder</name>
    <number type="int">0</number>
    <mode type="int">1</mode> <!-- 0 = Mode A, 1 = Mode C, 2 = Mode S -->
    <minimum-supply-volts type="double">8.0</minimum-supply-volts>
    <encoder-path type="string">/instrumentation/altimeter</encoder-path>
    <kt70-compatibility type="bool">0</kt70-compatibility>
    <auto-ground>...</auto-ground> <!-- input for Mode-S automatic GND bit -->

Please note that <bus-volts> is now deprecated. Use <minimum-supply-volts> instead.

The following is a copy of a comment in instrument source, explaining the use of Mode-S related properties

// Mode-S transponders (configured with mode = 2) can transmit a ground bit to
// indicate ground operation. If auto-ground is not defined, the ground bit is
// switched manually by setting the transponder knob to GND. If auto-ground is
// defined, the transponder simulates automatic switching of the ground bit
// using the value of the property defined in auto-ground.
// For a squat switch, use "/gear/gear/wow". For automatic switching based on
// airspeed, use a property rule to make a new boolean property that indicates,
// for example, airspeed < 80, and reference your new property in auto-ground.
// Note that Mode-A and Mode-C transponders do not transmit a ground bit, even
// if the transponder knob is set to the GND position.
// Mode-S transponders also transmit indicated airspeed and Mach number. The
// default sources are "/instrumentation/airspeed-indicator/indicated-speed-kt"
// and ".../indicated-mach", but this can be changed by setting "airspeed-path"
// and "mach-path" properties respectively as shown above.

Related content

Wiki articles

Forum topics

Developer mailing list

Source code