Measure End-to-end System Latency

frameprobe measures the time between a mouse click and the pixels changing on your screen.
Hardware, firmware and CLI tools are open source.

03 / Hardware

Open source hardware and software

The schematics, PCB design, firmware, printable enclosure, capture tools, and analyzer are available on GitHub. Build the device yourself, inspect how it measures, or change it.

frameprobe strapped over the corner of a monitor running a game, its USB cable led up over the bezel.
Strapped over the screen during a capture.

Firmware features

24 µs timing resolution
The firmware records 12,000 samples per click, with under 0.05 ms of instrument error.
1000 Hz HID sampling rate
The device registers as an ordinary USB mouse polled every millisecond, just like a gaming mouse.
Refresh-phase decorrelation
Clicks are spaced with ±10 ms of random jitter. This avoids synchronizing with the screen's refresh cycle, which would skew the results.
PWM detection
Screens that dim by strobing their backlight defeat naive threshold detection. The analyzer recognizes the strobe and filters it out.
Back of the white frameprobe enclosure, showing four screen-contact pads, strap loops, and the photodiode through its central aperture.
Soft cloth feet to protect the screen.
Render of the green 30 by 48 millimeter frameprobe sensor board with its photodiode and analog front end.
The PCB design.

01 / Software

Plan, Measure, Analyze

The desktop app guides you through a benchmarking workflow and renders graphs of the results. It runs on Linux, macOS, and Windows.

The frameprobe desktop app Plan view, showing Display server, DXVK, and Mode dimensions alongside the generated eight-case test matrix.

01 / Plan

Define your test cases

Plan your benchmark by defining what you want to test. This gives you a structured list of test cases to work through.

The frameprobe desktop app Measure view, with a connected USB device, recording controls, and eight completed test cases.

02 / Measure

Run your tests

Connect the USB device, set up your testing environment, choose a test case, and start. The app also supports running quick measurements, adding notes to test cases and importing test results from the command line tool.

The frameprobe desktop app Analysis view, showing ranked latency bars, overlaid distributions, and a detailed statistics table.

03 / Analyze

Analyze the results

Sort cases by median latency, compare the range from P5 to P95, view the distribution of all readings, or inspect the statistics table.

Showing command-line interface for running tests.

04 / Headless

Run tests and analyze without a GUI

Start tests on a remote system from the command line. Analyze from the CLI. Headless results can be imported into the desktop app for further analysis.

04 / Interest

Would you buy one?

I am trying to gauge interest before I commit to a production run. If you would buy one, and want to hear from me when you can, leave your email address below. Your email address will only ever be used to contact you about frameprobe.

Interested but don't want to leave your email address? You can still just click the button, I will get notified.

This is not a newsletter signup and no service or person other than myself will see or process your address.