Changelog¶
v1.4.0-dev¶
Added:
- Save time stamps with measurement data.
Changed:
- Renamed
ResultTablePlot.update_plottoResultTablePlot.update. - Improved documentation of (live) plotting.
- Added
SENSE_LOCAL,SENSE_REMOTEandSENSE_CALAto dictionary.
Fixed:
- Fixed explicitly defined methods such as
Keithley2600.applyVoltagenot appearing in dictionary.
v1.3.3¶
Added:
- Added
__dir__proprty to Keithley2600 and its classes to support autocompletion. The dictionary of commands is craeted from the Keithley reference manual.
Changed:
- Remember PyVisa connection settings which are passed as keyword arguments to
Keithley2600. Previously, callingKeithley2600.connect(...)would revert to default settings.
Fixed:
- Explicitly set source mode in
Keithley2600.applyCurrentandKeithley2600.applyVoltage.
v1.3.2¶
This release drops support for Python 2.7. Only Python 3.6 and higher are supported
Fixed:
- Fixed a bug in
rampToVoltagewhere the target voltage would not be set correctly if it was smaller than the step size.
v1.3.1¶
Added:
- Optional argument
raise_keithley_errors: IfTrue, the Keithley’s error queue will be checked after each command and any Keithley errors will be raised as Python errors. This causes significant communication overhead but facilitates the debugging of faulty scripts since an invalid command will raise a descriptive error instead of failing silently.
Fixed:
- Thread safety of communication with Keithley.
Keithley2600Basenow uses its own lock instead of relying on PyVisa’s thread safety.
v1.3.0¶
This version includes some API changes and updates to the documentation and doc strings.
Added:
- Accept
range(Python 2 and 3) andxrange(Python 2) as input for voltage sweep lists.
Changed:
- Methods
headerandparse_headerofResultTableare now private. - Cleaned up and updated documentation.
Removed:
- Removed deprecated function
Keithley2600.clearBuffer(). Usebuffer.clear()andbuffer.clearcache()instead wherebufferis a Keithley buffer instance, such asKeithley2600.smua.nvbuffer1.
v1.2.2¶
Added:
- Added
shapeproperty toResultTable. - Added string representation of
ResultTablewhich returns the first 7 rows as neatly formatted columns (similar to pandas dataframes).
v1.2.1¶
Fixed:
- Fixed a critical error when initializing and appending columns to an emtpy
ResultTableinstance.
v1.2.0¶
Added:
- New method
readErrorQueuewhich returns a list of all errors in the Keithley’s error queue. - Support for Keithley TSP functions with multiple return values. Previously, only the first value would be returned.
- Added
ResultTablePlotclass to plot the data in aResultTable. - Added live plotting to
ResultTableand its subclasses. Pass the keyword argumentlive=Trueto theplotmethod for the plot to update dynamically when new data is added.
Changed:
- Optimized I/O: Keithley function calls to only use a single
querycall instead of consecutivequeryandreadcalls. - Emtpy strings returned by the Keithley will always be converted to
None. This is necessary to enable the above change. - Renamed
TransistorSweepDatatoFETResultTable. Renamedsweep_datamodule toresult_table.
Removed:
- Removed
IVSweepData. The was no clear added value over usingResultTabledirectly.
v1.1.1¶
Fixed:
- Fixed a thread safety bug: Fixed a bug that could cause the wrong result to be returned
by a query when using
Keithley2600from multiple threads.
v1.0.0¶
Added:
- Added the base class
ResultTableto store, save and load tables of measurement data together with column titles, units, and measurement parameters. The data is stored internally as a 2D numpy array and can be accessed in a dictionary-type fashion with column names as keys. Additionally,ResultTableprovides a basic plotting method using matplotlib.
Changed:
TrasistorSweepDataandIVSweepDatanow inherit fromResultTableand have beensignificantly simplified. Formats for saving and loading the data to files have slightly changed:
The line with column headers is now marked as a comment and starts with ‘#’.
All given measurement parameters are saved in the file’s _header. Specifically,
TrasistorSweepData.load()expects the parametersweep_typeto be present in the _header and have one of the values: ‘transfer’ or ‘output’.Options to read and write in CSV format instead of tab-delimited columns are given.
As a result, data files created by versions < 1.0.0 need to be modified as follows to be recognized:
Prepend ‘#’ to the line with column titles.
Add the line ‘# sweep_type: type’ to the _header where type can be ‘transfer’, ‘output’, or ‘iv’.
Removed:
clearBuffersmethod fromKeithley2600has been deprecated. Clear the buffers directly withbuffer.clear()instead, wherebufferis a keithley buffer instance such ask.smua.nvbuffer1.
v0.3.0¶
Added:
Keithley2600methods now acceptKeithley2600objects as arguments, for instance, one can now write# assume we have a Keithley2600 instance 'k' k.smua.measureiv(k.smua.nvbuffer1, k.smua.nvbuffer2)
instead of needing to use their string representation:
k.smua.measureiv('smua.nvbuffer1', 'smua.nvbuffer2')
Keyword arguments can now be given to
Keithley2600()and will be passed on to the visa resource (e.g.,baud_rate=9600).
Changed:
- Code simplifications resulting from the above.
k.readBuffer(buffer)no longer clears the given buffer.- When attempting to create a new instance of
Keithley2600with the name VISA address as an existing instance, the existing instance is returned instead.
Removed:
k.clearBuffers(...)now logs a deprecation warning and will be removed in v1.0. Clear the buffers directly withbuffer.clear()instead.