Skip to content

cakama3a/Prometheus82

Repository files navigation

image

Description

Prometheus 82 is an open-source, Arduino-based electromechanical device designed for precise testing of gamepad input latency. Utilizing a solenoid to physically simulate button presses and analog stick movements, paired with Python software that mimics a game engine, it accurately measures the delay between a physical action and the system's response. Unlike traditional end-to-end latency testing methods using high-speed cameras, which include delays from monitors, GPU frame rendering, and vary depending on specific games, Prometheus 82 directly captures the entire signal chain from physical input to system registration, eliminating these delays. This method ensures consistent testing conditions across different testers, requiring no synchronization of equipment such as monitors, GPUs, or game engines for comparable results. This makes Prometheus 82 an ideal tool for gamepad enthusiasts, developers, and researchers seeking accurate and comparable input latency data. Reddit article

photo-collage png (1) Prometheus 82 in full assembly

Testing Process

This section outlines the testing process for the Prometheus82 device, designed to measure input latency between the controller and a PC.

Testing Procedure

  1. Test Initiation
    The Prometheus82.exe program on the PC sends a signal to the "P82" device to activate the solenoid.
  2. Solenoid Movement
    The solenoid moves and, at a specific moment, strikes a button or stick on the gamepad.
  3. Interaction Detection
    The "Kalih Mute Button" sensor at the end of the solenoid registers the moment of contact.
  4. Signal Transmission
    The "P82" device instantly sends a signal to the Prometheus82.exe program, confirming interaction with the gamepad's button or stick.
  5. Latency Timer Start
    The Prometheus82.exe program starts a timer to measure input latency.
  6. Gamepad Signal
    Starting from the moment of contact (step 3), the gamepad sends a signal to the PC, received by Prometheus82.exe.
  7. Timer Stop
    Upon receiving the gamepad signal, the timer from step 5 stops. The elapsed time represents the input latency.
  8. Test Repetition
    The program repeats this process 500 times to calculate minimum, average, and maximum latency, as well as jitter.

Joystick Latency Algorithm

Prometheus 82 uses a standardized Center-to-Edge measurement method for analog sticks to ensure consistent comparisons between different controllers.

  1. T0 (Start): The solenoid is activated to strike the stick.
  2. Physical Travel: The solenoid arm pushes the stick from the center (0%) towards the edge.
  3. T1 (Stop): The timer stops the precise moment the gamepad reports a logical value of ≥99% deviation.
  4. Calculation: Total Time - 3.5ms = Input Latency.

The "3.5ms" Compensation The software automatically subtracts a fixed value of 3.5 ms from the total time. This constant represents the standard physical travel time of the solenoid arm and joystick mechanism, which has been verified using 1000 FPS high-speed camera analysis across multiple standard controllers.

Note: Variations in a controller's physical range of motion (shorter/longer throw) or aggressive software response curves can naturally affect the result by ±1ms, as the stick may reach the logical "99%" threshold physically sooner or later. This is a characteristic of the controller's design, not a testing error.

Summary

The testing process ensures accurate measurement of the Prometheus82 device's input latency. Running the test 500 times provides comprehensive data to evaluate the device's stability and performance under real-world conditions.

How to Get Prometheus 82

You have two options to obtain a Prometheus 82 device:

  1. Build It Yourself: Follow the instructions in this repository to 3D-print the test bench, source components, and assemble the device. All necessary files and guides are provided below.
  2. Order a Pre-Built Device: Purchase a ready-to-use Prometheus 82 from our shop at Ko-fi Shop.
  3. Buy cheaper in cryptocurrency. After the purchase, be sure to write to me at [email protected]

How to Use Prometheus 82

⚠️ IMPORTANT: Upload Firmware to Arduino

Before using the device, you must flash the Arduino with the provided firmware:

  1. Open the Arduino.ino file in the Arduino IDE.
  2. Connect your Arduino board to the computer via USB.
  3. In the Arduino IDE, go to Tools → Board and select the correct Arduino model.
  4. Go to Tools → Port and select the correct COM port.
  5. Click the Upload button to flash the code to the Arduino.

2025-07-13_09-59

  1. Connect the P82 device to the computer (Upper port).
  2. Connect the power supply to the device (Lower port).
  3. Connect the gamepad to the computer (via cable, receiver, or Bluetooth).
  4. Place the gamepad in the test stand and secure it (not too tightly).
  5. Adjust the solenoid for testing the gamepad's buttons or sticks as shown.

Important

Attention: If the gamepad has stick tension adjustment, select the medium tension.

  1. Launch the testing program: https://github.com/cakama3a/Prometheus82/releases/
  2. Select the testing option for the gamepad's sticks or buttons in the program menu.
  3. Start the test and wait for it to complete.
  4. Submit the test to Gamepadla.com for detailed analysis or exit the program.

image Test results on a temporary personalized Gamepadla.com page

Test bench

The test bench itself must be printed on a 3D printer from PLA or PETG plastic. You can download the STL files of the project on thingiverse.
All parts can be printed in 3 passes in about 10 hours and 250 grams of plastic.
photo-collage png

Assembly Diagram

The diagrams show the schematic of the current Prometheus 82 tester assembly of revision 1.0.4 (not to be confused with the program revision). The blueprint also adds a solenoid and a sensor button, and the diagram exactly reflects the device on the photo. The solenoid and the sensor button are connected via a separate power cable, which can be made according to the video instructions below.
photo-collage png (2)

Assembly Instructions (For DIY)

  1. Video: Main board assembly
  2. Video: Solenoid assembly (Only available to ko-fi supporters for now)
  3. Video: Solenoid assembly v2 (For DIY Set Byers)
  4. Video: Cable assembly (A bit outdated, because now you can buy the cable ready-made)
  5. Video: Stand assembly

Components for Assembly

P82Tools copy-min (1)

Note

If the link doesn't open the product and instead displays a 404 page, write here

Main Electronic Components

Component Name Price Why Link
1 Solenoid TAU-0530T 12V $1.58 The main component for moving sticks and buttons AliExpress, Amazon
2 Arduino Nano 3.0 ATMEGA328P TypeC $2.79 Sensor and solenoid control board AliExpress, Amazon
3 Transistor IRLB8721PBF (1/5pcs) $1.81 To activate the solenoid move AliExpress, Amazon
4 Kailh Mute Button 6x6x7.3mm $2.00 To record the moment you press a button or stick on the gamepad AliExpress, Amazon
5 Diode P6KE18A (1/20pcs) $0.82 To protect the board control circuitry AliExpress, Amazon
6 Capacitor 25V 680uF 10x12 (1/5pcs) $4.38 To protect the board control circuitry AliExpress, Amazon
7 PCB Circuit Board 4x6 $0.56 To install all components of the control board AliExpress, Amazon
8 Resistor Set (3/300psc) $1.34 To protect the board control circuitry AliExpress, Amazon

Power and Charging

Component Name Price Why Link
9 Decoy Trigger $0.76 To convert 5V from the power supply to the required voltage AliExpress, Amazon
10 20W Charger $6.61 It is important to use a powerful power supply, at least 20W EU socket, US socket

Construction and Connection Materials

Component Name Price Why Link
11 Wire 30AWG (20cm/1m) $1.04 Must be elastic to connect the sensor button Aliexpress
12 XH-2.54mm Plug Opposite direction, 300mm, 4P (1/5psc) $1.13 Connects the solenoid ports to the main board AliExpress
13 Wire Connector Set XH2.54 mm (2/80pcs) $3.10 A set of ports and connectors for creating connections AliExpress
14 Solder Cable 24AWG 8cm (5/120pcs) $2.32 Wires for soldering the main control board AliExpress
15 PETG/PLA Filament 1.75mm (350/1000g) $16.99 Filament for printing test bench components AliExpress
16 Double Sided Adhesive Tape 10mm (1/5m) $2.64 Adhesive tape for mounting eva material to the stand AliExpress
17 Gecko tape 1mm (3/100cm) $1.36 To glue the power trigger to the board AliExpress
18 Cosplay Eva Foam 2mm (35x50cm) (~5% matherial) $2.84 Eva material for the stand, necessary for the gamepad to be securely fixed AliExpress
19 Heat Shrink Tube 5mm (5/100cm) $0.55 It is required when creating a cable connecting the main board with the solenoid unit AliExpress
20 PET Expandable Cable Sleeve 4mm (30/100cm) $0.32 Wrapping the cable to make it look good AliExpress
21 Brass Heat Insert Nut M3 (1/80pcs) $3.59 Required for secure fixation of the button at the end of the solenoid AliExpress
22 Screws M3 50Pcs, 8mm (7/50pcs) $2.08 To connect components printed on a 3D printer AliExpress
22a Screws M3 50Pcs, 4mm (2/50pcs) $1.08 For Solenoid fix AliExpress

Required Tools

For successful assembly, you will need the following tools:

Tool Name Why Link
23 Side Cutters 4.5 inch For cutting wires during main board assembly AliExpress
24 Soldering Iron For soldering the main board and solenoid block AliExpress
25 --- --- ---
26 Flux To make the solder behave well =) AliExpress
27 Solder To install components and wires on the board AliExpress
28 3D Printer To create a test bench, board case, and solenoid unit BambuLab A1 Mini

Notes and tips

  • Video comparison of 6V solenoid with 12V filmed at 1000 FPS and tips on power supply
  • For a 6V solenoid, you should set the power supply to 9V, for a 12V solenoid, you should set the power supply to 15V, this guarantees stable results when testing
  • Video about the solenoid's own delays and how it is reflected in the measurements at 1000 FPS
  • The permissible error between different gamepad devices with various solenoids can be up to 0.012 ms, which was verified in a test with 5 devices in different combinations (11 measurements).
  • The error from the actual result of the input delay provided by the gamepad under ideal conditions can be up to ±0.69 ms.
  • To reduce the error, you need to use a new solenoid, a fast Arduino device with its own delay of no more than 0.5 ms, and connect the device directly to the PC motherboard.
  • Both ports of the control board use Type-C interfaces, so do not confuse them, remember that the lower port is used for power, and the upper port is used to connect to a PC.
  • The movement of the solenoid should be easy, it should not cling to the inner hole. Make sure that its leg is smooth and free of snags, as this can cause friction, which increases heat, wear and tear on the component and introduces an error in the measurement.
  • Distance matters. When positioning the gamepad during tests, you need to install the stick and button as far away from the sensor as possible so that the solenoid has time to accelerate sufficiently. If you install the solenoid too close, it will give incorrect measurement results.
  • Over time, the solenoid can degrade, especially if it is frequently overheated. Therefore, it is worth getting a separate control gamepad (with stable firmware) to periodically check if the delay has changed.
  • When conducting tests, you should do it at least 2 times. It is better to recalibrate the position of the gamepad on the stand before the second test to avoid positioning errors.
  • Some Chinese Arduino devices may not work well, if something does not work, it may be worth replacing the Arduino board.
  • Some Arduino boards are slower than others. For the Prometheus 82 tester, only boards with self-delay ≤0.6 ms should be used. You can check it with this script
  • You should not modify the device in your own way, as this can skew the test results and cause an error in the latency. Currently, the code is optimally adapted for the components listed above.
  • P82 device should be plugged directly into your PC's motherboard, as the ports on the front of the case can sometimes cause problems.

License

This project operates under a dual-license model. Please choose the one that fits your use case.

  • Personal & Non-Commercial Use: You are free to build and use Prometheus 82 for personal projects, academic research, and non-monetized content. For the full terms, please see the Personal Use License.

  • Commercial Use: A commercial license is required for any organization using the device for business purposes (e.g., product R&D, quality assurance, marketing). To review the terms and pricing, please see the full Commercial License Agreement.

🛡️ Official Licensee Registry

To maintain transparency and build trust within the community, we publish a registry of all official commercial licensees. Companies listed here have purchased a Prometheus 82 Commercial Kit or an annual license, granting them the right to use the device for product development, quality assurance, and marketing.

Each license is verified and has a specific validity period.

Licensee / Identifier Plan Status Valid Until
GuliKit Enterprise ✅ Active July 31, 2026
8a4b1c9e-7d2f-4b0a-8c1f-9e6a5b3d7c0f Professional ✅ Active October 15, 2026
GameSir Professional ✅ Active December 15, 2026

How to Get Your License

Interested in using Prometheus 82 for your business? The best way to get started is with our Commercial Kit, which includes:

  • A pre-built, calibrated, and ready-to-use Prometheus 82 device.
  • Your first year's Professional License.
  • Priority technical support.

By purchasing a license, you not only ensure legal compliance but also support the continued development of this open-source project.

To purchase your kit or learn more, contact us at [email protected].

We respect our clients' privacy. Licensees can choose to be listed by their company name or a unique anonymous identifier (UUID).

Contact

[email protected]

Donation

About

Tester of input latency of sticks and buttons of gamepads - Prometheus 82

Resources

License

Stars

Watchers

Forks

Packages

No packages published