Skip to content

Releases: OE-FET/keithley2600

v2.1.0

08 Jan 19:58
dfb5b2d
Compare
Choose a tag to compare
  • Remove usage of deprecated np.complex. Thanks to @jco-c!
  • Made create_lua_attr idempotent on attribute existence.

v2.0.2

23 Sep 11:04
Compare
Choose a tag to compare

Plots of ResultTable data will now show a legend by default.

v2.0.1

27 Nov 13:35
Compare
Choose a tag to compare

Fixes an error where a voltage sweep would end with an AttributeError: cannot set property busy.

v2.0.0

04 Nov 18:57
Compare
Choose a tag to compare

This release completely overhauls how Keithley commands are generated. Instead of hard-coding available commands for a particular series or model of Keithley, all available commands are retrieved on demand from the Keithley itself. This is possible because the Keithley's TSP scripts use the Lua programming language which allows such introspection.

The main disadvantage of this approach is that most Keithley attributes will only be generated after connecting to an instrument. The main advantage is that all Keithley commands of all models which use TSP are supported and support for any future commands will be automatic. This removes the need to update the driver as the command set evolves, barring changes to the syntax, and enables automatic support for models with different command sets or a different number of SMUs. Furthermore, there have been issues in the past with missing commands and constants due to oversight. Those will no longer occur.

The second major change is a switch from camel-case to snake-case for the public API. For example, Keithley2600.applyVoltage has been renamed to Keithley2600.apply_voltage.

Other changes include:

  • Type hints are used throughout.
  • The Python syntax has been modernised for Python 3.6.
  • The Keithley no longer beeps at the end of custom sweeps.
  • Added API Keithley2600.send_trigger to send a trigger signal to the Keithley. This can be used to manually start a pre-programmed sweep.
  • Added API KeithleyClass.create_lua_attr to create a new attribute in the Keithley namespace. Use Keithley2600.create_lua_attr to create global variables.
  • Added API KeithleyClass.delete_lua_attr to delete an attribute from the Keithley namespace. Use Keithley2600.delete_lua_attr to delete global variables.
  • Keithley2600.connect() now returns True if the connection was established and False otherwise.

v2.0.0.dev1

03 Nov 13:52
Compare
Choose a tag to compare
v2.0.0.dev1 Pre-release
Pre-release

This release completely overhauls how Keithley commands are generated. Instead of hard-coding available commands for a particular series or model of Keithley, all available commands are retrieved on demand from the Keithley itself. This is possible because the Keithley's TSP scripts use the Lua programming language which allows such introspection.

The main disadvantage of this approach is that most Keithley attributes will only be generated after connecting to an instrument. The main advantage is that all Keithley commands of all models which use TSP are supported and support for any future commands will be automatic. This removes the need to update the driver as the command set evolves, barring changes in syntax, and enables automatic support for models with different command sets or a different number of SMUs.

Other changes include:

  • Type hints are used throughout.
  • The Python syntax has been modernised for Python 3.6.
  • The Keithley no longer beeps at the end of custom sweeps.

v1.4.1

10 Oct 00:11
Compare
Choose a tag to compare

Changed:

  • Replaced deprecated visa import with pyvisa.

v1.4.0

05 Mar 15:01
Compare
Choose a tag to compare

Added:

  • Save time stamps with measurement data.

Changed:

  • Renamed ResultTablePlot.update_plot to ResultTablePlot.update.
  • Improved documentation of (live) plotting.
  • Added SENSE_LOCAL, SENSE_REMOTE and SENSE_CALA to dictionary.

Fixed:

  • Fixed explicitly defined methods such as Keithley2600.applyVoltage not appearing in dictionary.

v1.3.3

27 Jan 12:46
Compare
Choose a tag to compare

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, calling Keithley2600.connect(...) would revert to default settings.

Fixed:

  • Explicitly set source mode in Keithley2600.applyCurrent and Keithley2600.applyVoltage.

v1.3.2

29 Oct 17:00
a83a65c
Compare
Choose a tag to compare

This release drops support for Python 2.7. Only Python 3.6 and higher are supported

Fixed:

  • Fixed a bug in rampToVoltage where the target voltage would not be set correctly if it was
    smaller than the step size.

v1.3.1

22 Sep 12:27
Compare
Choose a tag to compare

Added:

  • Keyword argument and attribute raise_keithley_errors: If True, 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 an error with a descriptive message instead of failing silently.

Fixed:

  • Thread safety of communications with Keithley. Keithley2600Base now uses its own lock instead of relying on PyVisa's thread safety. See pyvisa issue 262:

    By the way the thread safety simply means that VISA won't crash for order from different threads but there is no lock preventing out of order operations on a single resource. For that you need to use a lock manually.