-
Notifications
You must be signed in to change notification settings - Fork 26
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).actualYieldderives 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
- Drop the stored tail (scale shots)? Its only purpose was the final drips ->
yield, whichtrustedFinalYieldnow captures independently. Remaining question
is purely whether the wrong-pressure/flow, UI-trimmed tail rows are worth keeping. - 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.
All reactions
Replies: 1 comment
@giladger and I settled on the following solution for now:
- stay true to the OG de1app implementation, drop all the snapshots after
espressoandpouringstate transition - stay in
listeningmode 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 underannotations.actualYield
All reactions
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment