For X-Plane 11 and X-Plane 12. Formerly the Winwing plugin for X-Plane.
This plugin allows you to use WINCTRL devices in X-Plane on MacOS and Linux. The plugin theoretically works on Windows, but is not required there, as WINCTRL provides a native Windows driver through the SimAppPro software.
- Download the latest release from the releases page.
- Unzip the downloaded file.
- Copy the
winctrlfolder to your X-PlaneResources/pluginsdirectory. - Start X-Plane.
- Updating can be done by replacing the
winctrlfolder or using Skunkcrafts Updater if you have it installed.
For linux, see the Linux udev rules section below to ensure proper permissions.
- Fork the repository.
- Download the latest X-Plane SDK from https://developer.x-plane.com/sdk/plugin-sdk-downloads/.
- Unzip and copy the
SDK/folder to the root of the repository. - Make your changes.
- Test your changes in X-Plane. Datareftool plugin recommented, and make sure you uninstall FlyWithLua as it can interfere with the "Reload Plugins" functionality.
- Commit your changes and push to your fork.
- Create a pull request with a description of your changes.
- The plugin will automatically detect your WINCTRL devices.
- There are no user-configurable settings at this time.
The matrix below shows device and aircraft compatibility. Devices are listed vertically, aircraft horizontally.
| Device | Toliss A3xx | Laminar A330 | Laminar 737 | AeroGenesis A330 | Zibo / LevelUp 737 | IXEG 737 | FlightFactor 767/777 | FlightFactor A350 V1 | SSG 747 |
|---|---|---|---|---|---|---|---|---|---|
| URSA MINOR Joystick L+R | 🟢 | 🟢 | 🔴 | 🟢 | 🟢 | 🟢 | 🟢 | 🔴 | 🟢 |
| URSA MINOR Throttle | 🟢 | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 |
| MCDU-32 | 🟢 | 🟢 | 🔴 | 🟢 | 🟢 | 🟢 | 🟢 | 🔴 | 🟠 |
| PFP 3N | 🟢 | 🟢 | 🔴 | 🟢 | 🟢 | 🟢 | 🟢 | 🔴 | 🟠 |
| PFP 4 | 🟢 | 🟢 | 🔴 | 🟢 | 🟢 | 🟢 | 🟢 | 🔴 | 🟠 |
| PFP 7 | 🟢 | 🟢 | 🔴 | 🟢 | 🟢 | 🟢 | 🟢 | 🔴 | 🟠 |
| PAP3 / PAP3 Mag | 🔴 | 🔴 | 🔴 | 🔴 | 🟢 | 🔴 | 🟢 | 🔴 | 🔴 |
| FCU and EFIS L+R | 🟢 | 🟢 | 🟠 | 🔴 | 🔴 | 🔴 | 🟢 | 🟢 | 🔴 |
| ECAM32 | 🟢 | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 |
| AGP | 🟢 | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 |
| 3N / 3M PDC | 🔴 | 🔴 | 🔴 | 🔴 | 🟢 | 🔴 | 🟢 | 🔴 | 🔴 |
- 🟢 Fully implemented - All features working
- 🟠 Partly implemented - Some limitations or missing features
- 🔴 Not implemented - No support
- 🟠 The SSG 747 does not expose any colour datarefs yet. Therefore, the PFP will not show the correct colours.
- 🟠 The SSG 747 has a dual FMC, but the datarefs seem to overwrite eachother.
- 🟠 Laminar 737: FCU is fully functional, but EFIS controls have not been tested yet.
- @Schenlap for the initial python implementation and providing the HID protocol documentation.
- @zodiac1214 for the Ursa Minor Joystick HID protocol.
- @CyberGuerro for the PFP3N HID protocol and a lot of testing work.
- @claaslange for the FCU-EFIS integration.
- @shred86 for identifying the Ursa Minor Joystick R.
- @Belnadifia for the complete PAP3 HID protocol and Zibo profile.
- @ColinM9991 for the FF777 profile.
- @tukan68 for FF767 profile.
- @verres1 for enriching the FF777 profile.
- @teropa for data capture and testing of multiple devices.
- @SoarByWire for the testing of multiple devices.
- @MortyMars for the FCU/EFIS FF777 and FF767 profile.
To ensure WINCTRL panels are accessible without root and have stable device names, create a udev rules file:
sudo nano /etc/udev/rules.d/99-winctrl.rulesKERNEL=="hidraw*", ATTRS{idProduct}=="bc27", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-ursa-minor-l"
KERNEL=="hidraw*", ATTRS{idProduct}=="bc28", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-ursa-minor-r"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb36", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-mcdu32-cpt"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb3e", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-mcdu32-fo"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb3a", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-mcdu32-obs"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb35", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-pfp3n-cpt"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb39", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-pfp3n-fo"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb3d", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-pfp3n-obs"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb38", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-pfp4-cpt"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb40", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-pfp4-fo"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb3c", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-pfp4-obs"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb37", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-pfp7-cpt"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb3f", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-pfp7-fo"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb3b", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-pfp7-obs"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb10", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-fcu"
KERNEL=="hidraw*", ATTRS{idProduct}=="bc1e", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-fcu-efis-r"
KERNEL=="hidraw*", ATTRS{idProduct}=="bc1d", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-fcu-efis-l"
KERNEL=="hidraw*", ATTRS{idProduct}=="ba01", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-fcu-efis-lr"
KERNEL=="hidraw*", ATTRS{idProduct}=="bf0f", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-pap3"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb70", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-ecam32"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb80", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-agp"
KERNEL=="hidraw*", ATTRS{idProduct}=="b920", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-throttle-l"
KERNEL=="hidraw*", ATTRS{idProduct}=="b930", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-throttle-r"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb61", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-3n-pdc-l"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb62", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-3n-pdc-r"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb51", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-3m-pdc-l"
KERNEL=="hidraw*", ATTRS{idProduct}=="bb52", ATTRS{idVendor}=="4098", MODE="0666", SYMLINK+="winctrl-3m-pdc-r"
Also see the X-Plane.org forum thread for more information and discussion.