Skip to content

About

PICA (Python-based Instrument Control and Automation) is a modular, open-source software suite designed to automate advanced transport measurements for electronic devices and material samples. It serves as a robust software platform that enables advanced high‑precision characterisation of materials.

Topics

Resources

Code of conduct

Contributing

Stars

12 stars

Watchers

2 watching

Forks

Latest commit

 

History

1,415 Commits

Folders and files

Repository files navigation

PICA: Advanced High-Precision Transport Measurement Automation with Python

Open-source Python suite for laboratory instrument control and automation — GPIB/VISA & SCPI orchestration of Keithley, Keysight, Lakeshore, and Novocontrol instruments for cryogenic transport, resistivity, I-V, dielectric, and pyroelectric measurements.

Documentation: prathameshnium.github.io/PICA-Python-Instrument-Control-and-Automation · User Manual · PyPI · Install: pip install pica-suite

PICA logo — Python Instrument Control and Automation suite

Automated Testing Lint and Style Checks CodeQL Analysis Draft PDF Code Coverage Supported Python versions Tested on Python 3.10, 3.11, 3.12, 3.13 DOI PyPI Version PyPI Downloads License: MIT
Online Documentation Documentation Contributing Guidelines Code of Conduct
Project Inception Date Project Age GitHub created-at Total Downloads Stars Forks Code Size Last Commit


v1.0.7 is now live! Linux install guide, Keithley 2400 memristor modules, C-V module v2, launcher module search and hover cards. Install or upgrade via pip: pip install --upgrade pica-suite


Overview

High-precision, low-noise transport measurements are essential for advancing research in spintronics and materials characterisation. PICA (Python-based Instrument Control and Automation) is a modular, open-source software suite designed to automate advanced transport measurements for electronic devices and material samples. It operates as a versatile framework capable of running on any standard laboratory workstation.

PICA provides an extensible, unified graphical user interface (GUI) for orchestrating high-precision instruments — current source (DC/AC) units, nanovoltmeters, high resistance electrometers, impedance analysers, and temperature controllers such as the Keithley 6221, 2182, 2400, and 6517B, the Keysight E4980A LCR meter, the Lakeshore 350/340, and (experimentally) the Novocontrol Alpha-A. Built on the robust Python scientific ecosystem (PyVISA, NumPy, pandas, Matplotlib), PICA ensures that the entire hardware ecosystem functions seamlessly as a cohesive unit.

The suite performs automated protocols including:

  • Temperature-dependent wide-range resistance measurement ($10^{-8}$ - $10^{16}$ Ω).
  • Current-voltage (I-V) characterisation.
  • Capacitance characterisation and magnetocapacitance studies (20 Hz - 2 MHz).
  • Pyroelectric current measurement (resolution $10^{-15}$ A).

PICA Launcher — Python GUI dashboard for laboratory instrument control and measurement automation
The PICA Launcher. Quick Select picks a category, a module and a protocol, then launches that program; the status bar carries the live temperature and pressure readings and the result of the startup bus scan.

PICA Launcher Advanced Options — full catalogue of measurement modules grouped by resistance range and instrument
Advanced Options (Ctrl+Shift+A): every module PICA ships, grouped by measurement range and instrument, for when you already know which program you want. Hovering a row opens a card describing the measurement, its instruments and its inputs; Ctrl+F opens a search that finds any module by a few letters.

More details here: Full online documentation is available at https://prathameshnium.github.io/PICA-Python-Instrument-Control-and-Automation/. For usage guides, see the User Manual.

Table of Contents


What's New in v1.0.7

v1.0.7 (October 2026) is the latest release and is available on PyPI and GitHub Releases.

pip install pica-suite==1.0.7
# or upgrade from a previous version:
pip install --upgrade pica-suite

Highlights — new temperature controllers, AC resistivity & dielectric automation:

  • Cryo-con 34 and Lakeshore 340 (experimental): temperature sensing, direct and step control, sensor-curve loading and viewing, plus Cryo-con / L340 variants of the R-T, pyroelectric and dielectric programs.
  • AC resistivity (experimental): Keithley 6221 AC source with an SR830 lock-in or a Keithley 197A DMM — I-V, frequency scan and R-T modules.
  • Dielectric: PPMS Dielectric Master (unattended Tscan + Fscan), Field Step Frequency Scan, E4980A open/short correction, and Novocontrol Alpha-A broadband spectroscopy (experimental).
  • I-V fixes: reworked sweeps with custom lists for the K2400, K2400 + 2182 and K6517B; the K2400 I-V module now reads voltage correctly.
  • Launcher v2, diagnostics & utilities: Quick Select launcher, read-only diagnostic tools, SCPI console, List Maker, MD ratio calculator, and PPMS helpers.

For the full changelog, see CHANGELOG.md.


Motivation

Advancements in experimental physics and device manufacturing depend on the precise characterisation of material properties under extreme physical conditions. Researchers often face a binary choice: purchase expensive proprietary software or develop custom measurement scripts from scratch.

While libraries such as PyVISA and PyMeasure provide foundational drivers, requiring users to write and maintain low-level code, PICA builds upon these powerful libraries to offer a turnkey application. It provides a ready-to-run graphical interface that abstracts the underlying control logic, allowing experimentalists to focus on data acquisition without extensive software development overhead.

PICA enables continuous operation across a full range of measurements, from ultra low resistance measurements (removing constant offsets) to high-impedance, electrometric, pyroelectric, and capacitance measurements, all within a single, unified framework.

Key Features

  • Accessibility: A professional GUI dashboard (now with the Latte theme) allows researchers without coding experience to configure and run complex measurement protocols immediately using pre-packaged measurement modules.
  • Operational Validation: Validated via cryogenic transport measurements using a custom-designed probe in conjunction with a Physical Property Measurement System (PPMS) (5-380 K, up to 14 Tesla) at the UGC DAE Consortium for Scientific Research, Mumbai Centre.
  • Fault Tolerance: Control logic is isolated from the user interface. Hardware timeouts or driver crashes are prevented from freezing the main dashboard.
  • Modular CLI Architecture: Measurement modules contain CLI counterparts, allowing researchers to utilize PICA's protocol logic for headless automation or integration into other workflows without GUI overhead.
  • Operational Transparency: PICA rejects the "black box" paradigm by exposing real-time, time-stamped command logs (e.g., [10:05:25] Keithley 6221: Ramping current to 10 mA). This aids debugging, ensures scientific reproducibility, and allows verification of measurement protocols.
  • Open Source Extensibility: Researchers can integrate new instrument drivers or experimental protocols by subclassing existing templates, fostering a community-driven ecosystem.

Design and Implementation

PICA is built on a modular architecture characterized by self-contained modules, ensuring future extensibility without impacting core system stability.

Process Isolation and Concurrency

Unlike simple script-based automation, PICA decouples the User Interface (UI) from the instrumentation control logic using Python's standard multiprocessing libraries.

  • Stability: If an instrument hangs, the isolated process can be terminated safely without freezing the main GUI or losing previous data.
  • Responsiveness: The tkinter-based frontend remains responsive for live matplotlib data plotting even while the backend waits for hardware triggers.
  • Data Integrity: A "write on acquisition" strategy using pandas saves data to CSV immediately after every acquisition point, preventing data loss during power failures.

Hardware Abstraction Layer

PICA utilizes PyVISA to abstract low-level communication protocols (GPIB, USB, Ethernet). The software implements a strict initialization routine:

  1. Connection Verification: A built-in "VISA Instrument Scanner" queries the bus (*IDN?) to map instrument addresses.
  2. Instrument Reset Protocol: Explicitly resets all stored data and buffers to provide a clean initial state.
  3. Graceful Shutdown: Ensures sources are ramped down and heaters disabled safely, even if the software is interrupted.

Testing and Simulation

PICA includes a testing suite using pytest and unittest.mock to simulate VISA resources, allowing verification of backend logic streams and command sequences without constant access to physical instruments.


Supported Hardware Modules

The system is currently validated with industry-standard hardware, covering a resistance range spanning 24 orders of magnitude.

Module Configuration / Instrument Use Case Range
Ultra Low Resistance Measurements Keithley 6221 + K2182 + Lakeshore 350/340 Superconductors & metallic films; cancels thermal EMFs via AC Delta method. 10 nΩ - 100 MΩ
Mid-Resistance (Standard) Keithley 2400 SourceMeter + Lakeshore 350/340 Semiconductors, oxides, general transport. 100 µΩ - 200 MΩ
Mid-Resistance (High-Precision) Keithley 2400 + K2182 + Lakeshore 350/340 Detecting subtle phase transitions. 1 µΩ - 100 MΩ
High-Resistance Keithley 6517B Electrometer + Lakeshore 350/340 High bandgap materials, polymers, & ceramics. 1 Ω - 10 PΩ
Capacitance Analysis Keysight E4980A + Lakeshore 350/340 C-V Analysis and Magnetocapacitance characterisation. 20 Hz - 2 MHz
Pyroelectric K6517B + Lakeshore 350/340 Current vs Temp (detecting Curie temperature). $10^{-15}$ A Resolution
Broadband Dielectric Spectroscopy (experimental, v1.0.6) Novocontrol Alpha-A + ZG4 interface Frequency-domain dielectric & impedance spectroscopy with WinDETA-compatible exports. Up to 10 MHz (tested)

While the current implementation drives specific instruments, the underlying framework is highly customizable. Researchers need only replace specific SCPI commands to utilize the suite with different models.

Note

Understanding "Delta Mode": The term "Delta Mode" refers specifically to a technique used by Keithley Models 6220 and 6221 Current Sources in conjunction with the Model 2182/2182A Nanovoltmeter for very low resistance measurements. This method is described in detail in the Keithley Low Level Measurements Handbook. In this documentation, "Ultra Low Resistance Measurements" is used as the general scientific term, while "Delta Mode" may appear when specifically referencing the Keithley-specific method or program files.

Advanced Temperature Step Control (Lakeshore 350)

pica/lakeshore/T_Control_L350_Step_GUI_advanced.py is a self-contained, advanced version of the classic step-sequence controller (T_Control_L350_Step_GUI.py, which remains unchanged for existing workflows). It embeds the field-tested v1.2 stabilization logic (two-stage approach, rolling-window tolerance + drift criterion, stabilization timeout) and adds:

  • Adaptive ramp rate — the rate is computed per step as |ΔT| × Step Factor, then hard-capped by an editable low-temperature table (30:0.3, 100:0.5, else:5 = max 0.3 K/min below 30 K, 0.5 K/min below 100 K, otherwise 5 K/min). This suppresses the large overshoot seen below 100 K on LN2-dewar probes, where even a small heater input raises the temperature substantially. The first setpoint of a run is approached extra slowly (First-Step ×, default 0.5). Untick Adaptive ramp rate to use a fixed manual rate.
  • Approach from one side — optional "always from below/above" mode for hysteresis-sensitive measurements: the slow final ramp always enters the setpoint from the chosen side.
  • Stability criteria — configurable ±tolerance band, rolling window length, drift limit (K/min), and a max-wait timeout with a loud warning if stabilization fails.
  • Safety — hardcoded 340 K kill switch, user-set soft Max-Temp limit with graceful abort (ramp stopped, heater off), heater-range checks, and crash-safe shutdown on window close or error.
  • Run control & logging — Pause/Resume, Skip Step, live-editable sequence, per-poll CSV (with ramp rate + phase columns), a per-setpoint summary CSV (rate used, stabilization time, outcome), and a live plot showing the setpoint and its tolerance band. After each stabilization the program beeps and waits for the Proceed button (external-measurement handshake).

The combined dielectric-scan program pica/keysight/Step_Frequency_Scan_E4980A_GUI.py (v1.3) carries the same advanced control set — adaptive ramp rate, approach-from-one-side, Pause/Skip, soft Max-Temp limit, tolerance band, and stabilization-summary CSV — as an embedded copy (every PICA program stays self-contained). Being an unattended overnight program, on stabilization timeout it logs a loud warning and proceeds with the frequency sweep instead of waiting.

Module Previews

Resistance vs temperature measurement GUI using Keithley 6221/2182 delta mode with Lakeshore 350 temperature control
R-T measurement interface using the K6221/2182 for low-resistance samples, employing the Ultra Low Resistance Measurement technique to cancel thermal EMFs.

High-resistance I-V characterization GUI using the Keithley 6517B electrometer
Interface for current-voltage (I-V) characterisation of high-impedance materials using the Keithley 6517B Electrometer.


Utilities & Tools

Beyond the measurement modules, PICA ships a growing set of standalone laboratory utilities, all accessible from the launcher:

  • VISA Instrument Scanner — queries the GPIB/USB/Ethernet bus (*IDN?) to map connected instrument addresses.
  • PICA Plotter Utility — multi-file data plotting for comparison and analysis during or after measurements.
  • SCPI Console (v1.0.6) — interactive terminal for sending raw SCPI commands to any VISA instrument.
  • PPMS helper utilities (v1.0.6) — plotter, sequence visualizer, and time estimator for Quantum Design PPMS workflows.

Demonstration of PICA (Screencast)

A screencast demonstrating the high resistance IV module is available at this link.


Pre-requisites: The VISA Driver

Warning

A VISA Backend is Required: PyVISA is a Python wrapper, not a driver. For PICA to communicate with hardware, you must install a VISA backend on your system first. If you attempt to run the software on a clean machine without a VISA implementation, it will fail to find the instruments. This is the most common failure point for new instrument control setups.

Choose one of the following:

  • NI-VISA: The industry standard from National Instruments. Download and install it from the NI website.
  • PyVISA-py: A backend written in pure Python that is installed automatically with PICA. It can be used as a fallback but may have limitations compared to vendor-specific drivers like NI-VISA. PyVISA-py GitHub

Before proceeding, verify your VISA installation.


Getting Started

PICA is available on PyPI and structured as a standard Python package. Options 1 and 2 are for Windows, the platform PICA is validated on in the lab. For Linux, see Option 3.

Option 1: Install from PyPI (Recommended)

pip install pica-suite

To upgrade to the latest version (currently v1.0.7):

pip install --upgrade pica-suite

Option 2: Install from Source

  1. Clone the Repository

    git clone https://github.com/prathameshnium/PICA-Python-Instrument-Control-and-Automation.git
    cd PICA-Python-Instrument-Control-and-Automation
  2. Create Virtual Environment & Install

    # Create and activate a virtual environment
    python -m venv venv
    venv\Scripts\activate
    
    # Install the package and its dependencies
    pip install .

    To update PICA to the latest version, run the following command in the project directory:

    pip install --upgrade .

    If you are already in your virtual environment and want to force Python to reinstall the package (overwriting the old one), run this in your root project folder:

    pip install --force-reinstall .
  3. Development install (for contributors)

    To work on PICA itself, install it in editable mode together with the test and lint tools. Edits to the source then take effect without reinstalling:

    pip install -e .
    pip install -r requirements-dev.txt

    Then run the test suite to confirm the setup (see Running Tests Locally):

    pytest

    Note: Ensure you have the NI-VISA drivers installed on your host machine to allow PyVISA to communicate with the hardware.

Option 3: Installing on Linux

Warning

Talking to real instruments from Linux has not been verified yet. Installation, the full test suite and the GUI windows have been checked on Linux, but no measurement has yet been run against real hardware from a Linux machine. Lab use so far has been on Windows. If something does not work, please open a Linux issue with your distribution, your VISA backend and the instrument model.

What has been checked:

Check Ubuntu 24.04, Python 3.10 (CI, every push) Ubuntu 26.04, Python 3.14 (manual)
pip install Yes Yes
Test suite (mocked instruments) Yes Yes
Programs in the launcher, plus both launchers, open Yes, real Tk windows under xvfb (tests/test_gui_windows_open_for_real.py); all except the 32-bit Alpha-AN scan, see below Yes, same exception
Measurement against real instruments No, not yet verified No, not yet verified

1. Install the system packages. Tkinter and the emoji font are usually not part of a minimal install. Without the font, the icons on buttons show as empty boxes.

# Debian / Ubuntu
sudo apt install python3-venv python3-tk fonts-noto-color-emoji

# Fedora
sudo dnf install python3-tkinter google-noto-color-emoji-fonts

# Arch
sudo pacman -S tk noto-fonts-emoji

2. Create a virtual environment and install PICA.

python3 -m venv ~/pica-venv
source ~/pica-venv/bin/activate
pip install pica-suite

3. Set up a VISA backend. On Linux, PICA uses the pure-Python pyvisa-py backend, which pip install pica-suite installs for you. Each kind of connection needs one extra piece:

Connection What you need
Ethernet (LAN / VXI-11 / raw socket) Nothing extra
Serial (RS-232 / USB-serial adapter) Nothing extra (pyserial is installed with PICA, via PyMeasure)
USB (USB-TMC instruments) pip install pyusb, plus a udev rule giving your user access to the device (pyvisa-py docs)
GPIB card The linux-gpib kernel driver for your card, then pip install "pica-suite[gpib]"

NI-VISA also exists for Linux, but only for a few distributions. See NI's Linux support page.

To use serial ports, your user must be in the dialout group. Log out and back in after running this:

sudo usermod -aG dialout $USER

Check that the backend sees your instruments:

pyvisa-info
python -c "import pyvisa; print(pyvisa.ResourceManager('@py').list_resources())"

4. Run PICA. Start it the same way as on Windows (see Running the Software):

pica-gui

Differences from Windows:

  • Sleep during overnight runs. On Windows, PICA stops the PC from sleeping during a run. On Linux it can't, so block sleep yourself, for example by launching PICA through systemd-inhibit:
    systemd-inhibit --what=idle:sleep --why="PICA measurement" pica-gui
  • Alert sounds. Most modules fall back to the system bell on Linux for the end-of-run and alarm beeps, and it may be muted. The three Keithley 2400 memristor modules beep only on Windows and are silent on Linux. The on-screen banners and logs still appear.
  • Different fonts. Linux draws the windows with its default fonts, usually DejaVu. The layout is the same, but the text is slightly wider.
  • Windows-only modules. The 32-bit Novocontrol Alpha-AN frequency scan and the 32-bit GPIB scanner call Windows' gpib-32.dll directly, so they will not work on Linux. The 32-bit Alpha-AN scan does not open its window: it shows a "No GPIB driver" error and exits. The 32-bit GPIB scanner opens but reports that the driver is Windows-only. The regular Alpha-AN module goes through VISA and is not affected.

Running the Software

  1. Graphical Launcher (Recommended) The central dashboard for accessing all modules, the plotter, and the scanner.

    pica-gui

    You can also run any of the individual GUI measurement modules independently. This is useful for quickly accessing a specific measurement without opening the main launcher. To do this, simply run the Python script for the desired module. For example:

    python pica/keithley/k6517b/High_Resistance/IV_K6517B_GUI.py
  2. Launcher v2 (in testing) A second launcher that opens on a Quick Select screen — category, module and protocol, each explained in plain language — and keeps the full module grid in an Advanced Options window (Ctrl+Shift+A). The status strip carries the temperature and a button opening Instrument Status: every instrument with its light, anything new on the bus named from its *IDN? reply, and the VISA/GPIB scan table.

    python run_pica_v2.py

    Find any program fast: Advanced Options and Search

    Shortcut Opens
    Ctrl+Shift+A (or View menu) Advanced Options: every module PICA ships on one screen, nothing filtered
    Ctrl+F (or View > Search Modules) Search: fuzzy search over every program PICA can start

    Advanced Options is the expert route. Use it when you already know which program you want, or need one that Quick Select does not list:

    • the Cryo-con 34 and Lakeshore 340 twins of most programs
    • the standalone temperature utilities
    • the Novocontrol Alpha-AN and the bench multimeter

    Rest the pointer on a module row and a card shows what it measures, which instruments it opens and what it will ask for.

    Search works from either window and matches names, instruments, descriptions and input fields: try k2400 rt, cc34, butterfly, or even a misspelt resistence. Results list instruments first (Keithley 2400 — I-V Sweep); press Enter to launch.

  3. Command Line Interface (CLI) For headless operation (e.g., Raspberry Pi).

    pica-cli

    [!IMPORTANT] Template Scripts: The instrument control modules (CLI's) provided are designed as template scripts. Users are expected to modify these scripts programmatically to adapt them to their specific experimental requirements and custom workflows. They are also excellent for developing custom measurement protocols, sequences, and for learning instrument automation. These scripts are typically named with an 'Instrument_Control' suffix to denote their programmatic nature. This approach ensures maximum flexibility and customization for advanced research applications.

    [!NOTE] Legacy CLI Notice: The PICA CLI (pica-cli) is retained to support legacy headless workflows. While fully functional for specific protocols, this interface is less frequently maintained and may not support recent features available in the GUI.

    We strongly recommend new users utilize the PICA GUI for the most complete and supported experience.

System Requirements & Compatibility

Platforms:

  • Windows 10 / 11 (x86_64): fully supported, and used daily in the lab with real instruments.
  • Linux: installation, tests and GUIs verified, but measurements against real instruments not yet verified. See Option 3: Installing on Linux.
  • macOS: not tested.

Note

The 32-bit Novocontrol Alpha-AN frequency scan and the 32-bit GPIB scanner call Windows' gpib-32.dll directly, so they run on Windows only.

Example Usage: Running a Measurement

Upon launching PICA (pica-gui), select your desired measurement module from the main dashboard. Each module opens as a unified interface divided into two primary sections:

  1. Configuration (Control Window - Left):

    • Setup: Enlarge this window first to view all experimental parameters.
    • Parameters: Specify the Sample Name, select the File Storage Location, and choose the Instrument Address (GPIB/VISA) via the dropdown selection box.
    • Protocol: Define measurement specific settings such as voltage/current limits, temperature step sizes, and delay times.
    • Console: A scrollable log at the bottom provides a continuous, time-stamped stream of all operations and SCPI commands sent to the instruments.
  2. Visualization (Plotter Window - Right):

    • Real-Time Monitoring: Displays up to three simultaneous plots (e.g., Resistance vs. Temperature, Voltage vs. Current) updated in real-time.
    • Data Analysis: Includes options to switch axes to logarithmic scales for better visualization of wide-range data.
    • Utilities: Two buttons above the plot area provide instant access to:
      • VISA Instrument Scanner: To verify instrument connections and addresses.
      • PICA Plotter Utility: For post or during measurements comparison and detailed analysis.

The interface is designed to be minimalistic to reduce unnecessary user interaction during active high-precision, low-noise transport measurements.


Running Tests Locally

Test coverage: the suite has 3,200+ tests, all run against mocked VISA instruments, so no hardware is needed. They cover 33% of the statements in pica/ (measured 2026-10-14 with --cov=pica, v1.0.7). Live numbers are on Codecov.

To run the test suite locally, first install the development dependencies:

pip install -r requirements-dev.txt

Then, you can run the tests:

python -B -m pytest -p no:cacheprovider

How to Check Coverage Locally

To see the coverage percentage on your local machine, run this command instead:

python -B -m pytest --cov=pica --cov-report=term-missing -p no:cacheprovider

Project History

For downloadable release builds, please visit the releases page.

PICA evolved from simple offline scripts in 2022 to a full-stack automated suite.

  • v1.0.7 (Latest): Linux install guide and issue template, Keithley 2400 memristor sweep / retention / endurance modules with a read-only analysis utility, C-V module v2, K6221/2182 custom-list I-V, launcher module search and hover cards, cleaner wheel. Available on PyPI.
  • v1.0.6: Advanced Lakeshore step control (adaptive ramp rates, low-temperature safety caps), Cryo-con 34 and Lakeshore 340 support, AC resistivity (SR830 / 197A), PPMS dielectric master protocol, Novocontrol Alpha-A (experimental), I-V fixes, launcher v2, diagnostic tools and new utilities. Available on PyPI.
  • v1.0.5: E4980A frequency and temperature scan programs, Lakeshore 350 direct and step control, K6517B poling, new utilities (P-E plotter, calculators, unit converter) and core fixes.
  • v1.0.4: Documentation infrastructure release — Read the Docs integration, preprint page with automated PDF build, and CI/CD workflow updates.
  • v1.0.3: GUI refreshed with the Latte theme — lighter, warmer, and less dark. First release published to PyPI.
  • v1.0.1 / v1.0.0 (Initial Public Release): Version numbering was reset from legacy development builds (v17.0) to v1.0.0 to standardize the package for public distribution and citation.
  • v17.0: Professional directory restructuring, Semantic Versioning, and documentation overhaul.
  • v15.0: JOSS submission preparation, CI/CD integration.
  • v13.0: Transition to Multiprocessing and standardized GUI themes.

The project's earlier history and foundational development are outlined below:

2022 - 2023: Inception & Prototyping

  • 2023 (Migration): Moved from offline lab systems to GitHub; organized scripts into instrument modules (Keithley/Lake Shore).
  • 2022 (Origins): Started in an air-gapped lab with pyvisa scripts replacing manual logging.
    • Concept: Proposed by Dr. Sudip Mukherjee to automate characterisation workflows.
    • Prototypes: Built alongside hardware upgrades and cryogenic probe work at UGC-DAE CSR.

Background: For a detailed chronological log, see CHANGELOG.md.

Resources & Documentation


Citation

If you use this software in your research, please cite it:

@software{Deshmukh_PICA_2026,
  author       = {Deshmukh, Prathamesh Keshao and Mukherjee, Sudip},
  title        = {{PICA: Advanced High-Precision Transport Measurement Automation with Python}},
  month        = oct,
  day          = 14,
  year         = 2026,
  publisher    = {Zenodo},
  version      = {1.0.7},
  doi          = {10.5281/zenodo.18377216},
  url          = {https://doi.org/10.5281/zenodo.18377216}
}

Authors & Funding

This project is led by Prathamesh Deshmukh under the supervision of Dr. Sudip Mukherjee at the UGC-DAE Consortium for Scientific Research, Mumbai Centre, Bhabha Atomic Research Centre, Mumbai, 400 085, Maharashtra, India.

We acknowledge the financial support provided under the SERB-CRG project grant No. CRG/2022/005676 from the Anusandhan National Research Foundation (ANRF), a statutory body of the Department of Science and Technology (DST), Government of India.

UGC DAE CSR Logo

License

This project is licensed under the MIT License - see the LICENSE file for details.


Keywords: Python instrument control · laboratory automation · GPIB · PyVISA · SCPI · VISA · Keithley 2400 SourceMeter · Keithley 6221 current source · Keithley 2182 nanovoltmeter · Keithley 6517B electrometer · Keysight E4980A LCR meter · Lakeshore 350 temperature controller · Novocontrol Alpha-A · broadband dielectric spectroscopy · PPMS · cryogenics · transport measurements · resistivity vs temperature · I-V characterization · delta mode · magnetocapacitance · pyroelectric current · condensed matter physics · materials characterization

About

PICA (Python-based Instrument Control and Automation) is a modular, open-source software suite designed to automate advanced transport measurements for electronic devices and material samples. It serves as a robust software platform that enables advanced high‑precision characterisation of materials.

Topics

Resources

Code of conduct

Contributing

Stars

12 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages