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.

Controller Trigger Test: LT RT Not Working or Not Registering

Controller triggers, LT and RT on Xbox-layout controllers and L2 and R2 on PlayStation-layout controllers, are analog inputs that report values between 0.0 at full release and 1.0 at maximum press depth.1 The Gamepad API exposes analog button pressure through button objects with a value property, while browser and controller mappings can vary by platform.2 On Windows, XInput exposes left and right triggers as separate analog controls before the browser maps them into the Gamepad API layout.3 This tester shows a vertical fill bar and the raw numeric value for each trigger.

Three specific issues are diagnosable here. Understanding which issue you have depends on whether the problem is a missing response, a limited range, or a non-zero resting value. For reliable results, press each trigger slowly from rest to full travel, then release it fully and wait five seconds before recording the resting value. This catches limited range and return-to-zero issues in the same pass. Repeat the pass twice if the first result looks inconsistent under normal pressure.

What to look for

  • 0.02, within tolerance
  • under 0.05
  • 0.85 instead of 1.0

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

Open in the tool →

Trigger not registering at all

If pressing LT produces no change in the fill bar or value, the trigger potentiometer or switch has failed, or there is a wiring fault between the trigger sensor and the controller PCB. Before assuming hardware failure, confirm the trigger works in another application or in joy.cpl on Windows. Because this is a hardware issue, browser-level troubleshooting will not resolve it.3

Checking whether the signal reaches the browser

One useful pre-check: look at the raw axis list on this page while pressing the trigger. If any axis changes at all during the press, the trigger signal is reaching the browser. No change across all axes and buttons on a press confirms the sensor is not producing output, the same verify the trigger signal reaches the browser step that separates a sensor fault from a mapping glitch. This pre-check separates a hardware sensor failure from a browser mapping issue before you start replacing components. If the raw axis list shows no change during the press but the trigger works in joy.cpl, the controller is likely in DirectInput mode and the browser is not mapping its trigger inputs correctly. Switching the controller to XInput mode often resolves this mapping gap because the browser Standard Gamepad mapping aligns directly with the XInput button indices.1

After the controller registers, run the same slow press on both LT and RT and watch the raw axis list update for each one before drawing conclusions. A trigger that moves in joy.cpl but stays silent on the page is almost always a mode or mapping problem rather than a dead sensor, so switch to XInput before assuming the hardware has failed.

Trigger with reduced maximum range

If you press the trigger to its physical stop and the value reaches only 0.6 or 0.7 rather than 1.0, the potentiometer has shifted out of calibration or the trigger housing is limiting travel. Before diagnosing a fault, confirm the hair trigger lock is disengaged, because Elite controllers intentionally limit trigger range when a lock is set.4

Separating lock behavior from trigger damage

Press very slowly from release to full press and watch the fill bar climb. A smooth climb that stops early confirms a mechanical or calibration limit at the sensor. A fill bar that jumps directly from 0.0 to 1.0 with no intermediate values indicates a digital trigger rather than an analog one, which can happen when a controller lacks an analog trigger sensor.2

Trigger that does not return to zero

After you fully press and then completely release LT or RT, the axis value reported by the Gamepad API should drop back to exactly 0.0 or within a few thousandths of it once the internal mechanism has fully settled. A persistent residual reading above 0.02 after the trigger has been released for several seconds suggests a weakened return spring inside the trigger assembly or debris lodged in the mechanism that physically prevents the potentiometer from reaching its true zero position.5

Why residual trigger values matter

In racing and flight simulation games, a trigger that does not fully return to zero at rest can register as a constant very light throttle or brake input if the game applies a low trigger deadzone threshold, causing the vehicle to slowly accelerate or decelerate without any intentional player input. Cleaning the trigger gap carefully with compressed air can often resolve small residual values caused by accumulated dust or pocket lint blocking the mechanism. Check thoroughly for debris in the trigger gap first before considering a spring replacement, because debris clearing is a far simpler and more accessible repair than disassembling the trigger assembly.5

Comparing analog and digital trigger behavior

Some controllers ship with digital LT and RT triggers that read only 0.0 or 1.0 with no intermediate values, while others use analog potentiometers that produce a continuous range. You can identify which type your controller has by pressing a trigger very slowly while watching the fill bar and numeric value. Analog triggers climb steadily through 0.1, 0.3, 0.5, and so on. Digital triggers jump directly from 0.0 to 1.0 at the physical actuation point with nothing in between.

For racing games and flight sims that use trigger pressure for throttle control, analog triggers are necessary for precise input. A digital trigger limits your throttle or braking to two states: off and maximum. Confirming which type you have explains why a controller that works for most genres feels imprecise in simulation titles.

When to use this

Run this when your LT or RT feels stuck, does not register in games, reaches maximum axis value earlier than expected, or leaves a residual non-zero reading after you fully release it.

Examples

LT reaching only 0.65 at full press (no Elite lock engaged)

Before
Axis 5 (LT): maximum reading 0.65 when trigger is pressed as far as it will physically go
After
No change after pressing harder, 0.65 is the physical limit for this trigger

A max value below 1.0 without a hair trigger lock active indicates the trigger potentiometer is out of calibration or the trigger channel is damaged.

RT returning to 0.04 at rest after release

Before
Axis 5 (RT): 0.04312, measured 10 seconds after fully pressing and releasing the trigger
After
Same reading after another 10 seconds of rest, not a transient value

A residual above 0.02 after release registers as a constant tiny throttle input in racing games. Check for debris or replace the trigger return spring.

DualSense L2 appearing as axis instead of button on Windows

Before
Button 6 (L2): shows no analog range in the button grid / Axis 4: changes from 0.0 to 1.0 when L2 is pressed
After
(expected behavior on some Chrome and Windows combinations, not a fault)

This is a browser and OS interaction with the DualSense USB HID descriptor. Both representations report the same trigger depth information.

Sources
  1. 1.

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

  2. 2.

    Mozilla Developer Network, "GamepadButton: value property," developer.mozilla.org, accessed June 2026. https://developer.mozilla.org/en-US/docs/Web/API/GamepadButton/value

  3. 3.

    Microsoft, "XINPUT_GAMEPAD structure (xinput.h)," learn.microsoft.com, October 2023. https://learn.microsoft.com/en-us/windows/win32/api/xinput/ns-xinput-xinput_gamepad

  4. 4.

    Xbox, "Xbox Elite Wireless Controller Series 2," xbox.com, accessed June 2026. https://www.xbox.com/en-US/accessories/controllers/elite-wireless-controller-series-2

  5. 5.

    Microsoft, "Getting Started With XInput in Windows applications," learn.microsoft.com, October 2023. https://learn.microsoft.com/en-us/windows/win32/xinput/getting-started-with-xinput

FAQ

No. CapyToolkit reads the trigger axis value, which shows how far the trigger is pressed physically. The adaptive trigger resistance on the DualSense is controlled through haptic feedback APIs separate from the Gamepad API, so this tester cannot read or control the resistance motor.

A residual reading of 0.02 after release is within the typical calibration tolerance for most analog triggers. Most games apply a small threshold to ignore values under 0.05 at rest. If LT consistently reads above 0.05 without being pressed, that is worth monitoring.

This could mean the trigger is a digital switch rather than analog, which is common on some budget controllers with trigger-lock or microswitch-style designs. CapyToolkit helps you see that difference: press very slowly and watch for intermediate values. If the value jumps without any middle range, the trigger is digital by design or the analog track has failed.

A maximum consistently below 1.0 at full physical press suggests the trigger potentiometer or ADC calibration is off. Press as hard as the mechanism allows and note the peak value. If it consistently tops out at 0.85 across multiple presses, the trigger mechanism may need replacement or factory recalibration.

The Xbox Accessories app has a limited calibration check but does not offer manual trigger recalibration. Microsoft does not provide a public trigger recalibration procedure. Third-party tools like reWASD allow custom axis scaling as a software workaround, but they adjust the signal after the fact rather than fixing the hardware reading.

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.