Skip to main content
This page follows one dataset all the way through Braven: a temperature sweep run across several read-out boards, each identified by a device key. It uses 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:
Each subfolder becomes one Experiment automatically — see Ingest data. 30C / 50C in the filename is exactly the pattern braven.path_params() recognizes.

2. The pipeline script

Assigned once, to the BoardCalibration 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.