Skip to main content

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

Project description

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 and GUI
  • Shows polling rate and latency metrics

asciicast

Installation

uv

uv tool install gamepadla-plus

pipx

pipx install gamepadla-plus

pip

pip install gamepadla-plus

Prebuilt Binaries (Windows)

An installer and a portable release for Windows can be found on the Release Page.

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.exe --help

 Usage: gamepadla [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 list
# gamepadla list
Found 1 controllers
0. Xbox 360 Controller
  1. Test the controller with the id from step one (test defaults to id 0):
gamepadla test 0

equals here

gamepadla test
# gamepadla 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 test --stick right

Write Result to JSON File

gamepadla test --out data.json

Upload Result to <gamepadla.com>

gamepadla 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.

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 CONTRIBUTING.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gamepadla_plus-1.7.3.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gamepadla_plus-1.7.3-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file gamepadla_plus-1.7.3.tar.gz.

File metadata

  • Download URL: gamepadla_plus-1.7.3.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gamepadla_plus-1.7.3.tar.gz
Algorithm Hash digest
SHA256 7f765cd878fac9e304aa93265081b8e8ada6f39307a16d2e0bc391618bc8da94
MD5 ca8f832bdbcd2b17ab1aecf7177037c7
BLAKE2b-256 abe68c9f9c701564b2a7e3ef3c52f42ff922a3821629625ebfbf16bca5ff9ae3

See more details on using hashes here.

Provenance

The following attestation bundles were made for gamepadla_plus-1.7.3.tar.gz:

Publisher: pypi.yml on WyvernIXTL/gamepadla-plus

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gamepadla_plus-1.7.3-py3-none-any.whl.

File metadata

  • Download URL: gamepadla_plus-1.7.3-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gamepadla_plus-1.7.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bb5e93710caa16e8415860f76dc0aa171c60a6893f87295694486eebbe9c7240
MD5 a46f59e5611113e4271b83c480ab0cbb
BLAKE2b-256 c07bdcfc16afc6973aa85576ab39eeb0d1de04e2f86152573e6b93b6ce81e1e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for gamepadla_plus-1.7.3-py3-none-any.whl:

Publisher: pypi.yml on WyvernIXTL/gamepadla-plus

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page