Skip to main content

PIEC logo

PIEC — Python Integrated Experimental Control

Documentation Status PyPI version PyPI license Launch Binder

Example ferroelectric PUND current traces and polarization hysteresis loop collected and analyzed with piec

PIEC is an open-source Python library that provides infrastructure for laboratory experiment design and operation through a standardized, hierarchical, object-oriented framework. Originally developed at Brown University as a fork of the ferroelectric testing-focused EKPY Python suite, PIEC is designed to be extended to any experimental domain that requires programmable instrument control.


Installation

PIEC requires Python 3.9 or higher:

pip install piec

Quickstart GUI (No Coding Required)

Run the desktop quickstart app to generate and capture waveforms with an interactive graphical interface:

python Measurements/Quickstart/quick_start_local_GUI.py
  • Works out of the box in Virtual simulation mode (no hardware required).
  • Connect physical instruments with dropdown selection or Autodetect.
  • Configure sine, square, or ramp waveforms and view live scope captures.
  • Optionally save captured traces directly to CSV.

Prefer running in your browser? Launch the interactive notebook on Binder.


Quickstart in Python

Run a complete ferroelectric hysteresis measurement using virtual instruments:

from piec.drivers.awg.k_81150a import Keysight81150a
from piec.drivers.oscilloscope.k_dsox3024a import KeysightDSOX3024a
from piec.measurement.discrete_waveform import HysteresisLoop

# Connect in virtual simulation mode
awg = Keysight81150a("VIRTUAL")
osc = KeysightDSOX3024a("VIRTUAL")

# Configure, capture, analyze, and display plots
experiment = HysteresisLoop(awg, osc, save_dir=".", show_plots=True)
experiment.run_experiment()

To run on hardware, pass your instrument's VISA address instead of "VIRTUAL", or use autodetection:

from piec.drivers.autodetect import autodetect

awg   = autodetect('awg')
scope = autodetect('scope')

For complete driver documentation and advanced measurement workflows, see the User Guide.


Supported Instruments

Category Models
Arbitrary Waveform Generator Keysight 81150A, Agilent 33220A, Agilent 33500, Siglent SDG2000X
Oscilloscope Keysight DSOX3024A, Agilent DSOX5000, Rigol DS1000Z, Tektronix TDS2000, Tektronix TDS6604, LeCroy SDA6020
Source Meter Keithley 2400
Lock-in Amplifier Stanford Research SR830
Digital Multimeter Agilent 34410A, Keithley 2000, Keithley 193A
Pulser Berkeley Nucleonics BNC 765
DAQ MCC USB-231, MCC USB-1208HS
DC Calibrator EDC 522
Stepper Motor Arduino Stepper (custom serial)

Full instrument list →


Contributing

New drivers can be added by implementing a driver subclass alongside its Virtual Instrument, following the Driver Development Guide. New experiment types require implementing a Measurement subclass without modifying existing code.

For general guidelines, see the Contributing Guide.


Support

Issues, bug reports, and feature requests: Issue Tracker

Maintainer: Geo Fratian — geo_fratian@brown.edu


Citation

Please cite this software following the CITATION.cff.

Fratian, G., Qualls, A., Phan, J., Pankaj, R., & Caretta, L. (2026).
PIEC: A Python library for Integrated Experimental Control [Software].
https://github.com/TransluSci/piec

Metadata

Release files for piec 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for piec 1.0.3
File Size Uploaded
piec-1.0.3.tar.gz 153.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for piec 1.0.3
File Interpreter ABI Platform
piec-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 344.6 kB

Release files / piec-1.0.3.tar.gz

Download URL piec-1.0.3.tar.gz
Size 153.0 kB
Tags Source
SHA-256 checksum
How to use checksums
050bebb3d7a6f8700efeda1eb230f8e1aad1f70acd6bc8fa6dc460125b0308b1
BLAKE2b-256 checksum
How to use checksums
c69397a40c272e84bfe64f71906121e4e1b9a63cc07f57bf564ee7878dd001b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release files / piec-1.0.3-py3-none-any.whl

Download URL piec-1.0.3-py3-none-any.whl
Size 191.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1a367696724628261efae234c26f5d4d8ab39222483b2fad5f0156b5a2c1643d
BLAKE2b-256 checksum
How to use checksums
9f7052f0c675960dd33a2182d9ddcd63468c9a39af0194ea0480d31769138624
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.0.64

2 release files

0.0.58

2 release files

0.0.57

2 release files

0.0.47

2 release files

0.0.46

2 release files

0.0.45

2 release files

0.0.44

2 release files

0.0.43

2 release files

0.0.40

2 release files

0.0.39

2 release files

0.0.38

2 release files

0.0.37

2 release files

0.0.36

2 release files

0.0.34

2 release files

0.0.33

2 release files

0.0.32

2 release files

0.0.31

2 release files

0.0.30

2 release files

0.0.29

2 release files

0.0.28

2 release files

0.0.27

2 release files

0.0.26

2 release files

0.0.25

2 release files

0.0.24

2 release files

0.0.23

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.18

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page