|
1 | | -#------------------------------------------------------------------------------- |
2 | | -# Name: GPIB Passthrough I-V |
3 | | -# Purpose: Perform a software-timed I-V sweep by controlling a K2182 |
4 | | -# through a K6221 acting as a GPIB-to-Serial bridge. |
5 | | -# |
6 | | -# Author: Prathamesh Deshmukh |
7 | | -# Created: 03/10/2025 |
8 | | -# |
9 | | -# Version: 1.6 (Switched to Free-Running Fetch Mode) |
10 | | -# |
11 | | -# Description: Modified the backend to put the K2182 into continuous |
12 | | -# measurement mode and use 'FETC?' to retrieve data. This is a |
13 | | -# more robust communication protocol to prevent timing errors. |
14 | | -#------------------------------------------------------------------------------- |
| 1 | +""" |
| 2 | +Summary |
| 3 | +------- |
| 4 | +This script provides a graphical user interface (GUI) for performing current-voltage (I-V) sweeps |
| 5 | +using a Keithley 6221 Current Source and a Keithley 2182A Nanovoltmeter. The K6221 acts as a |
| 6 | +GPIB-to-serial bridge to control the K2182A, enabling precise, software-timed measurements. |
| 7 | +
|
| 8 | +Description |
| 9 | +----------- |
| 10 | +The application allows users to define a linear or logarithmic current sweep, set compliance |
| 11 | +voltage, and configure timing parameters. It plots the resulting I-V curve and Resistance-Current |
| 12 | +curve in real-time. Data is saved to a CSV file for later analysis. |
| 13 | +
|
| 14 | +The backend communication has been optimized to use the K2182A's continuous measurement |
| 15 | +("free-running") mode, with data retrieved via 'FETC?' commands. This approach provides a more |
| 16 | +robust and reliable data acquisition loop compared to trigger-based methods, minimizing the |
| 17 | +risk of timing errors or buffer overflows during the sweep. |
| 18 | +
|
| 19 | +Features |
| 20 | +-------- |
| 21 | +- Intuitive GUI for setting up and running I-V sweeps. |
| 22 | +- Real-time plotting of Voltage vs. Current and Resistance vs. Current. |
| 23 | +- Linear and logarithmic sweep modes. |
| 24 | +- Automatic scanning for connected GPIB instruments. |
| 25 | +- Data export to a timestamped `.dat` (CSV) file. |
| 26 | +- Packaged with utility launchers for data plotting and GPIB scanning. |
| 27 | +
|
| 28 | +Author: Prathamesh Deshmukh |
| 29 | +Date: October 2025 |
| 30 | +Version: 1.6 |
| 31 | +""" |
15 | 32 |
|
16 | 33 | import tkinter as tk |
17 | 34 | from tkinter import ttk, Label, Entry, LabelFrame, Button, filedialog, messagebox, scrolledtext, Canvas |
@@ -167,7 +184,7 @@ def close(self): |
167 | 184 | class Passthrough_IV_GUI: |
168 | 185 | PROGRAM_VERSION = "1.6" |
169 | 186 | LOGO_SIZE = 110 |
170 | | - LOGO_FILE_PATH = resource_path("../_assets/LOGO/UGC_DAE_CSR_NBG.jpeg") # Path to your logo image |
| 187 | + LOGO_FILE_PATH = resource_path("../assets/LOGO/UGC_DAE_CSR_NBG.jpeg") # Path to your logo image |
171 | 188 | CLR_BG_DARK = '#2B3D4F'; CLR_HEADER = '#3A506B'; CLR_FG_LIGHT = '#EDF2F4'; CLR_TEXT_DARK = '#1A1A1A' # Base colors |
172 | 189 | CLR_ACCENT_GOLD = '#FFC107'; CLR_ACCENT_GREEN = '#A7C957'; CLR_ACCENT_RED = '#E74C3C' # Accent colors |
173 | 190 | CLR_CONSOLE_BG = '#1E2B38'; CLR_GRAPH_BG = '#FFFFFF' # Specific component colors |
|
0 commit comments