Releases: PEEKPerformer/ResistaMet-GUI
Releases · PEEKPerformer/ResistaMet-GUI
v1.4.1 — Documentation sync, Zenodo DOI setup
Documentation-only patch release on top of v1.4.0. No code or behavior changes.
What's in this release
- README synced to v1.4.0 features that weren't yet documented:
- I-V Sweep mode (Keithley hardware sweep engine, up/down/up-down)
- Hardware averaging filter (
:SENS:AVER, repeat/moving, 1-100 count) - Auto zero control (on/once/off)
- Offset-compensated ohms for resistance mode
- Cable null / relative reference
- Auto source delay (
:SOUR:DEL:AUTO ON) - Non-concurrent measurement functions (
:SENS:FUNC:CONC OFF) - High-impedance output-off mode (
:OUTP:SMOD HIMP)
- New
CITATION.cff— machine-readable citation metadata. GitHub will now render a "Cite this repository" button. __version__bumped to 1.4.1
Why this release
This is the first ResistaMet release archived on Zenodo for a permanent software DOI. A DOI badge will be added to the README in a follow-up commit once Zenodo finalizes the deposit.
Install
git clone https://github.com/PEEKPerformer/ResistaMet-GUI.git
cd ResistaMet-GUI
git checkout v1.4.1
pip install -r requirements.txt
python resistamet-gui.pyFor full feature changes, see the v1.4.0 release notes.
v1.4.0 — SCPI Optimizations & I-V Sweep
What's New
I-V Sweep Mode
- New tab for voltage or current staircase sweeps using the Keithley's built-in sweep engine
- Hardware-precise inter-step timing — no GPIB jitter
- Up, down, or up-down (hysteresis) directions
- X-Y I-V curve plotting with multi-trace support
SCPI Optimizations (from full manual audit)
- Concurrent functions disabled — instrument no longer measures all functions simultaneously, speeding up every reading
- Auto source delay — instrument picks optimal settling time per range instead of forced zero
- High-impedance output-off — output relay physically opens when output is OFF, protecting DUTs
New Instrument Features
- Auto zero control (Settings → Measurement) — choose ON (accurate), ONCE (3x faster), or OFF
- Hardware averaging filter — built-in repeat or moving average (1-100 readings) at hardware speed
- Offset-compensated ohms — checkbox on Resistance tab, cancels thermoelectric EMF via current ON/OFF subtraction
- Cable null — "Null Cables" button on Resistance tab measures and subtracts cable resistance (2-wire mode)
Test Suite
- 144 tests passing (was 142)
- New tests for sweep tab, settings dialog widgets, offset comp
Files Changed
- 8 files modified, +647 / -24 lines
v1.3.0 — Live hardware testing, UX overhaul, 4PP power features
What's New
Hardware Reliability
- Fixed 5 critical SCPI bugs found via live Keithley 2420 testing — FORM:ELEM element ordering, auto-ohms error 825,
:INIT:CONTerror -113, V/I data swap in source_v mode, RSEN drift in source_i mode - Compliance detection via Keithley STAT word bit 3 + 99% threshold fallback
- Retry logic with exponential backoff for transient VISA errors
- Crash-resilient checkpoints for data recovery after power loss
Data Export
- Dual-format export — JSON (with full metadata) + CSV (Excel-friendly) simultaneously
- Checkpoint/recovery system —
.json.tmpfiles written periodically, recoverable after crashes
UX Overhaul (11 improvements)
- Live numeric readout (28pt font) showing current V/I/R on all tabs
- Engineering notation input — type
1mA,100µA,10mVinstead of0.001000 A - Non-blocking compliance warnings — red flash instead of popup spam
- Tab switching during measurement — view other tabs read-only while running
- "Run until stopped" checkbox on Source V/I tabs
- Custom event markers — press M to annotate data with custom labels
- Sampling rate on every tab for quick access (NPLC moved to Advanced)
- "Test Connection" button — verify instrument before starting
- Tooltips on every setting explaining what it does
- Scroll-wheel protection — spinboxes ignore scroll unless focused
- Data file path shown in status bar after measurement
Four-Point Probe
- Live histogram of Rs distribution — shows measurement spread at a glance
- Multi-spot tracking — Save Spot, compare Rs across probe positions, bar chart uniformity view
- Current reversal (delta mode) — alternates ±I to cancel thermoelectric EMF
- Inter-spot uniformity stats in CSV export
Testing
- 75 live hardware tests against a real Keithley 2420
- GUI smoke tests catching widget lifecycle bugs
- 142 total tests (87 unit + 27 GUI smoke + 28 widget parsing)
System
- Sleep prevention during long measurements (macOS/Windows/Linux)
- Periodic instrument health monitoring
- Negative resistance values displayed (diagnostic signal, no longer suppressed)
Full Changelog: v1.2.0...v1.3.0
v1.2.0 - Four-Point Probe, Modular Architecture, and Enhanced UI
🎉 What's New in v1.2.0
This release brings major architectural improvements, a powerful new measurement mode, and significant UI enhancements.
🚀 Major Features
Four-Point Probe (4PP) Measurement Mode
- Complete 4-point probe measurement system with configurable probe geometry
- Real-time sheet resistance (Rs), resistivity (ρ), and conductivity (σ) calculations
- Support for thin film and bulk models with customizable correction factors
- Advanced options: custom K factor, alpha multiplier, thickness input (µm)
- Live statistics display (mean, std, RSD) with measurement table
- Summary export with averaged results
- Remote sense (RSEN ON) enabled automatically
Modular Codebase Architecture
- Breaking structure change: Refactored monolithic script into
resistamet_guipackage - Organized into logical modules:
constants,config,buffers,workers,instrument,ui/ - Improved maintainability and testability
- Entry point preserved for backward compatibility
Instrument Abstraction & Profiles System
- New
Keithley2400VISA wrapper for cleaner instrument communication - Profiles: Save and load measurement configurations per mode (JSON format)
- Quick GPIB selection popup on connection errors
- Global compliance-stop setting across all modes
Results Viewer
- New built-in CSV viewer tab for analyzing past measurements
- Plot any column from exported data
- Integrated into main window for easy access
🎨 UI/UX Enhancements
Improved Layout System
- QSplitter integration for resizable panels (Parameters, Plot, Controls, Status Log)
- View menu toggles to hide/show sections and maximize plot area
- 4PP horizontal layout: Parameters on left, Summary/Table on right for optimal screen usage
- Windows compatibility fixes for zero-size widget rendering
Enhanced Controls
- Pause/Resume functionality across all measurement modes
- Event marking (M key shortcut) during measurements
- Per-mode plot variable selectors (voltage, current, resistance)
- Dynamic axis labels that update with plot variable selection
- Plot visibility toggle (useful for 4PP when only data is needed)
🔧 Improvements
Instrument Limits Updated
- Voltage range: -100V/+100V → -200V/+200V (enables negative bias)
- Current range: ±1A → ±3A (full Keithley 2450 capabilities)
- Fixed input restriction preventing entry of 100V or values >1A
- Applied across all measurement modes
Data Handling
- Enhanced
EnhancedDataBufferwith multi-channel logging - UTF-8 BOM in CSV exports for proper special character support (Ω, µ)
- Fixed thickness unit migration (legacy cm → modern µm)
- Improved timestamp formatting and event tracking
🐛 Bug Fixes
Four-Point Probe Specific
- Fixed summary stats and table not resetting between measurements (
b32e401) - Eliminated divide-by-zero warnings in export and data processing (
a74ee52) - Fixed VOLT,CURR reading parsing and duplicate compliance logic (
72e210c) - Resolved buffer KeyError for four_point mode (
b6483f1) - Fixed model info updater Qt signal handling (
1033d07,d3bd033)
UI/Plotting
- Prevented Matplotlib "Configure Subplots" toolbar crash (
143e6b2) - Fixed duplicate Results Viewer tabs (
baa8588,fa018b3) - Resolved import errors for QTableWidget/QDialog (
660a409) - Fixed control enable/disable for four_point mode (
e2728e3)
Windows Compatibility
- Robust handling of zero-size splits on Windows (
8c3d362) - Safe split pane initialization with sensible defaults (
e0208c7)
📦 Maintenance
- Updated
.gitignoreto exclude macOS system files (.DS_Store) - Removed old documentation and deprecated code from version control
- Improved code organization and separation of concerns
📥 Installation
pip install -r requirements.txt
python resistamet-gui.py🔗 Full Changelog
26 commits since v1.1.0: v1.1.0...v1.2.0
🙏 Notes
- Settings and profiles are backward compatible
- Existing measurement data can be opened in the new Results Viewer
- The modular structure maintains the same entry point (
resistamet-gui.py)
v1.1.0
Addition of voltage and current application
Full Changelog: v1.0.0...v1.1.0
1.0.0
This is the initial software release.
Full Changelog: https://github.com/PEEKPerformer/ResistaMet-GUI/commits/v1.0.0