Settings reference¶
Open via the Settings button or menu. Four tabs: Measurement, Display, File, Output. All values are persisted per-user-profile in config.json (gitignored, in the working directory). Cross-references in this page link to Concepts for term explanations.
Measurement tab¶
General instrument¶
| Setting | Default | Range / type | What it does |
|---|---|---|---|
| GPIB Address | GPIB0::24::INSTR |
VISA resource string | Where to find the instrument. Detect Devices scans all available VISA buses and offers the result in a picker. Machine-local: stored keyed by hostname rather than in the shared profile, so a NAS-shared config.json works across lab PCs with different wiring. Any legacy single-address slot is auto-lifted on first save. |
| Sampling Rate | 10.0 Hz |
0.1 – 100 Hz |
Default readings per second. Each measurement tab has its own spinbox that overrides this. Each per-tab spinbox is dynamically capped based on the active (NPLC × auto-zero × filter × offset-comp) combination; if you commit a value above the cap the status bar reports the cap and suggests the cheapest single setting change to reach the requested rate. See Concepts → Rate-cap predictor. |
| NPLC | 1 |
0.01 – 10 |
Integration time per reading. Lower = faster + noisier; higher = slower + cleaner. |
| Settling Time | 0.2 s |
0 – 10 s |
Delay after output enable before the first reading. Lets DUT + instrument stabilize. |
Resistance defaults¶
Applied to the Resistance tab on launch; the tab itself has live widgets that override these per-run.
| Setting | Default | Notes |
|---|---|---|
| Test Current | 1 mA |
DC current sourced through the DUT |
| Voltage Compliance | 5 V |
Maximum allowed across the DUT |
| Measurement Type | 2-wire |
Or 4-wire for Kelvin |
Voltage Source defaults¶
| Setting | Default | Notes |
|---|---|---|
| Source Voltage | 1.0 V |
Accepts negative values |
| Current Compliance | 100 mA |
|
| Duration (hours) | 0 (= run until stopped) |
Set non-zero for unattended runs |
Current Source defaults¶
| Setting | Default | Notes |
|---|---|---|
| Source Current | 1 mA |
Accepts negative values |
| Voltage Compliance | 5 V |
|
| Duration (hours) | 0 (= run until stopped) |
|
| Stop on compliance | False |
Auto-Stop when compliance is reached. Useful for protecting sensitive samples in source-V too. |
Advanced instrument settings¶
| Setting | Default | Notes |
|---|---|---|
| Enable Hardware Filter | True |
Use the Keithley's built-in averaging filter (see Concepts → Hardware averaging filter) |
| Filter Type | repeat |
repeat (N readings → 1 result, then repeat) or moving (running average) |
| Filter Count | 5 |
1 – 100 |
| Enhanced accuracy in Resistance mode | True |
Offset-compensated ohms. See Concepts → Enhanced R mode. |
| Touch-safety warn threshold | 30 V |
0 – 1100 V. Voltage at or above this triggers the warning modal before run start. 0 disables. See Concepts → Touch-safety warning. |
| Suppress touch-safety warning for this profile | False |
Equivalent to clicking "Don't show again" on the modal. Uncheck to re-enable. |
Auto-Zero lives on each tab, not in Settings
Pre-v1.10 it was here, but per-tab makes more sense: 4PP and vdP force auto_zero='on' regardless; sensor modes (resistance, source_v, source_i) expose the knob on the tab itself so re-tuning the speed/accuracy trade doesn't require a Settings dialog detour.
Display tab¶
| Setting | Default | Notes |
|---|---|---|
| Enable Real-time Plots | True |
Disable for high-rate runs (>50 Hz) where rendering eats CPU |
| Resistance Plot Color | #D55E00 (Wong vermillion) |
Matches the V/I/R/P live-readout label colors |
| V Source Plot Color | #0072B2 (Wong blue) |
|
| I Source Plot Color | #009E73 (Wong green) |
|
| Data Buffer Size (points) | 0 (Unlimited) |
0 = no cap. pyqtgraph downsamples on render (peak-mode + clipToView) so a 17-hour / 270k-sample run is ~13 MB and stays smooth. Set a finite cap only if RAM is tight. |
Pre-v1.10 buffer-size default was 1000
Old configs that explicitly set buffer_size to a small number silently truncated the live trace on overnight runs. New default is unlimited; existing configs override unless you reset.
File tab¶
| Setting | Default | Notes |
|---|---|---|
| Auto-save Interval | 60 s |
How often to flush data to disk during a measurement. Lower = less data loss on crash, but more I/O. |
| Data Directory | measurement_data |
Root for run output. A subdirectory is created for each user. Browse... button opens a folder picker. |
Output tab¶
See Data Outputs for the full format reference; this tab just selects which backend to use.
| Setting | Default | Notes |
|---|---|---|
| Output format | csv |
One of: csv (default, single .csv with #-prefixed metadata header), hdf5 (requires h5py), csv+legacy_json (pre-2.0 dual emit for back-compat with downstream pipelines) |
| Compression | never |
Applies only to the csv backend. never / always / auto. Default is never because Excel, Origin, and most lab tools can't open .csv.gz directly. HDF5 is always internally gzip-compressed regardless. |
| Auto-compression threshold | 5 MB |
Only used by the auto compression policy |
HDF5 grayed out?
If h5py isn't installed, the HDF5 option is disabled with a tooltip explaining why. pip install h5py and restart to enable it.
Configuration storage¶
Settings are kept in config.json in the working directory (gitignored — per-user, not portable). Structure mirrors the four Settings tabs:
{
"measurement": {...},
"display": {...},
"file": {...},
"output": {...},
"users": ["alice", "bob"],
"last_user": "alice",
"user_settings": {
"alice": {"measurement": {...}, ...},
"bob": {"measurement": {...}, ...}
}
}
When a user is selected, their per-user overrides deep-merge on top of the global defaults. Editing this file by hand works but is error-prone — prefer the dialog. If the file gets corrupted, delete it and ResistaMet will recreate from DEFAULT_SETTINGS (in resistamet_gui/constants.py).
Profiles menu¶
The top-level Profiles menu has two entries that operate on the currently-active tab (Resistance / Voltage Source / Current Source / Four-Point Probe — Sweep and vdP are excluded):
- Save Profile for Current Mode... writes the active tab's measurement settings to a
.jsonfile (suggested name<mode>_profile.json). Useful for "sensor A typical run" vs "sensor B typical run" templates that you swap between samples. - Load Profile to Current Mode... reads a
.jsonand applies known fields to the active tab's widgets. Unknown fields are ignored. Legacyfpp_thickness_cmis auto-converted tofpp_thickness_umfor backward compatibility.
These are file-level profiles distinct from the per-user settings stored in config.json. They don't move the GPIB address (which is machine-local).
Results Viewer tab¶
A 7th tab "Results Viewer" is included by default. It lets you:
- Open any v2.0
.csvor.csv.gzfile produced by ResistaMet GUI (also accepts older legacy CSVs) - Pick any column from the dropdown to plot vs
elapsed_s - Read the trailing metadata (run mode, sample name, start time) into the status log
No write-back — it's strictly a post-run viewer.
Per-tab settings (not in this dialog)¶
Some settings live on the individual mode tabs because they're per-measurement-context, not session-wide:
- Auto Zero — Resistance / Voltage Source / Current Source tabs (each)
- Enhanced accuracy — Resistance tab (separate from the global Settings checkbox, which sets the default)
- Source Range Auto / Voltage Range Auto — every tab
- Cable null — Resistance tab
- Delta mode (current reversal) — Four-Point Probe tab Advanced section
- Geometry / dopant / temperature — Four-Point Probe tab (drive F84 corrections)
- Sample thickness — Four-Point Probe and Van der Pauw tabs
- Sweep start / stop / step / direction / per-step delay — I-V Sweep tab
These follow the same per-user persistence — they're written into the user's section of config.json when the user clicks Save Settings on the active tab.