The VPC Configuration Tool is used to control all aspects of your VPC device including firmware updates, controller profiles and calibration.

All VPC devices are based on the same core architecture and microprocessor meaning that in it's unconfigured state - all VPC devices appear as the same generic controller using the same firmware, e.g:  "Firmware_vpc_YYMMDD_ [CNT-ATMEGA32U4] .hexc", where "YYMMDD" is the release version.

Before you can configure your VPC device you need to tell controller which device it is and how it should work. All VPC devices are build around the same platform:

  1. The core USB controller - the motherboard or "brains" of the controller. 
  2. Expansion boards - daughterboards connected to the core USB controller via expansion slots to increase the controllers feature set via additional axis or button inputs.
  3. Controller firmware - this is the what brings all the "physical" electronics, motherboard and any daughterboards together as a single "logical" USB controller.

There are some key points to consider when using the VPC Configuration Tool:

  1. If you have multiple VPC devices, only connect one at a time when updating the firmware or calibrating the device. 
  2. Select the device you wish to work with in the device list at the top of the window.
  3. You need to load the device into the VPC Configuration Tool - the blue “LOAD VPC DEVICE” button (this happens automatically in new versions of the configurator). While the profile is loading, you will see a scrolling line with the header reading the EEPROM.
  4. Upon completion of setup or calibration, it is necessary to write the profile to the device using the green button “SAVE VPC DEVICE” button.

A quick start guide can be found here which covers the basics required to get your VPC device setup and ready to use:

>>VPC Software - Quick Start Guide<<

Program Operation Modes

By default, the configurator works in the "LITE" mode, this shows the minimum necessary functions (software update, axis calibration, creating and setting a profile) for configuring your VPC device:

There is an optional "PRO" mode, which shows all possible device settings (advanced settings of the axes, buttons and LED lighting):

Also for convenience, there is an additional window "DEBUG" which appears underneath the main window. This allows you to see the physical state of the buttons and axes when you make changes in any of the sections of the configurator.

General Overview

Section (1) - from left to right:

  • Device connection status indicator.
    • Green - Successful connection to the selected VPC device.
    • Red - No connection to a VPC device.
  • Device selection list. Available USB devices will appear in this list with brief controller information such as:
    • Name of the device
    • Firmware version
    • Device status, e.g.: "BOOTLOADER" - device is currently in standby mode awaiting firmware loading. "NO PROFILE" - device currently does not have a controller profile loaded.
  • Load/Save Device Buttons. The VPC Configurator will try to automatically load the most relevant device, but the currently loaded device can be changed by selecting a different entry in the device list and then clicking "LOAD VPC DEVICE". Changes are not automatically saved to the device - after any changes have been completed it's necessary to click "SAVE VPC DEVICE". 
  • LITE/PRO operation mode buttons.
  • DEBUG panel button.

Section (2) - Main Menu

  • "AXIS" - Here you can configure all axis input on the VPC device. Axis inputs typically include all controls which operate smoothly on a 0-100% input range.
  • "BUTTON" (PRO Mode Only) - Here is where all button input settings can be changed. "Buttons" differ to "Axis" as they are primarily single on/off inputs (rather than a smooth input range) which can be configured in various different modes.
  • "LED" (PRO Mode Only) - LED lighting colours can be configured here.
  • "PROFILE" - The device controller profile (e.g. which grip or which base you are using) can be set here to ensure the correct operation of the VPC device.
  • "FIRMWARE" - Device firmware updates are performed here. 

Section (3) - Main Settings Panel

  • Here is where the main settings information is displayed. Depending on which settings page you are on, different configuration options will be shown.

Section (4) - Additional Utilities

  • Windows Joysticks - Opens the built in windows joystick configuration window. Please note due to limitations of the Windows configuration window, it does not show more than 32 buttons.
  • VPC Joy Tester - The VPC controller test utility without any button limitations.
  • Direct Input Viewer - A useful utility for checking the input of multiple devices at the same time.

The VPC Configuration Tool will only correctly work if the VPC device is loaded with the matching firmware version. The version of the configurator is displayed in the program header. The firmware version in the list of devices after the name.

It is recommended to disconnect all other VIRPIL devices when you are working with the configurator. Many automatic configurator functions are disabled if several connected VIRPIL devices are detected.

Axis Settings

There can be up to 8 unique axes in total per each VPC device, physically the axes can be implemented with digital non-contact sensors, potentiometers, analogue hall sensors, or even software emulated with buttons

At the top of the axis settings window is a table in which all axis parameters are grouped. Double-clicking on a row in this table opens the parameters window for this axis. The right mouse button opens an additional context menu where you can copy or delete rows or perform exporting or importing the entire table via an external text file.

At the bottom of the window are additional buttons:

“Reset axes setup” - completely clears and resets the physics and logic settings of all axes.

"Calibrate axes" - includes a window for calibrating the axis sensors input.

Joystick Logical:

  • Axis Name - the ID/name that the controller will report to OS/games for this axis. There is no difference depending on which axis name is selected.
  • Precision - Fixed at 14 bits, the range of the axis is digitized into 16,384 samples.
  • Processed Value/Value % - This is the current reported calibrated axis position. 

Axis Source:

  • Type - Defines the source type of this axis.
    • Virtual - Software axis emulation through three control buttons. Configurable through the "Virtual Axis Params" group.
    • Analogue - A standard potentiometer or hall sensor input. 
    • VPC_Sens - A VPC digital, non-contact high speed input sensor.
    • VPC_Stick - Auxiliary input axis located within VPC grips/sticks. 
    • TLE5010 -  A digital proximity sensor used in BRD pedal units.
  • Main PCB Port - Indicates which port number the axis is connected to on the controller mainboard.
  • Sub Port - VPC_Stick only, indicates which port the input the axis is connected to within the VPC grip mainboard.
  • Smoothing - A filter for smoothing the input value of the sensor; it has a choice of a smoothing coefficient from 2x (weak smoothing arithmetic mean of the current and previous poll) to 8x (strong smoothing of the current and 7th previous polls).
  • Inversion - Enables reversing the direction of the axis input.
  • Offset - Handles axis raw input values crossing the maximum allowed value when dealing with 360 degree magnet based sensors. This value is automatically handled by the calibration process.
  • Sensor Raw Value - The pre-calibration/absolute sensor value.
  • Sensor Link Errors - Allows diagnosing axis input errors caused by physical hardware problems or incorrect profile settings that prevent the sensor from communicating expected values. Should always report as "0". 


  • Type - Defines the calibration algorithm mode.
    • No Center - The most simple calibration mode which interpolates the axis range into the sensor range into the logical 14 bit output range.
    • With Center - A calibration mode tailored for axis which rest in position central of the total axis range.  A complex algorithm is used to calibrate the 0-50% range and 50-100% separately to resolve any non-linearity responses which may be found in certain sensor type inputs.
  • Values Min/Center/Max - The absolute values of the current calibration data. The reported raw sensor value should always be within the "Min" and "Max" range.
  • Start/Stop/Set Center - These buttons can be used to perform a quick calibration on this specific axis. 


  • Min - The deadzone value % of the lower end of the axis input.
  • Center - The deadzone value % of the center of the axis input.
  • Max - The deadzone value % of the upper end of the axis input.
  • Dynamic - A dynamic deadzone % that operates throughout the entire range of the axis input as a 1/10th % (value “5” = 0.5%, or “15” = 1.5%) of the last polled value. Similar effect to the smoothing value for removing jitter but without obscuring or slowing the polled input response. 


  • The “Normal” mode is designed for axes without a physical center, the nonlinearity coefficients are divided into 10 zones.
  • The “Symmetrical” mode is designed for axes with a dedicated physical center (roll / pitch / rudders), while 10 zones of non-linearity coefficients symmetrically control the half-axes from the center to the edges.
  • Non-linearity coefficients, numerical value in percent, default value is “100”.


  • The first subgroup is 0/50/100% where 3 virtual buttons are activated when the axis is strictly in the extreme positions or in the center.
  • The second subgroup 0-20 / 21-40 / 41-60 / 61-80 / 81-100%; 5 virtual buttons are activated when the axis is in the indicated ranges.
  • Also, in the main window for setting axes, there is an additional “Axis to Button” mode where you can add 4 virtual buttons in an arbitrary range of any axis.

Special Functions:

  • The “Zoom” function, is configured in the main window for setting axes, is connected with a tick to the current axis.
  • The “Trim” function is configured in the main window for setting the axes; it is connected with a tick to the current axis.
  • The numerical value “Shift mode”, connects the subsystem of ciphers (mods) to the axis control, the axis will be active and update the value only with the active cipher / mod.


  • Selection of the “Math mode” mode of mathematics behaviour
    • “Base position” the value of the current axis will be taken as the base, i.e. directly copied to the resulting value.
    • "Addition" the value of the current axis will be added to the axis of the result.
    • “Subtraction” the value of the current axis will be taken from the value of the axis of the result.
  • The numerical value “Proportion” indicates the proportion / proportion from 0 to 100% for the “Math mode”.
  • The numerical value "Result axis" indicates the number of the axis from 1 to 8 into which the result of the math will be placed.

Axis Visual:

  • Shows a graphic representation of the axis deadzone and curve settings.
  • The “Clear axis setup” button resets all axis settings.
  • The “Save and next” button saves the settings for the current axis and loads the settings for the next line.
  • The “Save” button saves the settings of the current axis and returns to the main axis settings window.
  • The “Cancel” button cancels all axis changes and returns to the main axis settings window.

Returning back to the main AXIS settings page, you will see there are additional axis settings found underneath the axis table.


Allows axis input to report a virtual button press based on configured conditions.

  • “Axis number” is the axis number (from the table above) that will control the virtual button.
  • “Range from (%)” the initial value of the axis in percent for activating the button.
  • "Range to (%)" the end value of the axis in percent for activating the button.
  • “Result button” number of the virtual button, a number from 1 to 128.

Throttle Double Axis Lock:

Allows double throttle axis to be locked together to report a single input axis value based on configured conditions.

  • “Source axis” axis number (from the table above) whose value will be duplicated when the function is activated coupling.
  • “Destination axis” the number of the axis (from the table above) whose value will be replaced by the value “Source axis”.
  • The first coupling algorithm with the “Action button” control button; the button number is from 1 to 128.
    • “Button mode - ON” the lock will be active when the control button is pressed.
    • “Button mode - OFF” the lock will be active when the control button is released.
  • The second “double axes DZ” deadband coupling algorithm, the number in percentages from 1 to 15%, turns on the coupling if the difference in the values of the “Source axis” and “Destination axis” axes is less than the value of the dead zone for about 1 second. Those. if the throttle handles are aligned (near).

Throttle Axis Virtual Detents:

Designed to programmatically limit one or two zones. For example, at the beginning of the axis there is an idle range and / or an afterburner range at the end of an axis.

  • “Axis” physical axis number;
  • "Action Button” - the physical number of the control button;
    • “Action Button” mode “OFF” - the function will be active when the button is turned off / depressed;
    • "Action Button" mode "ON" - the function will be active when the button is on / pressed;
    • "Action Button” mode “TGL” - the function will switch when the button is pressed once;
    • "Action Button" mode "EXT" - the function will be controlled by an external device through the software bridge "VPC SHIFT";
  • "Zones ..." when the "virtual detents" function is not active, the axis will be limited to the limit zone, you can configure one or both zones;
    • "Zones Low (%)" the limit of the zone of small gas, at the beginning of the axis (0-15%);
    • "Zones High (%)" the limit of the afterburner zone, at the end of the axis (85-100%);
  • "Hold ..." is an additional modifier of the algorithm.
    • “Hold OFF” in this mode, the axis instantly turns on and off the restrictions;
    • “Hold ON” the mode of holding / sticking limits, the gas handle must be removed from the zone to switch the limit;

Throttle Axis Virtual Detents:

Allows you to temporarily reduce the sensitivity by a given coefficient.

  • “Action Button” - number of the control button, the button must be pressed and held.
  • “Coefficient of division” - a coefficient that controls how many times the sensitivity of the axis decreases.

Axis Trim:

When activated, the device will remember the current axis offset from the center and programmatically adds this offset when the device returns to the center position.

  • “Action Button” - number of the control button;
    • “Action Button” mode “OFF” - the function will be active when the button is turned off / depressed;
    • "Action Button" mode "ON" - the function will be active when the button is on / pressed;
    • "Action Button" mode "TGL" - the function will switch when the button is pressed once;
    • "Action Button" mode "EXT" - the function will be controlled by an external device through the software bridge "VPC SHIFT";
  • “LED” allows you to connect an additional indication of the active status of the function with an LED (if this indication is provided on your device); 

Button Settings

The "BUTTON" page can be selected to show advanced settings relating to digital button inputs. This page is available when the VPC Configuration Tool is set to "PRO" mode.

The total number of buttons can be up to 128 pieces per USB device, unfortunately there are games that do not “see” more than 32 buttons (see profile settings below for a workaround). The default profiles for VPC devices have all button settings correctly configured for immediate use. The shift register and button matrix options are set correctly and do not need to be modified and any changes here will be likely cause the device to stop operating as expected.

The buttons can be connected via expansion cards, it can be removable handles on the bases of the joysticks or the throttle control panel. Different versions of the USB controller have a different possible number of slots for expansion cards, but no more than 4. The controller also supports the connection of buttons through a matrix of up to 8 rows and 8 columns, or direct connection with a common ground of up to 8 buttons. (See the appendix below).

The Sticks (Shift registers) group has four lines with the parameters of the connected expansion card:

  1. The Shift registers field contains a list of supported cards. The list contains all possible handles for joysticks of the VIRPIL Controls company, as well as possible boards for panels and throttles. The list starts with a simple shift register of the “4021” series, such electronics can be made independently and also works in Thrustmaster Cougar / Warthog / Hornet pens.
  2. The “Port” field is the name of the slot where the daughter board is connected. The name of the slot is always labelled on the PCB of the USB controller.
  3. The “Bytes” field sets the controller how many bytes of buttons to read in the exchange protocol; it matters only for shift registers. One byte is 8 bits, and accordingly 8 buttons.
  4. The “Error” field is not controlled by the user, this field is intended to display information about communication errors. A red value unequal “0” means that either there are problems with the connection wire, or the “Port” field is incorrectly specified in the line settings. Not all pens have a communication error check (see below appendix).

The Buttons matrix, rows and Buttons matrix, columns groups can be used to connect the button matrix. The Buttons, direct input group is used to configure up to 8 buttons directly connected to the controller with a common ground. To configure, you need to specify the names of the legs where the buttons are connected by labelling them on the USB controller PCB.

The Physical buttons state group has no settings, only the physics status of all buttons is displayed here. It is the physical numbers of the buttons from this group that are involved in all the firmware operation algorithms. Red colour - the button is pressed and held, Blue - has been pressed / released.

The Reset buttons stat button resets the statistics of the pressed buttons.

The Reset buttons physical setup button resets the physics settings for connecting buttons and special modes.

The “POVs 1-2 modes” group of the hut, each joystick can have no more than 4 or not have them at all.

Each of the four possible huts can be assigned its own algorithm for operating the control buttons:

  1. “4B4W” 4 buttons and 4 positions (only up / down and left / right), the diagonals in this mode will be turned off;
  2. "4B8W" 4 buttons and 8 positions, all sides and diagonals are active;
  3. "8B8W" 8 buttons and 8 positions, all sides and diagonals are active;

the numbers of buttons that control the huts are set in the button logic table.

The “Buttons as SHIFT mode” group selects one or more buttons for official use inside the firmware and controls the cipher / mod modes. There can be up to 6 pieces in total. The fonts can be controlled by the buttons of their own device, and in the EXT mode, through the VPC SHIFT bridge program, they can be assigned from another master device.

For each cipher, it is necessary to indicate the physical number of the control button (except for the EXT mode) and the cipher activation mode.

  1. Activation of “ON” mode will be enabled when the button is pressed and held;
  2. Activation of “OFF” mode will be enabled when the button is off;
  3. Activation of “TGL” switches the mode with a single press of the control button. In this mode, you can assemble a group of several ciphers cyclically switched with just one key.
  4. Activation "RTR" is a special activation mode for dial switches for several positions.
  5. Activation of "EXT" special mode, does not require a control button, the status is set through the program bridge "VPC SHIFT" from the master.

The status of the included shift mode can be duplicated in the LED indication system.

The ALPS Decoding group is a special mode for decoding the physics of modules ALPS RKJXM1015004. At the moment, all modules of the multi-position switches are made by this component. Features of his work, central pressing is always on, including when deviated to the side. The module configuration mode contains only two “4W” modes without diagonals and “8W” diagonals are included. Decoding decoding requires the “Center” number of the physical button when you press the center and the “Sides” number of the physics when deviating to the sides. The logic of the button settings is made by a table in several columns. as well as the axis settings, left-clicking with the mouse brings up the line settings, right-clicking displays the copy / move and export / import settings menu.

The "Logic name" is automatically filled in by the configurator, here the possible logical buttons of the joystick from 1 to 128 are displayed, and if POV is enabled (for example, POV1_U POV1_R POV1_D POV1_L);

“Physical button” number of the control physical button;

“Mode” activation modifier

“Mode Normal” - the button logic is fully consistent with physics;

“Mode Inverted” - the joystick logical button will be turned on when the physical button is turned off;

“Mode Switch” - for toggle switches, the logical button blinks briefly when the switch is switched;

“Mode Toggle ON” - for toggle switches, the logical button will blink briefly when the toggle switch is on;

“Mode Toggle OFF” - for toggle switches, the logical button will blink briefly when the toggle switch is turned off;

“Mode Soft.Toggle” - emulation of the operation of the toggle switch, the logical button will switch each time with a single press of the control physical;

“Mode Encoder Dial” - a special decoding mode for encoders of handles and panels;

“Mode Encoder Scroll” - a special decoding mode for “mouse” knob encoders;

“Mode Encoder Dial (buffer)” and “Mode Encoder Scroll (buffer)” - an additional mode in which the firmware remembers a long encoder response buffer;

“Shift” is an additional activation modifier; it requires a cipher number. Accordingly, the button logic will check the status of the cipher.

“Delay for encoders” / “Turbo for buttons” - adds long timings in the encoder mode (for some games you need a long hold and the interval between button presses). For simple buttons, the turbo mode is activated when the button starts to blink often while you hold it.

The “Save and exit” button saves the parameters of the current logic line and proceeds to the next line.

The Clear button resets the string.

The “Save” button saves the parameters of the current logic line and closes the button logic window.

The “Cancel” button cancels unsaved changes and closes the button logic window.

Under the logic table, the “Reset buttons logical setup” button allows you to reset the table.

LED Settings

The LED page allows you to configure the LED Indication via our RGB WS2812 LED system. Digital LEDs of the WS2812 series can be connected: 

  1. Directly to the USB controller (RGB slot, in total no more than 8 pieces in a chain). Each LED can be set to its own unique colour and brightness.
  2. To expansion cards, some joystick handles and throttle panels have built-in indication LEDs.

The display settings window consists of preset possible colours and a specific LED of the recipient of this colour. Also, through the “custom” button, you can open the mode and create your own hue from the three RGB colours and their brightness.




Profile Settings

The "PROFILE" page assists with the creation of the correct device profile. The "Profile wizard" at the top of the group shows the current profile settings "Current Base / Grip". The “Select Base” field suggests choosing the basis of your device:

  1. “FLIGHT BASE” for the joystick bases;
  2. "THROTTLE" for throttle devices;
  3. "RUDDER” for rudder pedal devices;

When “Select Base” is selected, the icon changes and displays the selected device.

The “Select Grip or Modification” field offers to select an installed joystick handle (supplemented by a handle icon), or throttle operation options, or modifications to the rudder pedals (supplemented by a pedals icon);

Many users assemble sets of identical devices, base and pen on the left + base and pen on the right. Both of these sets will have the same names and identifiers in Windows and games, this is not enough to confuse but can also lead to calibration and configuration errors. In order for these kits to be distinguished, the concept of “Device Side” was introduced. Management is reduced to two buttons "LEFT" and "RIGHT", you need to select the installation side of the device.

The optional modifier “Split to virtual device by 32 buttons” allows you to split one joystick device into several virtual 32 buttons each. This will help to use devices with a large number of buttons in games where buttons with numbers over 32 are not visible.

After selecting the base and the handle / modification, and all additional profile modifiers, you need to generate a new profile using the "CREATE PROFILE" button. The new profile is automatically written to the device.

The Profile management group contains a button for importing a profile from the IMPORT PROFILE FROM FILE file and a button for exporting the profile to the EXPORT PROFILE TO FILE file.

The “USB” group helps to assign some USB parameters

“USB NAME” to the name of the USB device in Windows and games;

“VID / PID” are two key device identifiers, Windows distinguishes devices from each other by these keys.

"Boot delay" counter delay USB identification device after power up. Helps to configure the queue for devices to appear in the system after turning on or restarting the computer.

Firmware Settings

The "FIRMWARE" page is used to update your VPC device to the latest firmware (matching the version of the VPC Configuration Tool which is currently being used).

  1. Check that the correct firmware file is selected and click the "Start auto firmware update" button.
  2. The program will warn that the update process is starting 
  3. An additional prompt window will open where all the update progress will be indicated; the process is divided into several steps 
    1. [Step 1/5] Waiting for Bootloader (if it freeze try select joystick device form USB list) - the program will try to switch the device to bootloader update mode, at this moment the joystick from the system will disappear and a new device "VPC Bootloader" will appear. at this stage there may be delays if the configurator for some reason cannot connect to the device - just select the device in the list in the upper left;
    2. [Step 1/5] Bootloader OK - as soon as the bootloader is detected and connected, the process proceeds to the next step;
    3. [Step 2/5] Firmware file checking (if it freeze cancel process and select firmware file) - the program checks for the presence and access to the firmware file, if errors occur, check for the file (it may be blocked by the antivirus program);
    4. [Step 2/5] Firmware file OK - checking the firmware file is completed, the process proceeds to the next step;
    5. [Step 3/5] Update started - all checks completed successfully, the process of updating the firmware begins;
    6. [Step 4/5] Updating ... - step by page, page by page, the configurator transmits and verifies the recording of new firmware;
    7. [Step 5/5] Waiting for device (if it freeze try select joystick device form USB list) - update completed successfully, the configurator switches the device from bootloader mode to joystick mode. the device "VPC Bootloader" should disappear from the list of devices and a new device "VPC NO PROFILE" will appear. at this stage there may be delays if the configurator for some reason cannot connect to the device - just select the device in the list in the upper left;
    8. Auto firmware update done - the update process is certified, the device is ready to configure the profile.