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 (Wikipedia).
Id or 'squawk' codes aid ATC in identify aircraft positively. 1200 is the standard code for VFR flight, 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.
See Aviation transponder interrogation modes (Wikipedia) for official description. 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:
The transponder has various config properties:
- bus-volts: required DV volts for operations, defaults to 8.0
- 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!
- 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
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-button: 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-: 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.
- 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
Below are all available property that you can set for your instrumentation.xml file :
<transponder> <name type="string">transponder</name> <number type="int">0</number> <mode type="int">1</mode> <!-- 0 = Mode A, 1 = Mode C, 2 = Mode S --> <bus-volts type="double">8.0</bus-volts> <encoder-path type="string">/instrumentation/altimeter</encoder-path> <kt70-compatibility type="bool">0</kt70-compatibility> </transponder>
- Howto:Develop an aircraft transponder in Nasal – Most probably obsolete
- Multiplayer protocol – The IDs 1501-1503 are earmarked for transmitting transponder properties
- OpenRadar: Transponder
- Transponder (Nov 2009-Dec 2010)
- Transponder over network (Apr-Jul 2013)
- Transponder properties over MP