Skip to main content

IEEE-compliant signal analysis and protocol reverse engineering: waveform measurements, multi-protocol decoding, state machine inference, CRC recovery

Project description

TraceKit

Version Python License IEEE

IEEE-compliant signal analysis and protocol reverse engineering toolkit

TraceKit provides comprehensive waveform analysis, multi-protocol decoding (16+ protocols), and protocol reverse engineering capabilities. Features include automatic state machine inference, CRC parameter recovery, field boundary detection, and Wireshark dissector generation. Supports oscilloscope captures, logic analyzer data, and network packet traces with industry-standard measurement accuracy (IEEE 181, 1241, 2414).


Why TraceKit?

Challenge TraceKit Solution
Unknown protocol on captured waveform Protocol inference with automatic parameter detection
Analyzing proprietary bus protocols State machine learning from captured traffic
Validating signal integrity IEEE-compliant measurements (181, 1241, 2414)
Debugging embedded systems 16+ protocol decoders (UART, SPI, I2C, CAN, JTAG...)
EMC pre-compliance testing CISPR/FCC limit mask testing with reports
Processing large captures Streaming analysis and lazy loading

Key Capabilities

  • Waveform Measurements - Rise/fall time, frequency, duty cycle, overshoot (IEEE 181-2011)
  • Protocol Decoders - UART, SPI, I2C, CAN, CAN-FD, 1-Wire, LIN, JTAG, SWD, I2S, USB, HDLC, Manchester, FlexRay
  • Spectral Analysis - FFT, PSD, THD, SNR, SINAD, ENOB, spectrograms, wavelets (IEEE 1241-2010)
  • Signal Integrity - Jitter decomposition, eye diagrams, S-parameter analysis, TDR (IEEE 2414-2020)
  • File Format Support - Tektronix WFM, Rigol, Sigrok, VCD, PCAP, TDMS, WAV, CSV, HDF5, Touchstone
  • Power Analysis - AC/DC power, efficiency, ripple, SOA testing, power factor
  • EMC Compliance - CISPR/FCC/CE limit mask testing with automated reporting
  • Protocol Inference - CRC reverse engineering, L* active learning, field boundary detection

Quick Start

Installation

# Using pip
pip install tracekit

# From source
git clone https://github.com/lair-click-bats/tracekit.git
cd tracekit
pip install -e ".[dev]"

30-Second Example

import tracekit as tk

# Load waveform (auto-detects format)
trace = tk.load("capture.wfm")

# Make measurements
print(f"Rise time: {tk.rise_time(trace):.2e} s")
print(f"Frequency: {tk.frequency(trace):.2f} Hz")

# Decode protocol
uart = tk.decode_uart(trace, baudrate=115200)
for frame in uart:
    print(f"UART: {frame.data.hex()}")

→ See docs/getting-started.md for complete introduction

→ See examples/ for 50+ working code examples


Documentation

For Users

For Developers


Core Features

Signal Analysis

IEEE-compliant measurements for characterization and validation. TraceKit implements standards IEEE 181-2011 (pulse), IEEE 1241-2010 (ADC), IEEE 2414-2020 (jitter).

→ See docs/api/analysis.md for full measurement API

Protocol Decoding

Decode embedded protocols directly from waveforms. Supports 16+ protocols including serial (UART, SPI, I2C), automotive (CAN, LIN, FlexRay), and debug (JTAG, SWD).

→ See docs/reference/protocol-decoders.md for protocol list

→ See examples/04_protocol_decoding/ for examples

Spectral Analysis

Frequency-domain analysis with IEEE 1241-2010 compliance. FFT, PSD, ADC quality metrics (SNR, THD, SINAD, ENOB, SFDR), time-frequency analysis.

→ See docs/tutorials/04-spectral-analysis.md

Signal Integrity

High-speed digital validation: jitter measurements (IEEE 2414-2020), eye diagrams, S-parameters, TDR, channel equalization.

→ See docs/guides/signal-integrity.md

Protocol Reverse Engineering

Analyze unknown protocols with:

  • CRC Polynomial Reverse Engineering - Recover CRC parameters from samples
  • L* Active Learning - Infer protocol state machines from traffic
  • Field Boundary Detection - Automatically detect binary field boundaries
  • Wireshark Dissector Export - Generate Wireshark dissectors from definitions

→ See CHANGELOG.md [Unreleased] section for latest features

→ See examples/05_export/ for Wireshark export examples


File Formats

Format Extensions Description
Tektronix WFM .wfm Tektronix oscilloscopes
Rigol WFM .wfm Rigol oscilloscopes
Sigrok .sr Sigrok/PulseView captures
VCD .vcd Value Change Dump (digital)
PCAP .pcap, .pcapng Network packet captures
TDMS .tdms NI LabVIEW
Touchstone .s1p, .s2p, etc. S-parameter data
WAV .wav Audio waveforms
CSV .csv Generic time-series
HDF5 .h5, .hdf5 Scientific data
NumPy .npz NumPy arrays

→ See docs/guides/loading-waveforms.md for format details


IEEE Standards Compliance

TraceKit implements measurements according to industry standards:

Standard Domain Measurements
IEEE 181-2011 Pulse measurements Rise/fall time, slew rate
IEEE 1057-2017 Digitizer characterization Timing analysis
IEEE 1241-2010 ADC testing SNR, SINAD, ENOB, THD, SFDR
IEEE 2414-2020 Jitter measurements TIE, period jitter, RJ/DJ
IEEE 1459 Power measurements Power quality analysis
IEC 61000-4-7 Power quality Harmonics analysis

→ See docs/reference/standards-compliance.md


Development

Quick Start

# Install with development dependencies
pip install -e ".[dev]"

# Run tests
pytest tests/unit -v

# Quality checks
ruff check src/ tests/
ruff format src/ tests/
mypy src/

→ See CONTRIBUTING.md for complete development guide

→ See docs/testing/index.md for testing strategy


Project Structure

tracekit/
├── src/tracekit/       # Source code
│   ├── loaders/        # File format parsers
│   ├── analyzers/      # Signal analysis (waveform, digital, spectral, jitter, protocols)
│   ├── inference/      # Protocol reverse engineering
│   ├── export/         # Wireshark dissectors, data export
│   └── reporting/      # Report generation
├── tests/              # Test suite (17,000+ tests)
│   ├── unit/           # Unit tests
│   ├── integration/    # Integration tests
│   └── compliance/     # Standards compliance tests
├── docs/               # Documentation
├── examples/           # 50+ working code examples
└── scripts/            # Development utilities

→ See docs/index.md for documentation structure


Links


Citation

If you use TraceKit in your research, please cite:

@software{tracekit2026,
  title = {TraceKit: Digital Waveform and Protocol Reverse Engineering Toolkit},
  author = {TraceKit Contributors},
  year = {2026},
  url = {https://github.com/lair-click-bats/tracekit}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tracekit-0.3.0.tar.gz (35.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tracekit-0.3.0-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

Details for the file tracekit-0.3.0.tar.gz.

File metadata

  • Download URL: tracekit-0.3.0.tar.gz
  • Upload date:
  • Size: 35.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tracekit-0.3.0.tar.gz
Algorithm Hash digest
SHA256 bd54bd7384fd7ec5ca1b72f6737cccd22d5a7f1e7b8f50bce940383f795e641a
MD5 b4e57d4c13fdc9266a6e1735bf3973c9
BLAKE2b-256 cc2433bfbee051fb92ccd95359aea8c7f44ba9e0410f1820316086179372e29e

See more details on using hashes here.

File details

Details for the file tracekit-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: tracekit-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tracekit-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d46fa82a0b245babfc9da376b95b3869fefd87b54c8745d686b220a4e968d739
MD5 7fbffa056b37ad872fcf5a948de40254
BLAKE2b-256 bbdea60f745565cecc464be4ade28834609081b3f81176e9b6b57f5e9e505eb2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page