✨ Features
- measurement cancel, custom-Gcode confirmation, multi-shape diagnostics, per-channel spectrum overlay (v1.0.0) (1ac03ec)
- standardise update module + add runtime AboutDialog (runtime v0.8.2) (285103a)
- per-field HelpTips on capture params; bump runtime to v0.7.0 (f652e13)
- results: multi-axis shaper compare, tooltip precision, help, persistence (v0.3.12) (8b5349c)
- captures: grouped multi-select capture browser with smart load (v0.3.11) (7407aaf)
- calibrate: multi-axis sweep with overlaid spectra (v0.3.8) (c9b77b9)
- ui: task-rail layout with per-task params and explanations (v0.3.6) (4cc407c)
- capture: detect recording completion via the accelerometer run counter (7613658)
- orientation: full axes-map solver with M955 I suggestion (v0.3.0) (ede79f2)
- self-update, diagnostics, capture browser, spectrogram, measured-damping fit, kinematics guard (v0.2.0) (c9a6e5c)
- verify loop, fixed-frequency excitation, orientation check, homed guard (fceecfb)
- ui: belt comparison + vibration profile modes (61e261e)
- belts: belt comparison analysis + diagonal swept excitation (3233989)
- ui: the lab — measure flow, spectrum chart, plain-language verdict (6519c4c)
- capture: orchestrator + end-to-end analysis pipeline (2f4c4c6)
- capture: accelerometer CSV parser + swept-excitation generator (4cd0644)
- analysis: in-browser PSD + shaper recommendation core (563b37f)
- project scaffold — page, embeddable panel, CI, release automation (399f8cd)
🛠️ Fixes
- build: bump dwc-plugin-test-kit to v0.2.4 (fixes the v1.0.0 release build) (1a56a1b)
- build: satisfy dwc-plugin-test-kit/vitest's missing type declarations (a87ea49)
- belts: size recording to measured motion + persist task selection (v0.3.13) (74d3c5a)
- charts,belts: band-clip belt spectra, show Y scale, taller charts, idle gate (v0.3.10) (26674a3)
- capture: size recordings to the real accelerometer rate (v0.3.9) (56a1ddd)
- i18n,orientation: unblank the verdict + measure raw mounting (v0.3.7) (f3b8a01)
- update: make the on-load update check truly never throw (4a1e282)
- belts: name the louder belt and stop demoting matched belts to "tension" (d797b42)
- capture: per-run program files + explicit idle-wait between runs (0fbe117)
- capture: scale the download wait to the test length; trim sample padding (a19761e)
- capture: wait for the firmware to finish writing the CSV; accept real trailer formats (7597141)
- capture: surface firmware error replies as failures (0fda85d)
- capture: CAN accelerometer addressing needs the .0 index (P124.0, not P124) (1ec70ec)
🧹 Chores & CI
📦 Other changes
- belts: lighter default sweep for tension matching (15-95 Hz @ 2 Hz/s) (79b346c)
- Initial commit (ff6c733)
📦 Install
- Download
ResonanceLab-1.0.0.zipfrom the Assets below. - In DuetWebControl, go to Settings → General → Plugins and click Install Plugin.
- Select the downloaded ZIP and accept the third-party-plugin prompt.
- Reload DWC if asked. Resonance Lab appears in the Plugins menu, and its summary panel is
available in Flexible Layouts under Add widget → Plugins.
🔧 Built against DuetWebControl 3.7.0-beta.1 (
08ad095, refv3.7-dev). Use a DuetWebControl build at or near this version.
An accelerometer configured withM955is required for measurements.