Shake the portafilter at two opposing poses - #294
Merged
Conversation
A puck stuck against one wall of the basket survives a shake that only ever leans one way, so the arm shakes once at coffee_shake and once at coffee_shake_left. Both poses become required whenever portafilter_shake_sec is set, so a machine with a shake configured but no coffee_shake_left fails pose validation at construction rather than mid-order. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Starting the left shake from wherever the right one ended would give it a different move out of the group head, and the point of the second pose is to repeat the first move mirrored. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Nicolas Palpacuer (NickPPC)
approved these changes
Aug 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The single shake leans the filter one way, so a puck packed against that side of the basket rides through it. The arm now shakes twice: once at
coffee_shake, once at a newcoffee_shake_leftauthored to lean the other way. A second pose rather than a rotation applied in code, because the mirrored position needs more than a theta offset and poses get taught on the machine, not derived.This needs a config change before it ships.
coffee_shake_leftjoins the required poses wheneverportafilter_shake_secis set, andvalidateConfiguredPosesruns at construction, so a machine with a shake configured and no left pose refuses to start with a pose-validation error. Teach and commit the pose first, or clearportafilter_shake_secon machines that will not get one. Nothing verifies that the two poses actually lean opposite ways, or that the tilted filter clears the group head; that is on whoever authors the pose.Unlock also takes longer by one travel plus one
portafilter_shake_sec.