TTi TF930 Frequency Counter Tester

This project is a Python-based GUI application designed for testing and monitoring the TTi TF930 frequency counter in a production or lab environment. Built using Tkinter, it provides an intuitive interface for both single frequency readings and timed automated tests, with detailed real-time statistics.

You can find my code here: GitHub

 

 

 

Key Features and Functionality

  • Serial Communication: Establishes and manages connections to the frequency counter via an available COM port using configurable settings (default 115200 Baud). It includes features to dynamically refresh the list of available ports and handle connection/disconnection states.
  • Production Test Parameters: Allows the user to define a Target Frequency (Hz) and a measurement Tolerance, which can be specified in either Hz or parts per million (ppm) for flexible pass/fail criteria.
  • Measurement Modes:
    • Single Read: Initiates an immediate, one-time frequency reading from the instrument.
    • Timed Test: Runs a continuous measurement cycle over a user-defined duration, ideal for stability or drift testing. A progress bar tracks the test completion.
  • Real-time Results and Status:
    • The latest measured frequency is displayed prominently with a large, high-contrast PASS/FAIL indicator based on the set tolerance.
    • A status bar provides real-time logging of connection status, test events, and errors.
  • Automated Statistics: Automatically calculates and displays key statistics from the collected data (either a single read or a timed test):
    • Min, Max, and Average frequency values.
    • Delta ($\Delta$): The difference between the Max and Min readings.
    • Drift (ppm): The frequency stability measured in parts per million over the test period.
  • Threading for Responsiveness: Utilizes the threading module to execute serial communication and timed tests in the background, ensuring the GUI remains responsive and prevents the application from freezing during long-running operations.

Example of PASS and Fail test, with tolerance of 10 vs. 0.00001 Hz.