Record the bench proof on image 20260829190323 and the warm-loop flow check

CAMPAIGN-LOG: the three flowload t1 runs on the new image (judged rise
11.3, 11.1 and 11.8 C with the tube lit through most of each window, the
laser's share on the line), and Test 3, the flow check from a warm loop
(23.6 to 24.9 C baselines, 0 of 6 wrong, the 14.4 C limit 2.25 C above the
flow band and 3.67 C below the no-flow band).

flow_warm_validate.py takes the warm target and the warm-up budget as
arguments (defaults 28 C, 20 min), and the bench page passes them; the
warm-up still judges on the upstream sensor beside the heater, which is
why this run's baselines stopped near 25 C (BRINGUP item 1).

BRINGUP: item 1's open half is the loop above 25 C; item 22 holds what
remains of the flow check under load.

No catalog consequence: a bench tool's arguments and documentation; no
runtime behavior of the release image changes.
This commit is contained in:
ScottW514
2026-08-29 15:55:21 -04:00
parent d577629c80
commit 89731e654b
4 changed files with 70 additions and 16 deletions
+6 -3
View File
@@ -15,7 +15,10 @@ controller stopped (the bench page's takeover does that; from a host,
stop them first). Runs on the board or from a host (gfbench: GF_HOST).
Results and the log go to the bench data directory (gfbench.data_path).
Usage: flow_warm_validate.py [cycles_per_case] (default 3)
Usage: flow_warm_validate.py [cycles_per_case] [target_c] [warm_budget_min]
(defaults 3, 28.0, 20: the loop's own heater at 50 percent plateaus
near 28 to 29 C in a 20 C room, the most a warm baseline can be
without the tube)
"""
import json
import statistics
@@ -29,8 +32,8 @@ RESULTS = data_path('flow_warm_results.json')
DUTY = 40
CHECK_S = 50
THRESHOLD = float(setting('cool_flow_rise', 14.4)) # forgectrl's configured threshold
WARM_TARGET_C = 25.5 # what a ~19-20 C room permits at 50% duty
WARM_MAX_S = 780
WARM_TARGET_C = float(sys.argv[2]) if len(sys.argv) > 2 else 28.0
WARM_MAX_S = 60.0 * (float(sys.argv[3]) if len(sys.argv) > 3 else 20.0)
ABORT_C = 48.0
FANS_RUN = ('echo 65535 > /sys/glowforge/thermal/exhaust_pwm; '