A common question: can metadata be attached to an individual measurement? For example, Signal A measured 1 V, and the power supply was at 28 V / 10 mA at that moment.
There is no metadata field on individual measurements, and for capture conditions that is the wrong tool anyway. The supply voltage at the moment of capture is itself a measurement. Record it as one, and it becomes first-class data: charted in measurement control, filterable, exportable, and available to correlation analysis. An annotation would be none of those things.
The rule of thumb:
| The value... | Record it as |
|---|---|
| Can vary during or between tests (supply voltage, ambient temperature, load current) | A measurement in the same phase |
| Is constant for the whole run and not measurable (batch number, fixture id, operator shift) | Run metadata |
| Is free-form documentation | A docstring |
Step 1: Measure the conditions alongside the signal
Record the conditions in the same phase as the signal they contextualize:
def signal_check(measurements, supply, dmm): # Conditions first: recorded as measurements, not annotations measurements.supply_voltage = supply.measured_voltage() # V measurements.supply_current = supply.measured_current() # mA # The signal itself measurements.signal_a = dmm.measure_dc_volts("A")Conditions can carry validators too. A supply reading outside its expected window is itself a test result: it tells you the measurement was taken under the wrong conditions, before anyone spends an afternoon debugging the unit.
Step 2: Use run metadata for run-constant context
For values that are constant across the whole run, attach run metadata as key/value pairs at upload. Typical keys: batch, fixture, bench id, firmware under test. Run metadata is filterable in run lists and through the API, but it is per run, not per measurement.
Step 3: Correlate conditions with results
Because conditions are measurements, they participate in the same analytics as everything else. If signal A drifts and supply voltage drifts with it, both series show it in measurement control over the same time axis. If a value deviation only appears under certain conditions, the conditions are in the data, so the relationship can actually be checked instead of remembered.
The general principle: correlations can only be computed across things recorded as data. Every condition the bench records as a measurement is one more thing analytics can check without anyone having to know in advance to look.