Hardware waveform validation often ends with two screenshots and a visual judgment. That works for a single experiment, but it becomes difficult to reproduce when firmware revisions, component lots, or test conditions keep changing.
I built WaveRegression to turn that comparison into a repeatable local workflow. It is an open-source Windows desktop application that imports a reference waveform and one or more candidate oscilloscope CSV files, aligns them, applies tolerance rules, extracts metrics, and exports a self-contained HTML report.
## What it does
- imports comma-, tab-, and semicolon-delimited waveform files;
- detects encoding and headers, with manual column and unit mapping when needed;
- resamples traces onto a shared time grid;
- supports normalized cross-correlation, 50% edge, and manual alignment;
- evaluates absolute and relative tolerances and records continuous violation regions;
- reports MAE, RMSE, NRMSE, correlation, gain, bias, overshoot, settling time, and ripple;
- compares multiple candidate files in the background;
- keeps all measurement data offline.
## An alignment detail that matters
Cross-correlation is useful for estimating a time shift, but normalizing the signal throughout the pipeline can hide real gain and offset errors. WaveRegression uses normalized values only to estimate the shift. Final error and amplitude metrics are calculated from the original values after alignment.
The shared grid also follows the coarser effective sampling interval instead of inventing unnecessary samples. Full data is used for analysis; min/max-preserving downsampling is applied only when plotting large traces.
## Current state
The MVP is Windows-first and CSV-focused. The downloadable build is not code-signed yet, so Windows SmartScreen may display a warning on first launch. The project is MIT licensed and has 34 automated tests covering parsing, alignment, comparison, reporting, and project portability.
Repository: https://github.com/Barry-Song66/WaveRegression
Windows release: https://github.com/Barry-Song66/WaveRegression/releases/tag/v0.1.0
I would appreciate feedback from hardware and test engineers, especially examples of oscilloscope export formats and the tolerance rules used in real validation workflows.
Disclosure: this article was drafted with AI assistance and reviewed against the implementation by the project maintainer.
Top comments (0)