Skip to content

Releases: PEEKPerformer/ResistaMet-GUI

v1.4.1 — Documentation sync, Zenodo DOI setup

30 Apr 13:10

Choose a tag to compare

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.py

For full feature changes, see the v1.4.0 release notes.

v1.4.0 — SCPI Optimizations & I-V Sweep

01 Apr 20:56

Choose a tag to compare

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

01 Apr 19:57

Choose a tag to compare

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:CONT error -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.tmp files 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, 10mV instead of 0.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

19 Nov 15:21

Choose a tag to compare

🎉 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_gui package
  • 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 Keithley2400 VISA 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 EnhancedDataBuffer with 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 .gitignore to 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

25 Mar 17:52

Choose a tag to compare

Addition of voltage and current application

Full Changelog: v1.0.0...v1.1.0

1.0.0

19 Mar 14:05

Choose a tag to compare

This is the initial software release.

Full Changelog: https://github.com/PEEKPerformer/ResistaMet-GUI/commits/v1.0.0