xref: /aosp_15_r20/external/walt/README.md (revision bf47c6829f95be9dd55f4c5bbc44a71c90aad403)
1*bf47c682SAndroid Build Coastguard Worker## WALT Latency Timer ##
2*bf47c682SAndroid Build Coastguard Worker
3*bf47c682SAndroid Build Coastguard Worker**DISCLAIMER:** This is not an official Google product.
4*bf47c682SAndroid Build Coastguard Worker
5*bf47c682SAndroid Build Coastguard Worker * [Post about WALT on Android Developers Blog](http://android-developers.blogspot.ca/2016/04/a-new-method-to-measure-touch-and-audio.html)
6*bf47c682SAndroid Build Coastguard Worker * [Instructional videos showing how to use WALT](https://www.youtube.com/playlist?list=PLd6Fi7WgXfcCEJg1FDqNCoQfpWo7W3J5a)
7*bf47c682SAndroid Build Coastguard Worker * [Detailed usage instructions](docs/usage/WALT_usage.md)
8*bf47c682SAndroid Build Coastguard Worker * Mailing list - [walt-discuss](https://groups.google.com/forum/#!forum/walt-discuss)
9*bf47c682SAndroid Build Coastguard Worker * Low-traffic mailing list for major announcements [walt-announce](https://groups.google.com/forum/#!forum/walt-announce)
10*bf47c682SAndroid Build Coastguard Worker
11*bf47c682SAndroid Build Coastguard WorkerWALT is designed to measure the latency of physical sensors and outputs on phones and computers. It can currently perform the following measurements:
12*bf47c682SAndroid Build Coastguard Worker
13*bf47c682SAndroid Build Coastguard Worker * [Tap latency](docs/TapLatency.md) - time from the moment a finger-like probe touches down (or up) on the screen
14*bf47c682SAndroid Build Coastguard Worker   until the kernel timestamps an ACTION_DOWN (or ACTION_UP) event. This physical contact with
15*bf47c682SAndroid Build Coastguard Worker   the screen is timed using an accelerometer mounted on the probe.
16*bf47c682SAndroid Build Coastguard Worker * [Drag latency](docs/DragLatency.md) (scroll).
17*bf47c682SAndroid Build Coastguard Worker * [Screen draw latency](docs/ScreenLatency.md) - using a photodiode that detects whether the screen is black or white.
18*bf47c682SAndroid Build Coastguard Worker * [Audio output and microphone latencies](docs/AudioLatency.md).
19*bf47c682SAndroid Build Coastguard Worker * MIDI input and output latencies
20*bf47c682SAndroid Build Coastguard Worker
21*bf47c682SAndroid Build Coastguard WorkerThe WALT app for Android can be
22*bf47c682SAndroid Build Coastguard Worker[installed from Google Play](https://play.google.com/store/apps/details?id=org.kamrik.latency.walt)
23*bf47c682SAndroid Build Coastguard Workeror downloaded in the [releases section](https://github.com/google/walt/releases); the iOS app must be built from source.
24*bf47c682SAndroid Build Coastguard Worker
25*bf47c682SAndroid Build Coastguard Worker![WALT photo](docs/WALT_photo_audio_r07.jpg)
26*bf47c682SAndroid Build Coastguard Worker
27*bf47c682SAndroid Build Coastguard Worker
28*bf47c682SAndroid Build Coastguard Worker## Notes
29*bf47c682SAndroid Build Coastguard Worker* Hardware build instructions can be found in this repository under `hardware/`.
30*bf47c682SAndroid Build Coastguard Worker* Clock synchronization details are described [here](android/WALT/app/src/main/jni/README.md).
31*bf47c682SAndroid Build Coastguard Worker* The Android/iOS device and Teensy clocks have a tendency to diverge due to
32*bf47c682SAndroid Build Coastguard Worker  differing clock frequencies. This means they will go out of sync after
33*bf47c682SAndroid Build Coastguard Worker  several minutes. The workaround is to use the app to re-sync the
34*bf47c682SAndroid Build Coastguard Worker  clocks. Some, but not all tests in the app will sync the clocks when starting a measurement.
35*bf47c682SAndroid Build Coastguard Worker* Python code used to communicate with WALT from Linux and ChromeOS can be found
36*bf47c682SAndroid Build Coastguard Worker  [here](https://chromium.googlesource.com/chromiumos/platform/touchbot/+/master/quickstep/).
37*bf47c682SAndroid Build Coastguard Worker
38