Project · Creator and maintainer

wavecraft

A YAML-defined waveform generator that emits stimulus files for four different simulators.

Updated

Context

Load-transient studies begin with a stimulus: a current profile with defined amplitudes, hold times, and slew rates that every simulator in the study has to reproduce identically.

Constraint

Each simulator wants its own file format, so the same waveform gets retyped per tool and the versions drift apart without anyone noticing which one the results came from.

Contribution

I created wavecraft, which reads one YAML description of a piecewise-linear waveform and writes CSV, SPICE PWL, LTspice PWL FILE=, and PLECS one-dimensional lookup tables.

Approach

Steps are expressed either as absolute timestamps or as durations, amplitudes may be percentages of a nominal current, and slew rates can be set globally or per step. When a slew constraint pushes a breakpoint past the next one, the tool resolves the conflict rather than emitting an impossible waveform.

Outcome

One reviewable text file defines the stimulus, and every simulator in the study receives the same waveform from it.

Evidence

The public repository holds the generator, the YAML schema, the format writers, and worked examples.

Artifacts