Files
RiedelScripts/PTPLogger
bsncubed 71ab73a3f8 revert 3e88e25a87
revert Update PTPLogger/PTPLogger.sh
2026-06-17 18:33:02 +10:00
..
2026-06-17 10:31:23 +10:00
2026-06-17 18:33:02 +10:00
2026-06-17 10:30:05 +10:00
2026-06-17 10:30:05 +10:00
2026-06-15 13:33:53 +10:00
2026-06-16 20:37:54 +10:00
2026-06-17 10:30:05 +10:00

PTP Monitoring Toolkit

Overview

This toolkit provides two main components:

  • PTP log collector (bash script)
  • PTP graphing tool (Python GUI)

These tools allow you to collect PTP statistics from ptp4l and visualise timing behaviour, including RMS offset, frequency deviation, state changes, and master changes.


1. PTP Log Collector

Purpose

The log collector records PTP statistics at approximately 1 Hz and formats them similarly to ptp4l output.

Example Output

Jun 12 16:49:58 host ptp4l@media1: [6443.95] rms 62 max 191 freq -307 +/- 86 delay 1121 +/- 13

Running the Collector

Ensure ptp4l is running and accessible via a UNIX socket.

Run the script:

bash PTPLogger.sh

Requirements

  • linuxptp installed
  • pmc available
  • Access to correct ptp4l socket (e.g. /var/run/ptp4l_media1)

Common Issues

  • All values are zero: ptp4l is not synced or no master is present
  • No output: incorrect socket or domain

2. PTP Graphing Tool

Purpose

The Python GUI tool visualises collected logs and detects PTP events.

Features

  • Plots RMS offset and frequency deviation
  • Displays PTP state changes
  • Displays master clock changes
  • Adjustable time resolution
  • Handles multi-day logs

Usage

  1. Click "Open Log"
  2. Select a log file
  3. Choose time detail if required
  4. View graphs and event list

Supported Log Format

The tool requires log lines containing:

rms <value> ... freq <value>

Graph Interpretation

  • RMS: timing accuracy
  • Frequency deviation: servo behaviour
  • Blue vertical lines: state changes
  • Red vertical lines: master changes

3. Compilation (Windows)

Install PyInstaller

python -m pip install pyinstaller

Build Executable

pyinstaller --onefile --windowed PTPLogger_Graphing.py

Output

dist/PTPLogger_Graphing.exe

5. Compilation (Linux)

Install Dependencies

sudo apt install python3 python3-pip python3-tk
pip3 install matplotlib pyinstaller

Build Executable

pyinstaller --onefile --windowed PTPLogger_Graphing.py

Output

dist/PTPLogger_Graphing

Run:

./dist/PTPLogger_Graphing

6. Notes

  • The graphing tool works best with continuous ptp4l statistics output
  • If logs contain no RMS data, the graph will be empty
  • Correct socket configuration is required for pmc to collect data
  • Tested with Bolero Diagnotics, and RSP-1216 logs

Summary

The log collector gathers PTP timing data, and the graphing tool provides visual analysis for troubleshooting and performance monitoring.