Skip to content

Comments

Add per-tool pressure advance snapshots for queued moves and CAN motion for adaptive pressure advance#1207

Open
Argolein wants to merge 1 commit intoDuet3D:3.6-devfrom
Argolein:adaptive-PA-PR
Open

Add per-tool pressure advance snapshots for queued moves and CAN motion for adaptive pressure advance#1207
Argolein wants to merge 1 commit intoDuet3D:3.6-devfrom
Argolein:adaptive-PA-PR

Conversation

@Argolein
Copy link

Summary

This PR adds support for rapid Adaptive Pressure Advance updates by using per-move PA snapshots instead of relying on mutable live PA values at execution time.

What changed

  • Switched M572 handling to per-tool semantics.
  • Captured PA per queued move and used that value during move preparation/execution.
  • Updated extruder segment generation and acceleration limiting to use the move snapshot.
  • Added CAN motion compatibility handling for PA snapshots.
  • Added validation for incoming movementLinearShaped message size/driver count.
  • Added capability tracking for CAN boards (supportsMovementPaSnapshot).

Why

Adaptive PA can change PA values very frequently. Without snapshots, queued moves may be executed with newer PA values than intended, causing inconsistency.

Result

Queued moves now use the PA value that was active when they were queued, including CAN motion paths.

Switch M572 pressure advance handling to per-tool semantics and snapshot the active value per queued move so rapid adaptive updates do not require queue drains. Propagate the snapshot through local and CAN movement paths, including remote move validation and compatibility signaling for mixed firmware safety.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant