Skip to content

v2.2.0 — "Closing the Loop"

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Jul 16:07

📅 2026-07-25 · Full changelog

✨ Features

  • model-fit identification, joint optimisation, and tuning-page overlay fixes (62c3f84)
  • scale-aware step-jump capture, live stage-status timeline, richer session report (1aebed9)
  • automate preflight calibration, grade the result, and write config.g (1f3bffe)
  • seed auto-tune from a Ku/Tu search, verify every accept, roll back safely (e1bd3a4)
  • tune with the axis loaded, keeping moves inside its travel limits (c74ca3f)
  • evaluation engine, About dialog, results download, UI cleanup (v2.1.0) (f93877b)
  • configurable auto-tune cycles (default 3) to iterate P/D/I (f1ba507)
  • auto-tune A/V feed-forward; declutter step 4; disconnect note; graph guide (7c63da3)
  • persist UI selections across navigation (3d75a71)
  • automatic PID auto-tune (P -> D -> I, hands-off) (67edde9)

🐛 Bug Fixes

  • real type errors in test helpers that only a full (test-file-inclusive) typecheck catches (27a05ee)
  • unblock the v2.2.0 CI build, update dependencies, de-specify 1HCL references (a35438c)
  • judge loaded-axis tuning on real move metrics instead of step-response ones (39eea67)
  • stop noise-driven P backoff and premature V plateau in auto-tune (ee5ab68)
  • iterate A/V every cycle and push the feed-forward harder (cc6839b)
  • tune from a real G1 move, not the V64 manoeuvre (which didn't rotate) (d86f1ad)
  • auto-tune re-asserts closed loop so it moves after a reboot (ca12fd9)
  • mode command must not force direction (S1); revert auto-calibrate (08bae9c)
  • auto-tune calibrates the encoder before tuning (root cause of no-move) (569499c)
  • auto-tune now (re)asserts closed loop so the step manoeuvre actually moves (6a402f1)

♻️ Refactoring

  • use the standardised runtime AboutDialog (runtime v0.8.1) (dceb7ca)
  • use shared HelpTip from dwc-plugin-runtime v0.7.0 (55c69b1)

🧹 Chores & CI

  • remove inherited Duet3D CLA Assistant workflow (f202923)

📦 Other changes

  • Rework UI into a step-by-step tuning flow + add tooltips everywhere (7e733be)
  • Port to DWC 3.7 and rework closed-loop tuning UX (f1b2354)
  • Add CLA workflow (f43e3b7)

📦 Install

  1. Download ClosedLoopTuning-2.2.0.zip from the Assets below.
  2. In DuetWebControl, go to Settings → General → Plugins and click Install Plugin.
  3. Select the downloaded ZIP and accept the third-party-plugin prompt.
  4. Reload DWC, then open Plugins → Closed Loop Tuning.

🔧 Built against DuetWebControl 3.7.0-beta.2 (6a6c726, ref v3.7-dev). Use a DuetWebControl build at or near this version.
⚙️ Requires a Duet 3 board with closed-loop driver support (a Duet3D Expansion 1HCL / M23CL, or any other RRF board reporting closed-loop driver telemetry). Tuning moves a single driver — make sure the axis is in a safe position before recording.