Skip to content
JoystickTester.com
Analog Trigger Diagnostic

Analog Trigger (LT / RT) Calibration Test

Inspect live 0.000–1.000 float values and 0%–100% pull bars for Button 6 (Left Trigger) and Button 7 (Right Trigger). Compare smooth analog travel against digital switch triggers and hair-trigger stops.

Methodology & Scope•100% Client-Side Browser Diagnostics•W3C Gamepad API
No Controller Detected Yet?Try Virtual Simulator

Plug in your controller & press any button, or test using keyboard emulation / auto demo.

No Controller Detected YetPlug in via USB or Bluetooth & press any button
Left Trigger (LT)(Button 6)
No Controller
—
—%
0.0000.5001.000
Right Trigger (RT)(Button 7)
No Controller
—
—%
0.0000.5001.000
Need complete controller diagnostics?

Test all buttons, sticks, triggers, deadzones, and developer telemetry together.

Open Full Tester

Overview & Diagnostic Methodology

Use the side-by-side Left and Right Trigger meters below to check how your triggers behave across their full physical stroke. Proportional analog triggers (such as Xbox LT/RT and PlayStation L2/R2) should climb smoothly through intermediate decimals, whereas digital triggers (such as Nintendo Switch ZL/ZR or pro controllers with microswitch hair-trigger locks) jump directly from 0.000 to 1.000.

Testing trigger stops or incomplete pull range? Learn how analog vs. digital triggers, hair-trigger locks, and saturation thresholds work.
Read Trigger Guide

Analog vs. Digital Triggers, Saturation Limits, and Non-Standard HID Mappings

Proportional Analog Triggers vs. Digital Switch Triggers: Not all controller triggers measure partial pull depth. Xbox Wireless controllers (LT/RT) and PlayStation DualSense/DualShock 4 controllers (L2/R2) use Hall-effect magnetic sensors or potentiometers that report continuous decimals from 0.000 to 1.000 as you squeeze. By contrast, Nintendo Switch Pro Controllers and Joy-Cons use physical digital switches on ZL and ZR—they have no intermediate travel sensor and will jump straight from 0.000 (0%) to 1.000 (100%) the instant the switch clicks. Many third-party pro controllers also include mechanical hair-trigger locks that switch the trigger from a full analog sweep to a tactile microswitch click.

Diagnosing Incomplete Saturation (< 100%) and Resting Creep (> 0.000): Two physical faults commonly affect analog triggers. First, if pulling RT or R2 all the way to the plastic shell stops the gauge at 0.820–0.920 instead of lighting up "100% PULL", an internal silicone bumper pad may have shifted, or a mechanical trigger-stop slider is engaged without matching firmware recalibration—preventing full throttle in racing games or sprint/fire lockouts in shooters. Second, if releasing the trigger leaves the readout hovering at 0.025–0.080 with the "ACTIVE" badge lit, a weakened return spring or shifted magnet/potentiometer zero-point is keeping the trigger slightly engaged.

Why Some Controllers Display "Raw HID (Unmapped)" on B6 and B7: This diagnostic reads buttons[6] and buttons[7] when the browser reports Gamepad.mapping === "standard". Older DirectInput gamepads, flight throttles, racing pedals, or PlayStation controllers on certain Linux/macOS configurations may report mapping: "". On those unmapped HID devices, the browser sometimes places trigger travel on raw axes (such as axes[2] or axes[5] ranging from -1.000 to +1.000) or different button numbers. Rather than displaying misleading numbers on LT/RT, this card flags "Raw HID (Unmapped)" and directs you to the raw axis and button arrays.

Diagnostic Notice: Trigger Stop Check: If your controller has physical trigger-stop switches on the back shell, test each trigger in both the full-travel and short-travel positions. Some controllers automatically rescale the short stop to 1.000 in firmware, while others physically block the sensor around 0.450–0.650 until you recalibrate in the manufacturer utility.

Measurement & Telemetry Classification

Technical distinction between direct hardware reads, client-side algorithms, and educational thresholds.

Real Measurement
  • GamepadButton.value (0.000 to 1.000) and GamepadButton.pressed (true/false) for standard indices buttons[6] and buttons[7].
  • Active Gamepad.mapping state ("standard" vs. "") and detected device profile (Xbox, PlayStation, or Nintendo Switch).
Calculated Metric
  • Rounded integer percentage (Math.round(value * 100)) and fill-bar width for each trigger.
  • Full-pull confirmation threshold (value >= 0.98) displayed via the green "100% PULL" badge.
Educational Context
  • Why Nintendo Switch ZL/ZR triggers jump from 0.000 to 1.000: Switch Pro and Joy-Con controllers use digital contact switches rather than analog sensors.
  • How mechanical trigger stops and hair-trigger locks affect maximum output if controller firmware does not rescale the shortened stroke.
  • Why non-standard DirectInput/HID controllers show "Raw HID (Unmapped)" here when the browser places trigger data on raw axes instead of B6/B7.

Key Diagnostic Parameters

Raw Trigger Value (0.000–1.000)
Reads buttons[6].value and buttons[7].value directly to three decimal places on every animation frame.
Full Pull Saturation (100% PULL)
Lights up when trigger output reaches 0.980–1.000, confirming the sensor reaches full output at the physical stop.
Analog vs. Digital Step Response
Distinguishes continuous potentiometer/Hall-effect sweeps from binary 0.000-to-1.000 digital switch triggers.

How to Test Step-by-Step

  1. 1Connect your controller and press any button so the browser populates navigator.getGamepads().
  2. 2With both triggers completely released, verify that Left Trigger (B6) and Right Trigger (B7) rest at 0.000 (0%) and that the "ACTIVE" badge is off.
  3. 3Slowly squeeze Left Trigger (LT / L2) from rest to full bottom-out: watch whether the readout climbs smoothly through intermediate decimals (analog sensor) or jumps straight from 0.000 to 1.000 (digital switch).
  4. 4Confirm that the green "100% PULL" badge lights up when each trigger is pressed firmly against its physical stop (value >= 0.980).
  5. 5Release both triggers quickly and confirm they snap cleanly back to 0.000 without lingering at a low non-zero value.

What This Test Verifies

Side-by-Side Button 6 (Left) & Button 7 (Right) 3-Decimal Float Readouts (0.000–1.000)
Live 0% to 100% Visual Progress Bars & Integer Percentage Display
Automatic "100% PULL" Saturation Badge (Triggered at >= 0.980)
Live "ACTIVE" Pressed-State Indicator for Resting Creep Detection
Profile-Aware Labels for Xbox (LT/RT), PlayStation (L2/R2), and Switch Digital (ZL/ZR)
Safe "Raw HID (Unmapped)" Detection When B6/B7 Are Not Standard-Mapped
Analog & Digital Trigger Button Specifications (B6 & B7)

Under W3C Standard Gamepad mapping, Left Trigger (LT / L2 / ZL) maps to buttons[6] and Right Trigger (RT / R2 / ZR) maps to buttons[7]. Analog triggers report continuous floating-point values from 0.000 (released) to 1.000 (bottomed out), whereas digital triggers (such as Nintendo Switch ZL/ZR) step directly between 0.000 and 1.000.

MDN Web Docs: GamepadButton.value Proportional Pressure Property

Specifies how proportional analog triggers and binary switches report 0.0–1.0 values.

W3C Gamepad API §4: Standard Trigger Indices (B6 & B7)

Defines canonical L2/LT (B6) and R2/RT (B7) positions in standard browser mappings.

Frequently Asked Questions

Why do my triggers jump straight from 0.000 (0%) to 1.000 (100%) with no numbers in between?

Your controller is sending digital switch inputs rather than proportional analog values. This is normal hardware behavior on Nintendo Switch Pro Controllers and Joy-Cons (where ZL and ZR are digital buttons), on arcade fightpads, and on pro controllers that have microswitch hair-trigger locks enabled. It can also happen on PC if Steam Input or a remapper is configured to map your analog trigger as a digital button.

Why does the trigger card show "Raw HID (Unmapped)" and "—" instead of a percentage?

Your browser detected the controller with an empty mapping string (mapping: "") instead of the W3C "standard" layout. When a device uses non-standard DirectInput or raw HID descriptors, its triggers may be wired to raw axis channels or different button indices rather than B6 and B7. To avoid guessing and showing false trigger readings, this tool displays "Raw HID (Unmapped)"; you can inspect the raw axis and button arrays in our Gamepad Tester.

Why does my trigger stop around 85%–93% instead of lighting up "100% PULL"?

If you are pressing the trigger firmly against the shell and the value caps below 0.980, check two things: first, verify that any physical hair-trigger stop slider on the back of the controller is switched off. Second, if no stop is engaged, the internal silicone cushion pad or sensor range has shifted, which you can re-scale using Windows joy.cpl, Xbox Accessories, PlayStation Accessories, or Steam Input calibration.

What does it mean if my trigger stays at 0.020–0.060 when my finger is completely off it?

A non-zero resting value means the trigger sensor has not returned to electrical zero. This can be caused by a fatigued torsion return spring, dust in a potentiometer gear, or a slightly shifted Hall-effect magnet after a drop. Games with very sensitive trigger thresholds may interpret that small resting value as continuous aiming or braking unless you recalibrate or add a small trigger deadzone.

Explore Other Tools
Full Laboratory