Encoder support

Encoder support

While encoders are always available as joystick buttons out of the box, this indirect form of support suffers from limitations: Since each turn of the knob has to be turned into a button push and release, delays are incurred as the button pressing action catches up to the encoder position.

To circumvent this limit, MobiFlight can directly read the encoder position from the controller. For this to work, the controller must be configured in VKBDevCfg to make these positions available:

Close MobiFlight

Close any running instance of MobiFlight Connector. Otherwise, you will need to restart it after changing the connected game controllers.

Verify controller firmware

Ensure your controller firmware is updated to version 2.18.5 or newer. If not, download zBootloader and the firmware files from the VKB website and follow VKB’s guides to upgrade your controller.

Access configuration in VKBDevCfg

In VKBDevCfg, select your device, then open the Global tab at the bottom and the External tab at the top:

Location of the Global and External tabs.

Edit configuration

Make sure the checkboxes Virtual BUS over USB and External device encoders virtualization are both checked. Then write the configuration to the device by pressing the Set button in the Action bar.

Boxes to check.

After you press Set, your device will disconnect and immediately reconnect to the PC.

Verify that encoders appear

Start MobiFlight Connector and create an input configuration.

If your controller does not have a definition file (i.e. all buttons are listed as button numbers), the new encoder events will appear towards the end of the button list.

Encoder inputs without definition file.

If your controller has a definition file with outputs and friendly input names, the new encoder events will replace the buttons used for the encoder. Note that the original button events are still available with a Legacy DirectInput mark for compatibility reasons. For any definition file with advanced encoder support, both the advanced and the legacy version will be available in the input list, even if the controller is not configured for advanced encoders.

Encoder inputs without definition file.

Be sure to select the full-featured encoders (green frame) instead of the legacy encoders (red frame) to benefit from advanced encoders. If the press event works on these, advanced encoder support is functioning correctly on your controller.

Note

The Scan for Input function may latch onto the original button events. Make sure the correct encoder action is selected in the drop-down when creating input configurations.