Flight Stick and HOTAS Test - Joystick Axis Calibration Guide

Test your flight stick, joystick, or HOTAS in your browser using the Gamepad API. Read axis values, hat switch position, and throttle range without any software install.

Flight Stick and HOTAS Test - Joystick Calibration in Browser

For flight stick checks, map a joystick or HOTAS (Hands On Throttle And Stick) controller through the browser's Gamepad API. These low-level input devices report buttons and axes, including devices beyond standard gamepads such as joysticks, driving wheels, and pedals.1 A typical gamepad has two analog sticks producing four axes: LX, LY, RX, and RY. A flight stick commonly exposes additional axes: X and Y for the main stick movement, a Z-axis for twist or yaw rotation, a throttle axis on a separate handle, and sometimes rudder pedal axes if pedals are connected.2

Because the Gamepad API exposes axes as one flat array, a complex HOTAS can report many values that the browser does not label for you.3 This tester shows the first two pairs as canvas visualizations and lists all reported axis values numerically below, including axes 4 and above for throttle, hat, and rudder inputs.

What to look for

  • 0.06

Opens the Gamepad Tester with this page's reference values shown at the top of the tool.

Open in the tool →

Identifying which axis is which

To map your physical controls to their axis numbers, move one control at a time and watch which value changes in the list. Move the main stick left and right, and the changing axis is your X-axis. Move the throttle lever, and the changing axis is the throttle. This process takes under a minute and is worth doing before your first flight session.

Mapping one control at a time

The Gamepad API normalizes axis values to a -1.0 to 1.0 range, so a centered control should sit near 0.0 and a full throw should approach one end of that range.1 HOTAS manufacturers may expose the throttle as a dedicated axis, so testing before a session confirms that the throttle reaches both ends of its range cleanly, that its direction matches your simulator mapping, and that the main stick returns to center reliably.4

After the stick registers in the tester, press a few buttons and move the main stick through its full travel so you can confirm the page is reading live values before you build the axis map. A control that produces no change in the list may not be registered with the browser yet, so reseat the connection before assuming the hardware is faulty, because an unregistered device reports nothing at all.

Hat switch encoding and Z-axis drift

To test a hat switch, push it in each cardinal and diagonal direction and note the axis values for each position. Different manufacturers encode hat switch positions differently: some use evenly spaced values, some use raw angle-to-float conversions, and some use two axes in XY format.5 DirectInput defines POV hat position in hundredths of a degree clockwise from north, with 0, 9000, 18000, and 27000 representing up, right, down, and left.2 Press all eight directions to build a complete map before configuring your in-sim controls.

Building a complete hat-switch map

A flight stick with Z-axis drift in the twist grip can cause constant yaw rotation in aircraft even when the stick is untouched, especially at cruise altitude. A persistent non-zero Z-axis reading at rest with the twist grip released points to drift in the twist mechanism, and the same potentiometer wear that affects thumbsticks can also affect joystick mechanisms.6

Throttle axis identification and range verification

Throttle controls on HOTAS hardware appear as dedicated controls in the Gamepad API, separate from the main stick X and Y axes. To identify your throttle axis, move the throttle lever slowly from its rearmost position to its furthest forward position and watch the axis list for the one that changes. The changing axis is your throttle. Note its number and its range: most browser axes report -1.0 at one end and 1.0 at the other, while analog trigger-style inputs are commonly represented as 0.0 to 1.0 values in the Gamepad API button model.7 Confirm that the reported direction matches your simulator mapping before you save bindings.

A throttle that does not reach the full expected range at either end of its physical travel has a potentiometer calibration issue. Windows Game Controllers can remap the physical range to the expected output, so use the raw values from this tester to determine the actual hardware range before entering calibration settings.

When the throttle reads less than full range

Throttle drift appears as a non-zero reading at what you intend as zero-thrust. Test for it by moving the throttle to your intended idle position, releasing it, and reading the axis value for 10 seconds. A value that remains away from your intended idle position will register as slow throttle input in most aircraft. If the value still does not reach the expected endpoint after calibration, the throttle channel may need repair or replacement rather than another software adjustment.

When to use this

Run this before a flight simulation session to verify all axes are responsive, confirm hat switch encoding, and map every axis on your flight stick before takeoff.6

Examples

Identifying throttle axis on a HOTAS

Before
Moving throttle lever from full back to full forward: Axis 2 changes from -1.0 to 1.0
After
Throttle confirmed as Axis 2 - full range confirmed and direction noted

If the throttle only reaches 0.8 at maximum forward throw, the potentiometer is out of calibration or physically limited.

Hat switch direction encoding on a flight stick

Before
Hat pushed up: Axis 6 = -1.0 / Hat pushed right: Axis 6 = 1.0, Axis 7 = -1.0 / Hat pushed down: Axis 7 = 1.0
After
(XY-encoded hat switch confirmed - map each value to in-game view commands accordingly)

Hat switches use different encoding schemes across manufacturers. Test all 8 directions to build a complete map before configuring in-sim controls.

Z-axis drift on a twist-grip joystick

Before
Axis 2 (Z/Yaw): 0.06234 at rest with twist grip fully released and untouched
After
Same value after cleaning and reseating - hardware drift confirmed in the twist potentiometer

A 0.06 `Z-axis` drift causes slow yaw rotation in most flight sims. This requires repair or replacement of the twist mechanism.

Sources
  1. 1.

    MDN, "Gamepad.axes," developer.mozilla.org, December 2025. https://developer.mozilla.org/en-US/docs/Web/API/Gamepad/axes

  2. 2.

    Microsoft Learn, "DIJOYSTATE2 Structure," learn.microsoft.com, September 2011. https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ee416628(v=vs.85)

  3. 3.

    W3C, "Gamepad," w3.org, July 2025. https://www.w3.org/TR/gamepad/

  4. 4.

    Logitech Support, "Recalibrate the X56 H.O.T.A.S. axes: RegEdit," support.logi.com, accessed June 2026. https://support.logi.com/hc/en-150/articles/360023179094-Recalibrate-the-X56-H-O-T-A-S-axes-RegEdit

  5. 5.

    Linux Kernel Documentation, "Linux Gamepad Specification," docs.kernel.org, accessed June 2026. https://docs.kernel.org/input/gamepad.html

  6. 6.

    iFixit, "ALPS RKJXV1224 Variants Teardown," ifixit.com, February 2021. https://www.ifixit.com/Teardown/ALPS+RKJXV1224+Variants+Teardown/140803

  7. 7.

    MDN, "GamepadButton.value," developer.mozilla.org, December 2025. https://developer.mozilla.org/en-US/docs/Web/API/GamepadButton

FAQ

Yes. CapyToolkit shows canvases for the first two pairs of axes but lists all reported axis values numerically below. Scroll down to see the complete axis readout including axes 4 and above.

No, the root cause and fix are similar. CapyToolkit shows the Z-axis as a resting value, and the Z-axis twist grip uses a potentiometer just like thumbstick axes. Wear or debris can cause non-zero readings at rest. Clean with isopropyl alcohol as a short-term measure or replace the twist mechanism for a permanent fix.

Yes. Different manufacturers encode hat switch positions differently. Some use evenly spaced values, some use raw angle-to-float conversions, and some use two axes in XY format. Press each direction in turn to map the encoding for your specific hardware.

A maximum below 1.0 at full physical throttle is a calibration issue, not drift. The potentiometer endpoint does not match the expected full-scale value. Most flight simulation software includes axis calibration to remap the actual physical range. Check the joystick configuration in the sim software first before assuming hardware failure.

Scroll down below the stick canvases on the main gamepad tester page. Below the deadzone controls and button grid, all reported axes are listed numerically. The number of entries reflects everything the Gamepad API reports for your device.

Additional resources

Guides

PlayStation Controller Test: DualShock 4 and DualSense Test a DualShock 4 or DualSense for analog stick drift, read the trigger axes, and document the result for a repair, with the model-specific notes for both PlayStation controllers in one place. Nintendo Controller Test: Switch Pro Controller and Joy-Con Drift Test a Nintendo Switch Pro Controller or Joy-Con for stick drift, read the trigger axes, and document the result for Nintendo's repair process, with the per-model notes for both controllers in one place. Third-Party Controller Test: 8BitDo, Logitech, PowerA and Razer Test an 8BitDo, Logitech, PowerA or Razer controller for stick drift, trigger range and button response, and see how each third-party pad presents itself to the browser Gamepad API. Xbox Controller Drift Test and Per-Model Notes Test an Xbox controller for analog stick drift across the Xbox 360, Xbox One, Xbox Series X/S and Elite Series 2, and see what each generation changes about the same test. Controller Deadzone Test and Calibration Guide Understand and calibrate your controller deadzone using live axis values. Learn how to match your deadzone setting to the specific game you are testing against. Controller Not Detected in Browser Fix a controller that is not showing up in your browser. Step-by-step troubleshooting for USB and Bluetooth gamepads on Windows, Mac, and Linux. Controller Trigger Test: Diagnosing LT and RT Issues Test your controller triggers in your browser. Diagnose triggers that do not register, do not reach full range, or do not return to zero after release. Flight Stick and HOTAS Test - Joystick Axis Calibration Guide Test your flight stick, joystick, or HOTAS in your browser using the Gamepad API. Read axis values, hat switch position, and throttle range without any software install.