topic: Aircraft Development

Hydraulic systems and flight controls

X-Plane has three hydraulic systems per aircraft that can power a variety of actuators. Most notably, each flight control surface can be powered by any combination of hydraulic actuators.

Hydraulic power sources

Each of the three hydraulic systems can be pressurized from

  • an engine-driven pump
  • a rotor-driven pump (so helicopters with free-wheeling transmissions can retain hydraulic power in auto-rotation)
  • an electrically operated pump
  • a ram-air driven turbine (RAT)
  • a bleed-air driven pump

By default, engine- and rotor-driven pumps operate continuously, but they can be unloaded with the datarefs
sim/cockpit2/hydraulics/actuators/engine_pump int[8] y boolean and
sim/cockpit2/hydraulics/actuators/prop_pump int[8] y boolean respectively.
Note that these datarefs do nothing if the pump hasn’t been assigned to provide pressure to any system in Plane Maker.

The electric pumps are switched with the datarefs
sim/cockpit2/hydraulics/actuators/electric_hydraulic_pump_on int y boolean
sim/cockpit2/hydraulics/actuators/electric_hydraulic_pump2_on int y boolean
Again, switching them on does nothing unless the pump has been assigned a hydraulic system in Plane Maker.
If assigned in Plane Maker, the pumps will consume the assigned amps from their electrical busses, and can be failed with their failure datarefs
sim/operation/failures/rel_hydpmp_ele and /rel_hydpmp_el2

The RAT (ram-air turbine) automatically activates if it has been assigned in Plane Maker, and the airplane is off the ground (weight-off-wheels) and all other hydraulic sources have failed and some time has passed for pressure to bleed from the system. Alternatively, the RAT can also be controlled manually with the dataref
sim/cockpit2/hydraulics/actuators/ram_air_turbine_on int y boolean

Hydraulic PTU

The power transfer unit can be installed with Plane Maker to allow power transfer between system 1 (left) and system 2 (right). The PTU can either be uni-directional, allowing power transfer only in the specified direction, or bi-directional, in which case it will keep the weaker system powered by the stronger system, as long as the weaker system has enough hydraulic fluid left. Note that the PTU only transfers power, but no fluid is transferred between systems.

When installed in the plane, the PTU has three possible states during flight:
sim/cockpit2/hydraulics/actuators/PTU int y enum

  1. PTU is off, and no power transfer takes place.
  2. PTU is armed and watching for pressure differential
  3. PTU is running currently, trying to equalize pressure. When pressure differential is minimized, it will fall back to state 1

In auto mode, which is the default, the PTU is watching for a pressure differential and will turn on and off as needed to keep it minimal. This causes the characteristic on-off-cycle that on some airplanes can be heard as a “barking dog” sound. This is a purely mechanical operation, no electric power or sensors are needed for this to work.

Hydraulic actuators (power consumers)

Each of these can be assigned on or more hydraulic actuators, so they can be powered from one or multiple systems:

  • nosewheel steering
  • flaps
  • slats
  • landing gear (see the article on hydraulic landing gear actuators for more detail)
  • wheel brakes (through an accumulator that will store pressure for a few brake applications)
  • thrust reversers

Each of these will not be able to operate without hydraulic pressure from at least one selected source, or operate at reduced deflection, speed, or efficacy at low pressures.

Notice the primary flight controls are missing from this list – they have moved to the the flight control configuration in Plane Maker, Control Geometry, Hydraulic tab.

Hydraulic flight control actuators

The following primary and secondary flight controls can be assigned to hydraulic systems on a per-wing basis:

  • aileron group 1
  • aileron group 2
  • elevator 1
  • elevator 2
  • rudder 1
  • rudder 2
  • spoiler group 1
  • spoiler group 2
  • speed brake group 1
  • speed brake group 2
  • yawbrake

Each of these actuators can be assigned any combination of hydraulic systems. Each of these assignments can be made separately for any of these wings:

  • wing 1-4 left and right
  • left and right horizontal stabilizer
  • vertical stabilizers 1 and 2

Note that Plane Maker will only display the options for wings the plane actually has, and only when an element of the wing is selected to have that type of control. This keeps the table simple for most airplanes.

That makes it possible to create complex assignments of individual spoiler tabs that will stop operating when pressure is lost from the specified system.

Comments Off on Hydraulic systems and flight controls

Flight Control Splits

In many jet aircraft with conventional flight controls, the pilot and copilot-side primary flight controls are linked by torque tubes. This normally ensures both control columns move in unison in pitch and roll, and all ailerons, roll spoilers and elevators are actuated in a coordinated manner.

In case of a flight control malfunction were a jam occurs in one system, it is usually possible to split the controls, in some aircraft by pulling a flight control disconnect handle, in others the torque tube shears when a certain (high) load is applied to it.

X-Plane simulates both the type of failure and the flight control split to deal with it.

Control-jamming failures

Each of the primary controls can be jammed on either side, using the failure, or the failure datarefs:

sim/operation/failures/rel_ail_L_jam int y failure_enum roll control, left control column jammed
sim/operation/failures/rel_ail_R_jam int y failure_enum roll control, right control column jammed
sim/operation/failures/rel_elv_L_jam int y failure_enum pitch control, left control column jammed
sim/operation/failures/rel_elv_R_jam int y failure_enum pitch control, right control column jammed

Jamming either side will block the respective axis at its current deflection and prevent further movement until the controls are split.

Splitting and regaining control

On some airplanes, pitch and roll can be split separately, on others, the split affects both but they can be reconnected individually. X-Plane can simulate all of these situations by means of these datarefs:

sim/cockpit2/controls/torque_tube_split_roll int y boolean0 = Normal: Left and right roll input are connected, 1 = Disconnected, each joystick roll input for pilot or copilot goes to the respective side.
sim/cockpit2/controls/torque_tube_split_pitch int y enum 0 = Normal: Left and right pitch input are connected, 1 = Disconnected, each joystick pitch input for pilot or copilot goes to the respective side.

On some airplanes, these datarefs will only ever work in unison, while other airplanes might have separate handles to pull and therefore the datarefs can have individual values.

When the flight controls are split, the user’s joystick or yoke input will act on the pilot’s side only, and if a joystick input is configured for the copilot’s side, it will go the copilot’s side only.

For home use setups with only one set of flight control hardware, it is however possible to route the user input over to the copilot’s side by pressing and holding the priority button (normally the same command as the autopilot servo disconnect). By holding the priority button for 40 seconds, the user can effectively switch into the copilot’s seat and fly the copilot flight controls from the only connected joystick.

Roll spoiler actuation

A roll spoiler is a spoiler tab that goes up on the side the aileron goes up. Typically, it is linked to the on-side aileron only. That is, for a right turn, the right roll spoiler goes up as the right aileron deflects up. In case of a control split, initially only the spoiler on the side of the working aileron will be actuated, while the one on the side of the jammed aileron will not get a signal to operate, even though the spoiler control itself is not failed. In this case, the side with the working roll input can be chosen to actuate both sides of roll spoilers:

sim/cockpit2/controls/roll_spoiler_actuation int y enum 0 = Normal: left roll spoiler is controlled by left roll input, right roll spoiler is controlled by right roll input. 1 = Left: Both roll spoilers are controlled by the left aileron. 2 = Right: Both roll spoilers are controlled by the right aileron.

Operational example

Assume a jamming occurs somewhere in the right aileron control cables: sim/operation/failures/rel_ail_R_jam == 6
Now, the roll control is jammed and the ailerons cannot be moved.

The pilot pulls the flight control disconnect for the roll axis: sim/cockpit2/controls/torque_tube_split_roll = 1

Now, the pilot’s roll input acts on the left aileron only. Since the left aileron is not jammed, it will now deflect up or down responding to control input, and allow limited maneuvering while the right aileron remains locked in its jammed position.

In this situation left roll spoiler will work, the right won’t. Some airplanes allow the right roll spoiler operation to be restored by selecting sim/cockpit2/controls/roll_spoiler_actuation = 1

Comments Off on Flight Control Splits

Pilot and Copilot Flight Control Inputs

For aircraft designers

First, aircraft designers must tell X-Plane whether the cockpit flight controls are linked (most small aircraft, Boeing aircraft, older non-FBW Airbus aircraft) or are electronically added (new Airbus and other FBW aircraft with stick input). To animate the cockpit controls correctly the following datarefs should be used:

  • For linked (“Boeing”) flight controls, the pilot side yoke/stick should be animated with sim/cockpit2/controls/total_pitch_ratio and sim/cockpit2/controls/total_roll_ratio. The co-pilot side yoke/stick should use sim/cockpit2/controls/total_pitch_ratio_copilot and sim/cockpit2/controls/total_roll_ratio_copilot. X-Plane will ensure the controls move together based on flight control linkage, and with autopilot input.
  • For independent (“Airbus”) flight controls, the pilot side stick should be animated with sim/cockpit2/controls/yoke_pitch_ratio and sim/cockpit2/controls/yoke_roll_ratio. The co-pilot side stick should be animated using sim/cockpit2/controls/yoke_pitch_ratio_copilot and sim/cockpit2/controls/yoke_roll_ratio_copilot. X-Plane will ensure the control inputs are added or filtered as needed and also not deflect the sticks with the autopilot. See below for commands for the priority pushbuttons.

For animating the flight control surfaces on the wings and tail, it is imperative that the correct animation datarefs are used on each wing, and not simply animations mirrored between right and left or keyframed for differential deflections. Please refer to the article on wings on how to animate flight control surfaces. If in doubt, you can use the X-Plane flight model output (Ctrl+M) to visualize the control forces and then make sure the physics model matches your animations when the flight controls are split.

For cockpit builders

X-Plane supports assignment of joystick hardware axes to roll, pitch and yaw controls for both the pilot and the copilot side. The default axes, named “Roll”, “Pitch” and “Yaw” should be assigned for the flight control hardware installed on the pilot’s side. The copilot flight control hardware should be assigned the axes “Copilot Roll”, “Copilot Pitch” and “Copilot Yaw”.

  • For linked (“Boeing”) flight controls, the greater deflection wins. This means that both mechanically linked hardware, as well as electronically linked control-loading hardware will work.
    • Electronically control-loading hardware should watch the datarefs sim/cockpit2/controls/torque_tube_split_roll and sim/cockpit2/controls/torque_tube_split_pitch to know whether the control deflections between both sides should be synced. In some cockpits, there is a red handle that allows the splitting of the flight controls in case of failure. If this handle is present in hardware in the cockpit, it would change one or both of these datarefs to tell X-Plane about the split, and these datarefs should tell the control loading software to stop syncing the movements between pilot and copilot side in the respective axis.
    • In some airplanes, flight controls are split not by pulling a handle, but by force applied to the flight controls in opposite directions. X-Plane detects this force if the pilot/copilot controls are deflected away from the center in opposite directions. Moving one side while the other remains centered will not cause this force. If the opposing deflections are strong enough, the datarefs sim/cockpit2/controls/torque_tube_split_roll and sim/cockpit2/controls/torque_tube_split_pitch will indicate the split in the respective axis.
  • For independent (“Airbus”) flight controls, the pilot and copilot deflections are added algebraically. It is also possible to gain priority by triggering the commands sim/autopilot/priority_pb_left or sim/autopilot/priority_pb_right respectively, in which case the last pressed side wins priority for as long as the button is held. The opposite side is then ignored until the button is released. It is also possible to hold the button for 40 seconds, in which case the priority will remain even when the button is subsequently released. The current priority can be read from the dataref sim/joystick/priority_side int y enum 0 = Normal, 1 = Priority Left, 2 = Priority Right which can be used to drive the according lights or callouts announcing priority.

For plugin developers

Plugins for cooperative multiplayer flying (“shared cockpit”) should use the overrides sim/operation/override/override_joystick_heading_copilot, sim/operation/override/override_joystick_pitch_copilot, and sim/operation/override/override_joystick_roll_copilot to then write to the datarefs sim/cockpit2/controls/yoke_heading_ratio_copilot, sim/cockpit2/controls/yoke_pitch_ratio_copilot, and sim/cockpit2/controls/yoke_roll_ratio_copilot to get remote flight control input into X-Plane. This will work both with “Boeing”-type aircraft, where the control inputs will not be added (largest deflection wins) and with “Airbus”-type aircraft, where the control inputs will be added. In both cases, if the flight control hardware is reasonably well calibrated, a centered joystick will not alter any input generated by the deflected joystick. If a single-sided takeover of the flight controls is desired, the plugin should use the sim/joystick/priority_side dataref, which will also work in the “Boeing”-case, to suppress input from one side.

Comments Off on Pilot and Copilot Flight Control Inputs

Navigation Display Scaling

X-Plane offers several instrument types that display moving maps, the most popular one being map_s_HM.png which emulates an instrument found in airliners and allows for several display modes, like an HSI view, a NAVMAP view and a PLAN view.

Customization – graphics

Customization of the map display is possible by editing the map_s_HM-1.png, map_s_HM-2.png, map_s_HM-2.png and map_s_HM-4.png graphics and supplying the graphics specific for your aircraft through the library system (the path is cockpit/EFIS/EFIS_maps). These png files can supply alternate symbols, colors or fonts to generate the style of the navdisplay.

Up until X-Plane 11, it was not possible to change the overall scale of the map, so supplying a texture with bigger dimensions did not lead to bigger symbols or bigger text. Therefore, a very big map instrument would render very small and thus difficult to read symbols and text, even if the customized graphics were provided in a very high resolution.

Customization – parameters

Starting with X-Plane 12 it is possible to independently scale symbols and text of the navdisplay, and also change the relative locations of symbols and labels. The scale chosen is independent of the resolution of the supplied graphic files. Supplying a graphic with double the resolution will not increase the size of the symbols. Configuring the scale parameter to double the size will not increase the resolution of the texture, so the result will look blurry. To achieve a crisp and legible bigger navdisplay you will thus need to supply both a higher resolution texture and also configure a bigger scaling factor.

The customization parameters are supplied through a text file specific to the instrument that you supply for your aircraft in the path cockpit/EFIS/EFIS_maps. The name of the text file corresponds to the instrument, so if you are customizing the map_s_HM-3.png with new symbols, the text file to edit is the cockpit/EFIS/EFIS_maps/map_s_HM.txt.

The syntax of the file is as follows:

A
750 version
x   y  
0 -143	// comment: rose offsets in expanded mode
0 -5	// comment: rose offsets in centered mode
2.5 2.5	// scale factor for symbol and text size
32 -15	// text label offset x and y in pixels at the provided scale
65280 -1 // 24bit color for the "magenta" line and absolute size of the compass rose

The first five lines are unchanged from previous versions of X-Plane and allow the lateral and vertical offset for the center of the map display in arc mode and rose mode. These pixel values continue to be unaffected by symbol scaling.

The next three lines are only read by X-Plane 12 and allow you to utilize higher resolution textures and further customize symbology.
The first scaling factor is applied to symbols and the second scaling factor is applied to text. They can be specified in single floating point precision. This way it is possible to scale text up more than symbols if needed for readability.
The last line provides the absolute offset from the center of the symbol to the bottom left of the text label attached to that symbol. In this example, the text label starts 32 pixel to the right of the center of a symbol and the bottom of the text label is 15 pixels below the center of a symbol.pixel offset from symbol to text label
The last line allows customization of the ND MAP and plan mode where the FMS flightplan is displayed. By default, the active FMS route is a magenta line, but a 24bit value can be used to override the RGB value. In this example, 65280 is an RGB value of R=0, G=255 and B=0, thus a solid green line. The map scale is determined by the map range values of the array dataref sim/cockpit2/EFIS/map_range_steps in nautical miles, and the height of the compass rose texture (map_s_XX-3.png). If this is undesired, the array of available map ranges can be changed by plugin, and the size of “rose” can be altered independently from the texture by a non-negative value of the second parameter on the last line.

Comments Off on Navigation Display Scaling

Radio altimeter sensor location and offset

X-Plane 12 allows aircraft authors to specify the exact location of the radio altimeter sensor on the aircraft, and also the precise offset where it reads 0.

This is to allow for correct radio altimeter readout with pitch. Ever wondered why the 737 reads “-4” radio altitude when it is sitting on the ground? That’s because the antenna is in front of the wheels, and thus further off the ground when the plane is pitched up, and it’s calibrated to read 0 exactly when the aircraft touches down in landing flare attitude, with the landing gear struts maximally expanded. Once the aircraft settles in, compresses the struts, and derotates to level attitude, the altimeter reads negative!

Updating aircraft

In X-Plane, radio altitude was naively defined as the altitude of the CG of the plane over the underlying terrain, minus the equilibrium height of the plane fully settled on the ground (struts compressed).

In Plane Maker 12, loading an existing plane, the radio altimeter location and calibration offset is defined to be exactly that – at the CG of the plane, offset for the calculated gear equilibrium. So nothing changes initially, and you don’t have to re-calibrate the radio altimeter if you are happy with the readout of X-Plane 11.

But you can go in and define the antenna location on the plane (with respect to aircraft datum, like everything else you attach to the aircraft in Plane Maker) and the calibration offset you need. Once saved, X-Plane will for this aircraft simulate the radio altimeter antenna being mounted at the given location, and change the readout according to pitch attitude.

The datarefs sim/cockpit2/gauges/actuators/radio_altimeter_height_ft_pilot and radio_altimeter_height_ft_copilot will provide the readout needed for the PFDs. Use this rather than the flight model datarefs for a realistic indication that can go negative on the ground.

Comments Off on Radio altimeter sensor location and offset

Weight & Balance and Load Stations

Adding Payload Stations

Plane Maker 12 has a new tab “Payloads” in the weight & balance setup. It allows to configure 9 CG stations to distribute payload mass in the aircraft. Each station can be assigned a role “PAX” or “Cargo” and labelled with a descriptive name. Each station has a nominal maximum weight in lbs that can be placed there (though X-Plane obviously allows to overload each station with more weight than allowed).

Limit Radii of gyration overrides

Mass in a payload station not only increases the mass of airplane and adds a moment, but the added mass also increases the moment of inertia around all axes if an offset from the empty CG location exists. Since loading a payload station increases MoI and thus radius of gyration dynamically (depending on how much weight the user actually loaded) it is preferable to use payloads with CG offsets rather than increase the radius of gyration.

Since X-Plane 11 considered payload a point-mass, authors often increased the radii of gyration to achieve a more “heavy” feel to the aircraft by adding more moment of inertia.

In X-Plane 12, the preferred way is to create multiple payload stations throughout the airframe that add moment of inertia dynamically as they get loaded.

Loading payload stations by datarefs

Each configured payload station can have mass added to it with the array dataref sim/flightmodel/weight/m_stations[]. The dataref is in kilograms.

The result of loading the stations is the total weight sim/flightmodel/weight/m_fixed and the CG offsets sim/flightmodel/misc/cgz_ref_to_default (in pitch) and sim/flightmodel/misc/cgx_ref_to_default (in roll), though the latter is usually only relevant to helicopters.

Writing to these datarefs will try to distribute the payload throughout the stations to achieve the requested CG and total mass, but it is not guaranteed that the requested CG can be achieved with shifting the available mass between the stations. For example, no negative mass will be assigned to a station to achieve more CG offset. It is thus recommended to read back the CG dataref after writing it to see the actually achieved CG after moving payload.

It is thus preferred to write the mass to the station and read the resulting CG.

Legacy aircraft with no configured stations

Upon loading an X-Plane 11 aircraft, X-Plane 12 will still consider the payload weight a point-mass and not alter moment of inertia. Two “virtual” stations in the nose and tail of the aircraft will be created to allow for a maximal arm to change the CG location. Payload mass will be distributed between nose and tail to achieve the requested CG. Note that these virtual nose and tail stations are not counted for moment of inertia.

Programmatically, you can detect these virtual stations by their fixed max weight sim/aircraft/weight/acf_m_station_max reading 1kg.

Comments Off on Weight & Balance and Load Stations

Flight director and autothrottle datarefs

The X-Plane autopilot knows three levels of operation:

  1. Flight director off, no cues are generated
  2. Flight director on, steering cues are generated, no servos are actuated
  3. Flight director and autopilot on, servos act on steering cues

This is represented in the datarefs sim/cockpit2/autopilot/flight_director_mode and sim/cockpit2/autopilot/flight_director2_mode for the pilot-side and co-pilot side units.

Flight director switches

Depending on the specific aircraft, it might be necessary to turn off the steering cue display with a switch that does not switch off the autopilot computer. On some aircraft, it is possible to hide the flight director bars even if the autopilot is flying the aircraft. To facilitate that, the new datarefs sim/cockpit2/autopilot/flight_director_command_bars_pilot and sim/cockpit2/autopilot/flight_director_command_bars_copilot were added. These allow for turning off the command bars but let the autopilot keep flying the aircraft if desired.

Flight director master lights

When a flight director is generating cues, no matter if its bars are displayed or not, it can act as the master (generating the cues from its on-side altimeter, airspeed, attitude and heading instruments). If a flight director is on but not the master, it will copy the steering cues from the other flight director. During certain phases of flight, it is possible for both flight directors to act independently and both be considered master, see the article on auto lands for more information.

The datarefs sim/cockpit2/autopilot/flight_director_master_pilot and sim/cockpit2/autopilot/flight_director_master_copilot can be used to light up lights associated with the flight director switches.

Auto-throttle arming

Traditionally, X-Plane has always considered its auto-throttle to be “armed”. That is, when asked to provide reference N1 or EPR, or speed hold, it would always come on in response to a command like sim/autopilot/autothrottle_n1epr.

It is now possible to actually dis-arm the autothrottle so that commands for speed hold or thrust reference are ignored. This is reflected by the dataref sim/cockpit2/autopilot/autothrottle_enabled reading -1 when the system is disarmed, also the new dataref sim/cockpit2/autopilot/autothrottle_arm can be used which will read 0 when the system is dis-armed and 1 if the system is armed or active.

For compatibility with older aircraft that expect X-Plane’s autothrottle to be always available, X-plane defaults to loading aircraft with the system armed. Authors are advised to set the new datarefs as desired when their plugin is loaded if they want to take advantage of the new behaviour.

Comments Off on Flight director and autothrottle datarefs

Changes to Radio Navigation

NAV ID is no longer updated for DME-only reception

For each radio, X-Plane provides two data refs for ID (morse code) read-out: sim/cockpit2/radios/indicators/navN_nav_id and sim/cockpit2/radios/indicators/navN_dme_id where N is 1..10 for the 10 nav receivers X-Plane has by default. This is what allows you to hear the correct DME ID of a Nav radio in DME hold mode, where these IDs differ. These datarefs have been available since X-Plane 11.35. If you have not started using the DME_id datarefs, you are already not supporting DME hold functionality.

Starting with X-Plane 12, the nav_id datarefs will (correctly!) no longer reflect reception of stand-alone DMEs, and DMEs that are part of TACAN stations with no associated civilian VOR. Tuning a standalone DME will now only cause the navN_dme_id datarefs to show the ID, but not the navN_nav_id. This is important if you show the ID readout on the ND for bearing pointers. In this case, you will probably want to hide or park the bearing pointer and only display DME readout. Check the POH/FCOM of the airplane you are modeling for specifics.

Example: Tuning 108.50 at Paderborn airport (EDLP). This will cause the Paderborn/Lippstadt DME to be picked up. “PAD” will be displayed on nav1_dme_id but not nav1_nav_id, which will remain blank, along with the CDI remaining flagged as there is no VOR associated with that DME.

NAV radios can be used to pick up TACAN Azimuth with the new TACAN tuning datarefs

You might have noticed that in X-Plane 11.50, you can tune TACAN stations from the X-Plane map. For X-Plane 12, we added the datarefs for tuning TACAN conveniently using mode and channel. All 10 navigation radios can now be tuned to TACAN stations using the datarefs sim/cockpit2/radios/actuators/tacN_channel and sim/cockpit2/radios/actuators/tacN_mode, where N is 1 or 2 for the default radios. You can also use the array datarefs to access N=0..9. “Channel” is an integer between 1 and 126 inclusive. “Mode” is either 0 if the radio is operating as a VOR receiver (this is the default), or 88=’X’ or 89=’Y’ for a TACAN mode. Writing to these datarefs will cause the receiver to operate in TACAN mode, while writing to the frequency datarefs will cause the receiver to operate in VOR mode. Reading datarefs is always safe and does not change the mode of operation.

Example: Set 85X (channel=85, mode=’X’) near Pope AAF (KPOB). This will tune the Pope TACAN and give you Azimuth and distance information. This is the correct way to tune the TACAN for a military radio. A civilian radio would instead tune the paired frequency 113.80 using the frequency datarefs. This will cause you to only have DME, but not Azimuth.

Radio power is important when using a NAV receiver in TACAN mode: By default, the radio is powered on in receive-only mode and will not interrogate DME stations. You will only see the azimuth, not the distance. In real military applications, this is used to keep the plane under EMCON. You have to explicitly select transmit/receive (T/R) mode if you want to send out signals to interrogate DME stations and get a range reading:
sim/cockpit2/radios/actuators/nav{1,2}_power 0 = Off, 1 = R, 2 = T/R. If operating in VOR mode (civilian frequency rather than military channel), this restriction does not exist and a power dataref value of 2 has no meaning.

NAV1 and NAV2 are multi-mode receivers

The receivers for NAV1 and NAV2 can supply GLS FAS guidance like a localizer and glideslope when tuned to a GLS channel between 20000 and 40000 and near a GBAS ground station. By simply writing the channel number to the frequency datarefs sim/cockpit2/radios/actuators/nav1_frequency_hz or sim/cockpit2/radios/actuators/nav2_frequency_hz (or the array dataref at indices [0] and [1]) the virtual localizer and glideslope of a GLS approach can be presented regardless of the load status of said approach in the FMS. Note that this only works for GLS approaches and not for any type of SBAS approach (WAAS, EGNOS, MSAS). These can still only be picked up by the augmentation receivers (array index [10] and [11]) which must be auto-tuned by the GPS or FMS.

SBAS (WAAS) is a privilege

In order to equip your plane with an SBAS receiver (which can receive WAAS, EGNOS and MSAS), go to the Plane Maker Systems page and open the Electrical bus configuration tab. Assign the SBAS receiver a bus (or multiple) to enable it to draw power from the electrical system. Note you probably don’t give it an amperage. The power consumption of a GPS unit does not change appreciably whether its SBAS portion is off or on. Therefore, if you have already set the power consumption of your whole GPS system in amps, the amps for the SBAS receiver portion should likely remain 0 or a nominal 0.1.

For basically all modern general aviation aircraft, you should simply assign the same busses as the primary GPS.

On airplanes equipped with this capability, upon loading an approach with LP or LPV minima, sim/cockpit2/radios/actuators/nav_frequency_hz[10] and [11] will be auto-tuned to a WAAS or EGNOS channel and present FAS guidance for an LP or LPV approach.

Note that surprisingly few airliners do have SBAS capability. It is not standard on any Boeing aircraft and only very recently a retrofit for the 737 was certified. For Airbus, it’s called ‘SLS’ and is available as an option that currently only exists in the A350 and A320NEOs of the 2020 or later model years. So it is highly unlikely that you need to set this if you are making a commercial airliner that represents the current fleet standard. Do NOT confuse this with the GBAS receiver, which is far more common in airliners. GBAS reception is not influenced by this setting.

Note that failing the SBAS receiver in flight will yield slightly different behavior than not installing it in the plane in the first place.

Baro VNAV no longer unflags the WAAS glidepath

sim/cockpit/radios/gps_has_glideslope and sim/cockpit/radios/gps2_has_glideslope have erroneously indicated 1 in the past when flying an RNAV approach with baro VNAV. This is no longer the case, these datarefs will show 1 only for SBAS and GBAS derived glide paths, not for barometric path deviation. Use the barometric flight plan target altitude sim/cockpit2/radios/indicators/fms_fpta_{co}pilot dataref to find out whether barometric VNAV is active. This dataref is parked at -1000 if no baro VNAV is available.

Note: This does not apply to aircraft equipped with integrated approach navigation. If IAN is active, the baro VNAV path will be available as glide path read-out.

Glideslope can be selected off

The glide path receiver normally automatically tunes the UHF frequency paired with the VHF LOC frequency that is selected on the NAV receiver. This can be selected off, if you explicitly want to de-select the ILS glideslope, for example to fly a LOC approach with baro VNAV guidance. The array dataref sim/cockpit2/radios/actuators/nav_receiver_glideslope_off[N] defaults to 0 for all 10 radios, which means they can pick up glide slopes. Set the dataref to 1 for a specific radio to disable glide slope reception.

NAV1 and NAV2 can be restricted to ILS+GLS

On some modern airliners, the receivers for localizer and VOR signals are split in such a way that the autopilot can only follow a localizer, but not a VOR deflection. In that case, the NAV signal can be presented on the navdisplay, but the ILS signal is received by a distinct receiver which is the only one with a connection to the autopilot. This setup can be selected in Plane Maker on the Systems page which allow autopilot configuration, by ticking the checkbox “ILS/Multimode receiver only”. This changes the behaviour of the NAV receivers as follows:

  • NAV1 and NAV2 can no longer pick up a VOR signal. They will only un-flag for the reception of an ILS or GLS localizer.
  • NAV1 and NAV2 remain the only ground-based navigation that can be selected to the HSI and thus the only ones that the autopilot can follow in NAVLOC or APP mode.
  • NAV1 and NAV2 will be displayed on the default navdisplay in APP (0) mode.
  • NAV3 and NAV4 (array indices [2] and [3]) will be displayed on the default navdisplay in VOR (1) mode.
  • NAV3 and NAV4 (array indices [2] and [3]) are considered the VOR receivers of the airplane when loading a VOR from the map or instructor station.

Use NAV receiver power to “park” receivers

The array dataref sim/cockpit2/radios/actuators/nav_power should be used to “park” needles that are de-selected, as it also works with receivers NAV3-NAV9. Do NOT write invalid frequencies, like -1 or 999 to a frequency dataref. The frequency datarefs are range-checked for valid TACAN, LOC, VOR or GLS VDB channels and writing a “magic value” like -1 will cause a range check to trip. If you want a receiver to not display anything, simply un-power it.

Comments Off on Changes to Radio Navigation

Autopilot navigation source reference

As we all know, the source for the autopilot “NAV” and “APR” modes is set with the datarefs sim/cockpit2/radios/actuators/HSI_source_select_pilot and HSI_source_select_copilot respectively for the autopilot side. But what EXACTLY supplies the lateral and vertical deviation indications we see on the PFD and that the autopilot sees? What should the Nav ID and DME distance readout be?

This article summarizes X-Plane’s capabilities when it comes to modern integrated approach navigation and sheds light on the new datarefs.

ILS approach

Tune the ILS on the NAV1 radio (for left autopilot, or NAV2 radio for right autopilot). Whenever a valid ILS signal is received by the on-side NAV receiver, it locks out ALL other approach modes!

Nav Source Ref IAN Autopilot modes FAS identifier FAC DME
sim/
cockpit2/
radios/
indicators/
nav_src_ref
sim/
cockpit2/
radios/
indicators/
ian_mode
sim/
cockpit/
autopilot/
autopilot_state
sim/
cockpit2/
radios/
indicators/
nav1_nav_id
sim/
cockpit2/
radios/
actuators/
nav1_course_deg_mag_pilot
sim/
cockpit2/
radios/
indicators/
nav1_dme_distance_nm
2 0 2560 “IFNW” 248.0 3.4
“ILS” “LOC”+”GS” “IFNW” /248 DME 3.4

RNAV (GPS) and RNAV (RNP) approaches and overlay approaches

This approach is loaded into the GPS or FMS. It is flown with either Baro-VNAV or SBAS-derived VNAV. No FAS block is provided. No channel is tuned into the WAAS or the GLS receiver.

This includes all cases of “overlay” approaches, i.e. VOR, DME, NDB and TACAN approaches that can be flown with integrated approach navigation, if the airplane is so equipped.

In this case, the DME ID of the GPS receiver tells you the approach ID (e.g. “RNV23LY”) and the DME ID of the augmentation receiver tells you the missed approach point (e.g. “RW23L”). The distance readout of the augmentation receiver tells you the distance to that point (usually the runway threshold).

Nav Source Ref IAN Autopilot modes FAS identifier FAC DME
sim/
cockpit2/
radios/
indicators/
nav_src_ref
sim/
cockpit2/
radios/
indicators/
ian_mode
sim/
cockpit/
autopilot/
autopilot_state
sim/
cockpit2/
radios/
indicators/
gps_nav_id
sim/
cockpit/
radios/
gps_course_degtm
sim/
cockpit2/
radios/
indicators/
nav11_dme_id,
sim/
cockpit2/
radios/
indicators/
nav_dme_distance_nm[10]
1 2 2560 “RNV25LY” 248.0 3.4
B:”FMC”

A:”FLS”

lateral and vertical B:”FAC”+”GP”

A:”F-LOC”+”F-G/S”

“RNV25LY” /248 RW25L 3.4

RNAV (GPS) or RNP approach with SBAS FAS

This approach is loaded into the GPS or FMS. The FAS block determines the SBAS system to be used (WAAS, EGNOS or MSAS). The SBAS receiver is tuned to the respective channel and provides FAS navigation, both lateral and vertical.

In this case, the DME ID of the GPS receiver tells you the FAS block ID (e.g. “W05A”) and the DME ID of the augmentation receiver tells you the missed approach point (e.g. “RW05L”). The distance readout of the augmentation receiver tells you the distance to that point (usually the runway threshold).

Nav Source Ref IAN Autopilot modes FAS identifier FAC DME
sim/
cockpit2/
radios/
indicators/
nav_src_ref
sim/
cockpit2/
radios/
indicators/
ian_mode
sim/
cockpit/
autopilot/
autopilot_state
sim/
cockpit2/
radios/
indicators/
gps_nav_id
sim/
cockpit/
radios/
gps_course_degtm
sim/
cockpit2/
radios/
indicators/
nav11_dme_id,
sim/
cockpit2/
radios/
indicators/
nav_dme_distance_nm[10]
1 2 2560 “W05A” 54.0 3.4
B:”FMC”

A:”SLS”

lateral and vertical B:”FAC”+”GP”

A:”LOC”+”GS”

“W05A” /054 RW05L 3.4

GLS

This approach is loaded into the FMS. A FAS block is provided. The GBAS receiver is tuned to the GLS channel and provides the FAS navigation.

In this case, the DME ID of the GPS receiver tells you the FAS block ID (e.g. “G25A”) and the DME ID of the augmentation receiver tells you the missed approach point (e.g. “RW25R”). The distance readout of the augmentation receiver tells you the distance to that point (usually the runway threshold).

Nav Source Ref IAN Autopilot modes FAS identifier FAC DME
sim/
cockpit2/
radios/
indicators/
nav_src_ref
sim/
cockpit2/
radios/
indicators/
ian_mode
sim/
cockpit/
autopilot/
autopilot_state
sim/
cockpit2/
radios/
indicators/
gps_nav_id
sim/
cockpit/
radios/
gps_course_degtm
sim/
cockpit2/
radios/
indicators/
nav11_dme_id,
sim/
cockpit2/
radios/
indicators/
nav_dme_distance_nm[10]
3 2 2560 “G25A” 248.0 3.4
“GLS” lateral and vertical “LOC”+”GS” “G25A” /248 RW25R 3.4

LOC or LOC backcourse approach with baro VNAV

This approach is loaded into the FMS. No SBAS or GLS channel is tuned. No FAS block is provided. Final approach navigation comes from the localizer analogue signal. VNAV is provided by the FMS using baro altitude. The autopilot is in VLOC mode laterally, but GP mode vertically.

In this case, the DME ID of the GPS receiver tells you the approach ID (e.g. “LOC31”) and the DME ID of the augmentation receiver tells you the missed approach point (e.g. “RW31”). The distance readout of the augmentation receiver tells you the distance to that point (usually the runway threshold).

Nav Source Ref IAN Autopilot modes FAS identifier FAC DME
sim/
cockpit2/
radios/
indicators/
nav_src_ref
sim/
cockpit2/
radios/
indicators/
ian_mode
sim/
cockpit/
autopilot/
autopilot_state
sim/
cockpit2/
radios/
indicators/
gps_nav_id
sim/
cockpit/
radios/
gps_course_degtm
sim/
cockpit2/
radios/
indicators/
nav11_dme_id,
sim/
cockpit2/
radios/
indicators/
nav_dme_distance_nm[10]
1 1 2560 “LOC31” 311.0 3.4
B:”FMC”

A:”FLS”

vertical only B:”VORLOC”+”GP”

A:”LOC”+”F-GS”

“LOC31” /311 RW31 3.4

 

Comments Off on Autopilot navigation source reference

Hydraulic gear systems

Hydraulic gear systems frequently have gear levers with a third “off” position that mechanically locks the gear in the up position without providing hydraulic pressure to keep it up. While various plugins or scripts have been used to animate this type of lever in the cockpit, interaction with X-Plane was always clumsy and did not necessarily work with commands.

The goal of the new gear datarefs is to enable a consistent user experience both with VR and traditional hardware

Gear lever with “off” position

To enable the new behavior, check the “hydraulic LDG gear with Up/Off” option in Plane Maker on the hydraulic systems settings.

The following datarefs are new:
sim/cockpit2/controls/gear_handle_animation float y ratio
Gear handle position as float for lever animation. 0 is up, 1 is down, 0.5 is off (for planes that have that).
sim/cockpit2/controls/gear_handle_request int y enum
Gear handle request. 0 is up, 1 is down, -1 is off.
sim/cockpit2/controls/gear_handle_downlock_release int y boolean
Gear handle downlock release. If this is 1, the gear handle can be moved to up even if the squat switch reports weight on wheels

The commands sim/flight_controls/landing_gear_off and sim/flight_controls/landing_gear_downlock_release are also new.

You can use the animation dataref directly, and it will update the request enum if you are close enough to 0, 0.5 or 1 position. This is especially useful for large handles that have to act naturally in VR.

If you use the commands, the animation dataref is smoothly driven to the 0, 0.5 or 1 position. This is important if external cockpit hardware is used.

If you use the old int dataref, it will update the status to 0 or 1 (no way to achieve off with the old dataref) and the animation dataref will follow smoothly. This ensures that all legacy aircraft and also all new aircraft with no “Off” position work correctly.

Gear lever mechanical lock

Almost all retractable gear systems employ squat switches, that prevent gear retraction on the ground. This corresponds to the “gear can retract on ground” setting in Plane Maker, which would be unchecked for most aircraft.

The new setting “LDG gear lever dnlock” can be checked to configure the behavior of the gear lever in the cockpit. With this option checked, the gear lever in the cockpit is physically arrested in the down position and cannot be moved while the squat circuit is open. This can be overridden with the downlink release command sim/flight_controls/landing_gear_downlock_release.
With this option not checked, the landing gear lever can be moved, but simply won’t actuate the gear when the squat circuit is open. That is the same behavior as X-Plane 11, and appropriate for most small general aviation planes.

Comments Off on Hydraulic gear systems