This multi-platform X-Plane plugin provides enhanced controls for the flight simulator. It supports Saitek x52 and x52 Pro joysticks allowing to customize additional data pages on the Multi-Functional Display (MFD) with up to four configurable buttons.
Additionally, it comes with an embedded realistic FMS capable of calculating expected enroute time (considering realistic climb/descend), required fuel to load, top of climb/ descend distance, time and waypoint.
The FMS continuously monitors your position and leverages X-Plane voice to brief you regarding the flight plan status, position report and delays from scheduled and expected time.
Even without a supported joystick, both the FMS and a virtual MFD are made available.
2017 UPDATE: there are a few reported bugs which I am not able to troubleshoot with my current setup since dependent on the joystick version, aircraft used or the combination of the two. If anybody has any C++ experience, some spare time and is willing to help, please feel free to drop me an e-mail (user2684@users.sf.net). Thanks
X-Plane 9.x and 10.x:
- Mac OSX (32 bit and 64 bit)
- Linux (32 bit and 64 bit)
- Windows (32 bit and 64 bit)
The plugin supports Saitek x52 and x52 Pro joysticks allowing to customize additional data pages on the Multi-Functional Display (MFD) with up to four configurable buttons.
Additionally, it comes with an embedded realistic FMS. Once a valid flight plan is loaded in the FMS and the plugin is configured with scheduled departure time, cruise ground speed and altitude, it will provide the following information:
- Expected Enroute Time (considering realistic climb/descend time)
- Total Distance
- Required fuel to load
- Top of Climb/ Top of Descend distance and time
- For each entry: leg time, leg duration, distance from departure, distance from arrival, scheduled time, expected altitude
Additionally, the FMS continuously monitors your position and keeps track of the following information:
- Time at departure/arrival gate
- For each entry actual time/altitude and delay from scheduled and expected time
The plugin also leverages X-Plane voice to brief you regarding the flight plan status and position report.
The xcontrol plugin can be downloaded from the following location: http://forums.x-plane.org/index.php?app=downloads&showfile=20723
By default, the plugin maps the following templates to the configured buttons:
- Button 1 - Navigation information: flight.high,flight.low,fms.status
- Button 2 - Weather information: weather.wind,weather.cloud,weather.condition
- Button 3 - FMS planning information: fms.planner,fms.scheduler
- Button 3 - Radio information: std.radio.com,std.radio.nav,std.radio.adf
For details regarding the templates and the other available pages, see "Available MFD pages".
For changing the pages you want to display, see "Customizing the plugin".
The xcontrol.ini file can be used to customize buttons, leds and MFD pages. Open the file with a text editor; instructions for each directive are provided within the file. Default values should be fine.
If you wish to customize for each button the MFD pages to display and cycle within, add the name of the MFD template to the directives mfdpages_button1, mfdpages_button2, mfdpages_button3, mfdpages_button4 (e.g. mfdpages_button1#flight.fms,flight.combined).
For a complete list of the available MFD data pages, see below ("Available Data Pages").
The xms.ini file can be used to customize FMS settings used by the plugin to calculate times and distances. Open the file with a text editor; instructions for each directive are provided within the file.
Planned cruise Flight Level, Ground Speed and expected takeoff time can be configured from the plugin menu and there is no need to change the file for those. Climbing/descending profiles are used to calculate top of climb/descend. Each profile contains the time and distance for different Flight Levels (e.g. how many minutes/miles to climb to the specific altitude/descending from the specific altitude).
The reason why the plugin uses climb/descend profiles is because they are easy to calculate: start a test flight and calculate the time required to reach FL100,FL200,FL300,FL400,Fl500,Fl600 and the distance travelled as well. Do the same while descending. You now have all the information required to create the profile for your aircraft.
Customizing the fuel profile is easy as well. Track the consumption on ground (taxi,takeoff,landing), for climbing/descending, cruise consumption for each 100nm, IFR/VFR contingency and configure them within this file.
Since some of those values can be aircraft specific, the plugin looks also for a xfms.ini file into the loaded aircraft folder, if found, it takes precedence over the global file. You may need to reload the plugin to have this to work.
The plugin can be instructed to print on the MFD relevant information coming from the flight simulator. To facilitate the configuration, a number of ready-to-use templates are provided and can be mapped to one or more buttons.
A list of all the available data pages follows below. For each page the template is also provided to give an idea of what is going to be displayed on the screen when selected.
Flight navigation pages:
- flight.combined:
S:[iAS] M:[match_speed] T:[trasponder]
FL:[FL] V:[vs]00 [gear]
[nav1_id] [nav1_dme]nm F:[flap]
- flight.low
[iAS] R:[rain_perc]-[runway_friction] V:[visibility] [trasponder]
FL:[FL] V:[vs] F:[flap]
[cur_nav_id] [nav_dme] [wind_dir]/[wind_speed]
- flight.high:
[iAS] [TAS]/[GS] [mach]
FL:[FL] T:[temp] W:[wind_speed]
[cur_nav_id] [nav_dme]nm [hh]:[mm]
FMS pages:
- fms.status (next entries):
[arrival_apt] [remaining_distance] [fuel_eta]
[hh_eta]:[mm_eta] [id_name]
[distance]/[remaining]m [hh_time]:[mm_time]
- fms.status (previous entries):
[id_name] [time_actual]
[time_expected] ([delay_from_scheduled]/[delay_from_expected])
[altitude_expected] ([altitude_actual])
- fms.planner:
[departure_apt]->[arrival_apt] [total_distance]
D:[EET] F:[required_fuel_lb]
TD:[miles] to [FIX_top_of_descend]
- fms.scheduler:
T:[expected_takeoff_time] ([actual_takeoff_time])
C:[expected_top_of_climb] D:[expected_top_of_desc]
T:[expected_landing_time] ([actual_landing_time])
Weather pages:
- weather.wind:
W:F[fl1] [wind_dir]/[wind_speed]:[turbulence]T
W:F[fl2] [wind_dir]/[wind_speed]:[turbulence]T
W:F[fl3] [wind_dir]/[wind_speed]:[turbulence]T
- weather.cloud:
C:F[fl1_base]-[fl1_top] [clouds]
C:F[fl2_base]-[fl2_top] [clouds]
C:F[fl3_base]-[fl3_top] [clouds]
- weather.condition:
T:[ground_temp]C [wing_temp]C [outside_temp]C
W:[ground_wind_dir]/[ground_wind_speed] [outside_wind_dir]/[outside_wind_speed]
V:[visibility]k R:[rain_level] RWY:[rwy_friction]
Radio pages:
- std.radio.nav
Nav1 Nav2
[radio_active_nav1] Ac [radio_active_nav2]
[radio_standbay_nav1] Sb [radio_standbay_nav2]
- std.radio.com
Com1 Com2
[radio_active_com1] Ac [radio_active_com2]
[radio_standbay_com1] Sb [radio_standbay_com2]
- std.radio.adf
Adf1 Adf2
[radio_active_adf1] Hz Ac [radio_active_adf2] Hz
[radio_standbay_adf1] Hz Sb [radio_standbay_adf2] Hz
- std.navigation
hdg: [hdg]
spd: [speed]
fl : [flight_level]
If the plugin does not load correctly (there is no entry in the Plugins menu and the Joystick's leds do not light up):
- Review the Log.txt file in the X-Plane root directory, searching fro "xcontrol"
- The error message "Error Code = 126 : The specified module could not be found." implies a required library is missing
- If running on Windows, run the "Test (Win) program" from libusb-win32 to ensure the filter driver has been installed correctly
- The plugin is delivered as a "fat" plugin; this means that the correct plugin for your platform/architecture is automatically loaded by X-Plane. However, old X-Plane 9.x versions do not support this feature; so if the plugin is not loading, manually copy the correct xpl file out from the "32" or "64" directory into the plugin root directory.
If the plugin loads correctly but the MFD on the joystick is not responding as expected:
- Set "debug" to 1 in the "xcontrol.ini" file in the plugin directory and review the "xlog.txt" file in the plugin directory
- If the joystick is plugged on a different port, you need to run the Libusb-win32 "Install Wizard" from the "Programs" start menu again
The source code is available on Sourceforge at the following location: https://sourceforge.net/projects/x-control/
Feel free to contribute.
Bugs and enhancement requests can be both submitted at the following location: https://sourceforge.net/p/x-control/tickets/
Xcontrol is an evolution of the legacy x52control plugin. Since it includes a few new features which does not require the joystick, the project has been renamed into xcontrol but still providing the same features of the previous version.
The xcontrol plugin is not compatible with x52control; so before installing, the latter has to be disabled (please read "Migrating from x52control").
This plugin has been derived from x52control 0.5.0-dt whose source code is available at https://github.com/sothis/x52control/tree/v0.5.0-dt