Skip to main content

Full Python driver for the Keithley 2600 series.

Project description


Full Python driver for the Keithley 2600 series source measurement units.


Keithley driver with access to base functions and higher level functions such as IV measurements, transfer and output curves, etc. Base commands replicate the functionality and syntax from the Keithley TSP functions, which have a syntax similar to python.


There are currently no checks for allowed arguments in the base commands. See the Keithley 2600 reference manual for all available commands and arguments. Almost all remotely accessible commands can be used with this driver. Not supported are:

  • tspnet.execute() # conflicts with Python's execute command
  • lan.trigger[N].connected # conflicts with the connected attribute of Keithley2600Base
  • All Keithley IV sweep commands. We implement our own in the Keithley2600 class.


Connect to the Keithley 2600 and perform some base commands:

>>> from keithley2600 import Keithley2600
>>> k = Keithley2600('TCPIP0::')
>>> k.smua.source.output = k.smua.OUTPUT_ON  # turn on smuA
>>> k.smua.source.levelv = -40 # sets smuA source level to -40V
>>> volts = k.smua.measure.v() # measures and returns the smuA voltage
>>> k.smua.measure.v(k.smua.nvbuffer1) # measures the voltage, stores the result in buffer
>>> k.smua.nvbuffer1.clear() # clears nvbuffer1 of smuA

Higher level commands defined in the driver:

>>> data = k.readBuffer(k.smua.nvbuffer1) # reads entries from nvbuffer1 of smuA
>>> k.setIntegrationTime(k.smua, 0.001) # in sec

>>> k.applyVoltage(k.smua, -60) # applies -60V to k.smua
>>> k.applyCurrent(k.smub, 0.1) # sources 0.1A from k.smub
>>> k.rampToVoltage(k.smua, 10, delay=0.1, stepSize=1) # ramps k.smua to 10V in 1V steps
>>> i = k.smua.measure.i() # measures current at smuA

>>> k.voltageSweepSingleSMU(smu=k.smua, smu_sweeplist=list(range(0, 61)),
...                         t_int=0.1, delay=-1, pulsed=False) # records an IV curve
>>> k.voltageSweepDualSMU(smu1=k.smua, smu2=k.smub, smu1_sweeplist=list(range(0, 61)),
...                       smu2_sweeplist=list(range(0, 61)), t_int=0.1, delay=-1,
...                       pulsed=False) # records dual SMU IV curve


Download or clone the repository. Install the package by running

$ pip install git+


See the Keithley 2600 reference manual here for all available commands and arguments.

Project details

Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
keithley2600-1.1.0.tar.gz (24.0 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page