| # | Peak volume | Duration |
|---|
Drag the two dashed lines onto two printed marks on the device, then set what volume each line sits on. Everything between them is read by interpolation, so pick two marks that are far apart (e.g. 500 and 5000).
Phone/tablet front cameras are wide-angle, which compresses the scale near the top and bottom edges. This straightens the mapping so mid-range readings stay accurate. If a known mark reads high, raise it; if low, lower it.
The two solid side lines mark the left and right edges of the measuring column. Keep them just inside the cylinder so the mouthpiece tube and the goal-marker tab are excluded.
The app finds the piston by color, then keeps the tallest, centered band — so a small marker riding the outside of the tube is ignored. Pick your piston’s color below (or tap the piston to sample it). Tip: set the left/right column guides to bracket just the clear tube, and turn on the debug overlay to see exactly what’s detected.
Auto-announce watches for the piston rising and then dropping back down. When it settles near the bottom again, that breath’s peak is locked in and read out. Anything shorter than the minimum above is treated as a phantom blip and not counted. “Ignore device movement” pauses breath detection while you’re moving the whole device into position (so lining it up doesn’t register as a breath) and resumes once it’s held steady.