Private resonance-data review

Klipper Input Shaper CSV Visualizer

Drop processed Klipper resonance or calibration CSVs to inspect PSD curves, dominant frequencies, axis energy, capture-to-capture shifts, and any fitted-shaper response columns already stored in the files.

Step 1

Load processed Klipper CSVs

Local only · up to 8 files

Each file must be processed frequency-domain data beginning with freq, not raw_data_*.csv. Limit: 5 MiB and 100,000 rows per file.

Loading the teaching example…

CSV contents stay in this browser. Nothing is uploaded, no printer is contacted, and no configuration is changed. The shared analytics tag may count this page visit but does not receive the file data.

Which Klipper CSV should you use?

The official Klipper resonance guide says TEST_RESONANCES creates resonances_x_*.csv and resonances_y_*.csv, while SHAPER_CALIBRATE creates calibration_data_*.csv. The bundled calibrate_shaper.py script can also write a processed CSV with -c. This page accepts the frequency-domain output that starts with freq.

Raw captures beginning with time and accelerometer samples are intentionally refused. Klipper processes those with windowed FFT/Welch calculations and normalization. Reimplementing only part of that pipeline would make the curves disagree with the firmware tools, so use Klipper’s script first and inspect its processed output here.

Reading peaks without over-diagnosing them

Klipper states that PSD peaks correspond to printer resonance frequencies. A tall isolated peak is useful evidence, and comparing X, Y, or before/after captures can reveal a shifted or reduced response. It does not by itself identify the physical cause. Accelerometer mounting, fans, belts, wheels, rails, toolhead mass, the test point, and mechanical faults can all change a capture.

This visualizer reports the strongest separated local maxima and their ratio to the median positive PSD. It does not attach mechanical labels to them. Re-run a test under controlled conditions and inspect the machine before treating a frequency shift as an improvement.

Why the lowest residual is not automatically the best shaper

Klipper calibration weighs remaining vibration against smoothing. The official guide warns that more aggressive shapers can reduce measured vibration while producing more smoothing, and that its reported smoothing values are comparative rather than a physical measure. It also says the estimated maximum acceleration is theoretical and is not a recommendation for what the printer can mechanically sustain.

This page therefore ranks supplied response curves only by integral(PSD × response ratio) ÷ integral(PSD). It never calls that row “recommended,” never estimates missing smoothing or acceleration data, and never generates a ready-to-paste configuration from PSD peaks alone. Confirm choices with the matching Klipper version, calibrate_shaper.py, conservative printer limits, and test prints.

Frequently asked questions

Why was raw_data.csv rejected?

Raw accelerometer data needs Klipper’s signal-processing pipeline before it becomes a PSD curve. Run calibrate_shaper.py or graph_accelerometer.py, then open the processed CSV.

What does “axis inferred” mean?

The file does not contain a universal tested-axis field. The label is inferred only from an isolated _x_, _y_, or _z_ segment in its filename and remains “Unknown” otherwise.

Can I compare tests with different frequency steps?

Yes. Each file keeps its own bins and metrics. The overlay is visual; values are not silently resampled or averaged across captures.

Does lower integrated PSD prove a better printer setup?

No. Compare captures only when the sensor, mounting, axis, test point, sweep settings, and machine state are equivalent. PSD units and normalization depend on the processing workflow.

Check a Klipper configuration · Browse 3D-printing tools