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