Weishi Timegrapher Data Logger
Project Overview
This project transforms a standard Weishi No. 1000 timegrapher into an automated data logging system using a Logitech USB webcam and Python software.
The idea is simple: instead of manually reading and recording measurements from the timegrapher display, a webcam captures the screen while Python software extracts and saves the values automatically.
This makes it possible to monitor the performance of mechanical watches over extended periods, compare measurements, and analyze changes over time.
The entire system works without modifying the timegrapher itself.
What Is a Timegrapher?
A timegrapher is a precision measuring instrument used by watchmakers and watch enthusiasts to evaluate the performance of mechanical watches.
Mechanical watches use a balance wheel and hairspring to regulate timekeeping. A timegrapher listens to the ticking sounds produced by the watch movement using a sensitive microphone.
By analyzing the timing between these sounds, the instrument calculates several important parameters:
Rate (seconds/day)
Indicates how fast or slow the watch is running, expressed in seconds per day.
For example:
- +10 s/d means the watch is gaining approximately 10 seconds per day.
- −10 s/d means the watch is losing approximately 10 seconds per day.
- 0 s/d indicates no measured daily rate deviation under the current test conditions.
Amplitude (degrees)
Measures the estimated angular rotation of the balance wheel between its extreme positions and its resting position.
Amplitude provides useful information about the energy delivered to the balance wheel and the condition of the watch movement.
Beat Error (milliseconds)
Measures the timing difference between the two alternating beats of the watch movement.
A low beat error generally indicates that the balance wheel is oscillating more symmetrically.
These measurements are essential for regulating, servicing, and troubleshooting mechanical watches.
How the Project Works
The Weishi No. 1000 has a built-in LCD screen that displays the measurement results. However, the instrument does not provide a convenient built-in method for automatically exporting these values to a computer.
This project solves that limitation using optical character recognition (OCR).
A Logitech webcam is positioned approximately 10 cm from the display. The camera continuously captures images, which are processed by a Python application running on Windows 11.
The software uses two main libraries:
- OpenCV for capturing, rotating, cropping, and processing the webcam image.
- Tesseract OCR for recognizing the numerical values displayed on the timegrapher.
Three separate regions of the screen are analyzed independently: Rate, Amplitude, and Beat Error.
Because the Weishi uses a pixelated LCD display, standard OCR can sometimes misinterpret numbers, plus/minus signs, or decimal points.
To improve accuracy, the program applies multiple image-processing techniques, including Gaussian blur, median filtering, thresholding, and specialized character recognition.
The Rate and Amplitude recognition routines have been specifically optimized for the Weishi display.
Automatic Data Logging
The software automatically records the following measurements:
- Rate (s/day)
- Amplitude (degrees)
- Beat Error (ms)
- Date and time of each measurement
All measurements are saved to a CSV file, which can be opened in Microsoft Excel or imported into other data analysis software.
The logging interval is adjustable from 10 to 3600 seconds, allowing measurements to be collected as frequently as every 10 seconds or as infrequently as once per hour.
If a value cannot be reliably recognized, the software records 99 as a placeholder rather than leaving the field empty.
The software records measurements at the selected interval even when values remain unchanged.
Live Monitoring and Debugging
The program includes a live webcam preview with three debugging panels:
Rate | Amplitude | Beat Error
Each panel displays the captured section of the LCD screen alongside the OCR result.
This makes it easy to identify incorrect readings and improve recognition accuracy.
Additional features include:
- Automatic 180-degree image rotation
- Manual camera focus adjustment
- Adjustable selection areas for each measurement
- Automatic saving of OCR debugging images
- Persistent configuration settings
- Continuous CSV data logging
Hardware and Software Requirements
The setup requires only a few components:
- Weishi No. 1000 timegrapher
- Logitech USB webcam (or another compatible webcam)
- Windows 11 PC
- Python 3
- OpenCV
- Tesseract OCR
- NumPy
- pytesseract
The webcam simply needs to be positioned securely in front of the display, with sufficient focus to make the LCD characters readable.
No electronic modifications, soldering, or connections to the internal circuitry of the timegrapher are necessary.
Why I Built This
The motivation behind this project was to make it easier to record and analyze mechanical watch performance without manually writing down measurements.
By collecting data automatically, it becomes possible to observe how a watch behaves over time, compare different testing conditions, and create graphs showing changes in Rate, Amplitude, and Beat Error.
The project also demonstrates how inexpensive computer vision technology can extend the capabilities of existing measuring instruments that lack digital data interfaces.
Future Possibilities
Potential future improvements include automatic graph generation, statistical analysis, measurement session management, and support for other timegrapher models.
The same approach could potentially be used with other electronic measuring instruments that display numerical results but lack a digital output.
The goal is to make mechanical watch performance measurements easier to collect, visualize, and analyze using simple, affordable hardware and open-source software.
Bitroller