log_config, log_summary, log_series, plot_series, device(), path_params(), and upload() with a matplotlib Figure — the full set from Write a pipeline script.
The shape of the flow
1. The data on disk
Each board’s run at each temperature lands as one CSV, dropped by the instrument’s own software into a watched folder:30C / 50C in the filename is exactly the pattern braven.path_params() recognizes.
2. The pipeline script
Assigned once, to theBoardCalibration folder — every new subfolder runs this automatically.
3. What shows up in the app
1
Experiments
Four experiments — one per file — each with a
temperature_c Config value, a row_count Summary value, a two-panel Figure in its Images tab, and a signal_vs_time Series.2
Devices
Two devices,
S1 and S2 (type Read-out board), each accumulating an snr history across every temperature it’s been run at — no manual linking step, because the script tagged them with braven.device(board_key).3
Analysis
Mark all four experiments visible, open Analysis, and ctrl+click each board’s
signal_vs_time series to build one chart with all four curves overlaid — instantly comparable across board and temperature. See Analyze and compare.4
Reports
Once the comparison says what you want it to say, save it as a Report — a live KPI plot segment keeps referencing the same experiments, so it stays current if you add a
70C run later. See Reports.Why this example uses device() instead of encoding the board into every key name
Compare board.log_summary("snr", ...) against the alternative of writing braven.log_summary("snr_S1", ...) per board. The device-scoped version keeps the metric name identical ("snr") across every board — the device is a separate coordinate, not a suffix — which is what makes it possible to later query or plot “SNR across boards” as one consistent field instead of parsing it back out of ad-hoc key names.