Skip to content

Navigation Menu

Sign in
Sign up

Shot-end handling: yield stabilization + tail trimming #325

giladger started this conversation in General
Discussion options

Problem

When a shot stops, reaprime waits 4s to catch the final drips and update actualYield.
But this is invisible to the user, who usually lifts the cup the instant the shot
stops — corrupting actualYield. The post-stop "tail" also contains wrong
pressure/flow and is normally trimmed by the UI anyway.

Current state (implemented)

  • trustedFinalYield: weight is latched at the machine-reported stop, then
    refined only by sensible post-stop increases (≤2 g/sample, ≤5 g total,
    flow <3 g/s). actualYield derives from this, not from scanning the raw trace.
    Cup removal / touch spikes no longer rewrite the yield.
  • Trace stops at shot end (scale shots): the tail isn't recorded, so only the
    yield follows the drips — the graph doesn't.
  • No-scale shots finish immediately: the settling window exists only to catch
    scale drips, so without a scale there's nothing to wait for.

Open questions / proposed changes

  1. Drop the stored tail (scale shots)? Its only purpose was the final drips ->
    yield, which trustedFinalYield now captures independently. Remaining question
    is purely whether the wrong-pressure/flow, UI-trimmed tail rows are worth keeping.
  2. Projection undershoot. SAW stops on projected weight, so the latch is
    under-target and must catch up post-stop. The current gating (flow ≤3 g/s,
    <2 g/sample) is tuned for drips, so a fast shot stopped with a large projection
    could undershoot. Proposal: anchor the allowed rise to the target (we stopped
    because projected ≥ target, so climbing to ~target shouldn't be flow-gated),
    apply strict drip/spike gating only beyond it.
You must be logged in to vote

Replies: 1 comment

Comment options

@giladger and I settled on the following solution for now:

  • stay true to the OG de1app implementation, drop all the snapshots after espresso and pouring state transition
  • stay in listening mode for a few more seconds, measuring the dripping on to the scale, with some rules, like the dripping must be slowing down (weight flow must be approaching 0), cup must not be removed etc. Whenever one of the conditions is met (cup removed, weight flow <= 0), the last known good weight is annotated on the shot record under annotations.actualYield
You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants

AltStyle によって変換されたページ (->オリジナル) /