Skip to main content
Gamepadla+ Icon

Gamepadla+

Gamepad Polling Rate and Latency Testing Tool (CLI & GUI)

PyPI - Version GitHub License

Gamepadla+ is a program for measuring the polling rate and synthetic latency of gamepads aka. controllers.

  • Supports DInput and XInput
  • Provides CLI (Command Line Interface) and GUI (Graphical User Interface)
  • Shows polling rate and latency metrics

GUI preview

asciicast

Installation

Prebuilt Binaries (Windows)

Download for Windows

[!TIP] Releases have attestation that they were built in CI.

From Source with uv (Windows / Linux / MacOS)

uv tool install --python 3.11 gamepadla-plus

Usage (GUI)

  1. Execute the program Gamepadla+ without any arguments.
  2. If you haven't connected any controller do it now and click Refresh.
  3. Click Test and rotate the stick you chose slowly at the edge.
  4. Optionally save the result to a JSON file or upload the result to <gamepadla.com>.

Usage (CLI)

# gamepadla-plus --help

 Usage: gamepadla-plus [OPTIONS] COMMAND [ARGS]...

 Gamepad latency and polling rate tester.

╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --install-completion          Install completion for the current shell.                                            │
│ --show-completion             Show completion for the current shell, to copy it or customize the installation.     │
│ --help                        Show this message and exit.                                                          │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ─────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ list   List controller id's.                                                                                       │
│ test   Test controller with id.                                                                                    │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Getting Started

  1. List all controllers connected with:
gamepadla-plus list
# gamepadla-plus list
Found 1 controllers
0. Xbox 360 Controller
  1. Test the controller with the id from step one (test defaults to id 0):
gamepadla-plus test 0

equals here

gamepadla-plus test
# gamepadla-plus test
100%|████████████████████████████████████████████████████████████ | 01.00 ms


  Parameter           Value
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Gamepad mode        Xbox 360 Controller
  Operating System    Windows
  Polling Rate Max.   1000 Hz
  Polling Rate Avg.   964.36 Hz
  Stability           96.44%

  Minimal latency     0.51 ms
  Average latency     1.04 ms
  Maximum latency     2.0 ms
  Jitter              0.16 ms

Options

Test Right Stick

gamepadla-plus test --stick right

Write Result to JSON File

gamepadla-plus test --out data.json

Upload Result to <gamepadla.com>

gamepadla-plus test --upload

Disclaimer

Gamepadla+ measures the delay between successive changes in the position of the analog stick on the gamepad, rather than the traditional input latency, which measures the time between pressing a button on the gamepad and a response in a program or game.
This method of measurement can be affected by various factors, including the quality of the gamepad, the speed of the computer's processor, the speed of event processing in the Pygame library, and so on.
Therefore, although Gamepadla+ can give a general idea of the "response" of a gamepad, it cannot accurately measure input latency in the traditional sense. The results obtained from Gamepadla+ should be used as a guide, not as an exact measurement of input latency.

Contributors

Notable Mentions

Gamepadla+ or gamepadla-plus is a hard fork of Gamepadla (known as Polling now).

The testing is based on the method of Christian P.: https://github.com/chrizonix/XInputTest.

License

Licensed under MIT.

Contributing

Please have a look at DEVELOPMENT.md.

Metadata

Release files for gamepadla-plus 1.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gamepadla-plus 1.8.0
File Size Uploaded
gamepadla_plus-1.8.0.tar.gz 6.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gamepadla-plus 1.8.0
File Interpreter ABI Platform
gamepadla_plus-1.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 11.0 kB

Release files / gamepadla_plus-1.8.0.tar.gz

Download URL gamepadla_plus-1.8.0.tar.gz
Size 6.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d0ebe7b3808a21f0d3cd1dc9a26a76b0f80ed7d18f751d4891e9de4260ea3c7e
BLAKE2b-256 checksum
How to use checksums
763fbec66b619aaee39f9807898ed323676b43642d5fa889488bb860a4cc5dfc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 29, 2026.

Transparency log

Release files / gamepadla_plus-1.8.0-py3-none-any.whl

Download URL gamepadla_plus-1.8.0-py3-none-any.whl
Size 4.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
516602fcbe70e829cb5a3631d019987ca70501cbee1a7b65fe7ab66cc209862a
BLAKE2b-256 checksum
How to use checksums
a017caf6e62a60d8c14d4fb9cc3943c8b977fd70b38be21f8a8c23f45725b67e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 29, 2026.

Transparency log

Release history Release notifications | RSS feed

1.9.0

2 release files

1.8.2

2 release files

This release

1.8.0 This release

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

1 release file

1.1.7

1 release file

1.1.6

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page