Keithley 2400 SourceMeter (Legacy)

class pymeasure.instruments.keithley.Keithley2400Legacy(adapter, name='Keithley 2400 SourceMeter', **kwargs)

Bases: KeithleyBuffer, SCPIMixin, Instrument

Represent the Keithley 2400 SourceMeter and provide a high-level interface for interacting with the instrument.

Deprecated since version 0.16: This is a legacy version of Keithley2400 frozen at PyMeausure version 0.15 and kept for backwards compatibility.

keithley = Keithley2400("GPIB::1")

keithley.apply_current()                # Sets up to source current
keithley.source_current_range = 10e-3   # Sets the source current range to 10 mA
keithley.compliance_voltage = 10        # Sets the compliance voltage to 10 V
keithley.source_current = 0             # Sets the source current to 0 mA
keithley.enable_source()                # Enables the source output

keithley.measure_voltage()              # Sets up to measure voltage

keithley.ramp_to_current(5e-3)          # Ramps the current to 5 mA
print(keithley.voltage)                 # Prints the voltage in Volts

keithley.shutdown()                     # Ramps the current to 0 mA and disables output
apply_current(current_range=None, compliance_voltage=0.1)

Configure the instrument to apply a source current, and uses an auto range unless a current range is specified. The compliance voltage is also set.

Parameters:
  • compliance_voltage – A float in the correct range for a compliance_voltage (default: 0.1)

  • current_range – A current_range value or None (default: None)

apply_voltage(voltage_range=None, compliance_current=0.1)

Configure the instrument to apply a source voltage, and uses an auto range unless a voltage range is specified. The compliance current is also set.

Parameters:
  • compliance_current – A float in the correct range for a compliance_current (default: 0.1)

  • voltage_range – A voltage_range value or None (default: None)

property auto_output_off: Any

Control whether auto output-off is activated. Valid values are True (output off after measurement) and False (output stays on after measurement).

auto_range_source()

Configure the source to use an automatic range.

property auto_zero: Any

Control whether the auto zero option is enabled. Valid values are True (enabled) and False (disabled) and ‘ONCE’ (force immediate).

beep(frequency, duration)

Sound a system beep.

Parameters:
  • frequency – A frequency in Hz between 65 Hz and 2 MHz

  • duration – A time in seconds between 0 and 7.9 seconds

property buffer_data

Get a numpy array of values from the buffer.

property buffer_points: Any

Control (integer) the number of buffer points. This does not represent actual points in the buffer, but the configuration value instead.

check_errors()

Read all errors from the instrument.

Returns:

List of error entries.

check_get_errors()

Check for errors after having gotten a property and log them.

Called if check_get_errors=True is set for that property.

If you override this method, you may choose to raise an Exception for certain errors.

Returns:

list – List of error entries.

check_set_errors()

Check for errors after having set a property and log them.

Called if check_set_errors=True is set for that property.

If you override this method, you may choose to raise an Exception for certain errors.

Returns:

list – List of error entries.

clear()

Clear the instrument status byte.

property complete: Any

Get the synchronization bit.

This property allows synchronization between a controller and a device. The Operation Complete query places an ASCII character 1 into the device’s Output Queue when all pending selected device operations have been finished.

property compliance_current: Any

Control (floating) the compliance current in Amps.

property compliance_voltage: Any

Control the compliance voltage in Volts (float, truncated from -210 to 210).

config_buffer(points=64, delay=0)

Configure the measurement buffer for a number of points, to be taken with a specified delay.

Parameters:
  • points – The number of points in the buffer. (default: 64)

  • delay – The delay time in seconds. (default: 0)

property current: Any

Get the current in Amps if configured (float).

property current_nplc: Any

Control (floating) the number of power line cycles (NPLC) for the DC current measurements, which sets the integration period and measurement speed. Takes values from 0.01 to 10, where 0.1, 1, and 10 are Fast, Medium, and Slow respectively.

property current_range: Any

Control the measurement current range in Amps (float, truncated from -1.05 to 1.05). Auto-range is disabled when this property is set.

disable_buffer()

Disable the connection between measurements and the buffer, but does not abort the measurement process.

disable_output_trigger()

Disable the output trigger for the Trigger layer

disable_source()

Disable the source of current or voltage depending on the configuration of the instrument.

property display_enabled: Any

Control whether or not the display of the sourcemeter is enabled. Valid values are True and False.

enable_source()

Enable the source of current or voltage depending on the configuration of the instrument.

property error

Get the next error from the queue.

Deprecated since version 0.15: Use next_error instead.

property filter_count: Any

Control the number of readings that are acquired and stored in the filter buffer (integer, truncated from 1 to 100).

property filter_state: Any

Control if the filter is active (string, strictly ‘ON’ or ‘OFF’).

property filter_type: Any

Control (String) the filter’s type. REP : Repeating filter MOV : Moving filter

property id: Any

Get the identification of the instrument.

is_buffer_full()

Return True if the buffer is full of measurements.

property line_frequency: Any

Control the line frequency in Hertz (integer, strictly 50 or 60).

property line_frequency_auto: Any

Control the auto line frequency (boolean).

property max_current

Get the maximum current from the buffer.

property max_resistance

Get the maximum resistance from the buffer.

property max_voltage

Get the maximum voltage from the buffer.

property maximums: Any

Get the calculated maximums for voltage, current, and resistance from the buffer data as a list (list of floats).

property mean_current

Get the mean current from the buffer.

property mean_resistance

Get the mean resistance from the buffer.

property mean_voltage

Get the mean voltage from the buffer.

property means: Any

Get the calculated means for voltage, current, and resistance from the buffer data as a list (list of floats).

property measure_concurent_functions: Any

Control the ability to measure more than one function simultaneously (boolean).

measure_current(nplc=1, current=0.000105, auto_range=True)

Configure the measurement of current.

Parameters:
  • nplc – Number of power line cycles (NPLC) from 0.01 to 10 (default: 1)

  • current – Upper limit of current in Amps, from -1.05 A to 1.05 A (default: 0.000105)

  • auto_range – Enables auto_range if True, else uses the set current (default: True)

measure_resistance(nplc=1, resistance=210000.0, auto_range=True)

Configure the measurement of resistance.

Parameters:
  • nplc – Number of power line cycles (NPLC) from 0.01 to 10 (default: 1)

  • resistance – Upper limit of resistance in Ohms, from -210 MOhms to 210 MOhms (default: 210000.0)

  • auto_range – Enables auto_range if True, else uses the set resistance (default: True)

measure_voltage(nplc=1, voltage=21.0, auto_range=True)

Configure the measurement of voltage.

Parameters:
  • nplc – Number of power line cycles (NPLC) from 0.01 to 10 (default: 1)

  • voltage – Upper limit of voltage in Volts, from -210 V to 210 V (default: 21.0)

  • auto_range – Enables auto_range if True, else uses the set voltage (default: True)

property min_current

Get the minimum current from the buffer.

property min_resistance

Get the minimum resistance from the buffer.

property min_voltage

Get the minimum voltage from the buffer.

property minimums: Any

Get the calculated minimums for voltage, current, and resistance from the buffer data as a list (list of floats).

property next_error: Any

Get the next error in the queue. If you want to read and log all errors, use check_errors() instead.

property options: Any

Get the device options installed.

property output_off_state: Any

Control the output-off state of the SourceMeter. HIMP : output relay is open, disconnects external circuitry. NORM : V-Source is selected and set to 0V, Compliance is set to 0.5% full scale of the present current range. ZERO : V-Source is selected and set to 0V, compliance is set to the programmed Source I value or to 0.5% full scale of the present current range, whichever is greater. GUAR : I-Source is selected and set to 0A

output_trigger_on_external(line=1, after='DEL')

Configure the output trigger on the specified trigger link line number, with the option of supplying the part of the measurement after which the trigger should be generated (default to delay, which is right before the measurement)

Parameters:
  • line – A trigger line from 1 to 4 (default: 1)

  • after – An event string that determines when to trigger (default: 'DEL')

ramp_to_current(target_current, steps=30, pause=0.02)

Ramp to a target current from the set current value over a certain number of linear steps, each separated by a pause duration.

Parameters:
  • target_current – A current in Amps

  • steps – An integer number of steps (default: 30)

  • pause – A pause duration in seconds to wait between steps (default: 0.02)

ramp_to_voltage(target_voltage, steps=30, pause=0.02)

Ramp to a target voltage from the set voltage value over a certain number of linear steps, each separated by a pause duration.

Parameters:
  • target_voltage – A voltage in Amps

  • steps – An integer number of steps (default: 30)

  • pause – A pause duration in seconds to wait between steps (default: 0.02)

read(**kwargs)

Read up to (excluding) read_termination or the whole read buffer.

Return type:

str

read_binary_values(**kwargs)

Read binary values from the device.

read_bytes(count, **kwargs)

Read a certain number of bytes from the instrument.

Parameters:
  • count (int) – Number of bytes to read. A value of -1 indicates to read the whole read buffer.

  • kwargs – Keyword arguments for the adapter.

Returns bytes:

Bytes response of the instrument (including termination).

Return type:

bytes

reset()

Reset the instrument and clear the queue.

reset_buffer()

Reset the buffer.

property resistance: Any

Get the resistance in Ohms, if configured for this reading.

property resistance_nplc: Any

Control the number of power line cycles (NPLC) for the 2-wire resistance measurements, which sets the integration period and measurement speed. Takes values from 0.01 to 10, where 0.1, 1, and 10 are Fast, Medium, and Slow respectively.

property resistance_range: Any

Control the resistance range in Ohms (float, truncated from 0 to 210e6). Auto-range is disabled when this property is set.

sample_continuously()

Cause the instrument to continuously read samples and turns off any buffer or output triggering

set_timed_arm(interval)

Set up the measurement to be taken with the internal trigger at a variable sampling rate defined by the interval in seconds between sampling points

set_trigger_counts(arm, trigger)

Set the number of counts for both the sweeps (arm) and the points in those sweeps (trigger), where the total number of points can not exceed 2500

shutdown()

Ensure that the current or voltage is turned to zero and disable the output.

property source_current: Any

Control the source current in Amps (float, truncated from -1.05 to 1.05).

property source_current_range: Any

Control the source current range in Amps (float, truncated from -1.05 to 1.05). Auto-range is disabled when this property is set.

property source_delay: Any

Control (floating) a manual delay for the source after the output is turned on before a measurement is taken. When this property is set, the auto delay is turned off. Valid values are between 0 [seconds] and 999.9999 [seconds].

property source_delay_auto: Any

Control the auto delay (boolean).

property source_enabled: Any

Control whether the source is enabled, takes values True or False. The convenience methods enable_source() and disable_source() can also be used.

property source_mode: Any

Control (string) the source mode, which can take the values ‘current’ or ‘voltage’. The convenience methods apply_current() and apply_voltage() can also be used.

property source_voltage: Any

Control the source voltage in Volts (float).

property source_voltage_range: Any

Control the source voltage range in Volts (float, truncated from -210 to 210). Auto-range is disabled when this property is set.

property standard_devs: Any

Get the calculated standard deviations for voltage, current, and resistance from the buffer data as a list (list of floats).

start_buffer()

Starts the buffer.

status()

Get the status byte and Master Summary Status bit.

property std_current

Get the current standard deviation from the buffer.

property std_resistance

Get the resistance standard deviation from the buffer.

property std_voltage

Get the voltage standard deviation from the buffer.

stop_buffer()

Abort the buffering measurement, by stopping the measurement arming and triggering sequence. If possible, a Selected Device Clear (SDC) is used.

triad(base_frequency, duration)

Sound a musical triad using the system beep.

Parameters:
  • base_frequency – A frequency in Hz between 65 Hz and 1.3 MHz

  • duration – A time in seconds between 0 and 7.9 seconds

trigger()

Execute a bus trigger, which can be used when trigger_on_bus() is configured.

property trigger_count: Any

Control the trigger count (integer, truncated from 1 to 2500).

property trigger_delay: Any

Control the trigger delay in seconds (float, truncated from 0 to 999.9999).

trigger_immediately()

Configure measurements to be taken with the internal trigger at the maximum sampling rate.

trigger_on_bus()

Configure the trigger to detect events based on the bus trigger, which can be activated by trigger().

trigger_on_external(line=1)

Configure the measurement trigger to be taken from a specific line of an external trigger

Parameters:

line – A trigger line from 1 to 4 (default: 1)

use_front_terminals()

Enable the front terminals for measurement, and disable the rear terminals.

use_rear_terminals()

Enable the rear terminals for measurement, and disable the front terminals.

property voltage: Any

Get the voltage in Volts if configured (float).

property voltage_nplc: Any

Control the number of power line cycles (NPLC) for the DC voltage measurements, which sets the integration period and measurement speed. Takes values from 0.01 to 10, where 0.1, 1, and 10 are Fast, Medium, and Slow respectively.

property voltage_range: Any

Control the measurement voltage range in Volts (float, truncated from -210 to 210). Auto-range is disabled when this property is set.

wait_for(query_delay=None)

Wait for some time. Used by ‘ask’ to wait before reading.

Parameters:

query_delay (Optional[float]) – Delay between writing and reading in seconds. None is default delay. (default: None)

Return type:

None

wait_for_buffer(should_stop=<function KeithleyBuffer.<lambda>>, timeout=60, interval=0.1)

Block the program, waiting for a full buffer. This function returns early if the should_stop function returns True or the timeout is reached before the buffer is full.

Parameters:
  • should_stop – A function that returns True when this function should return early (default: <function KeithleyBuffer.<lambda> at 0x76f1f4519800>)

  • timeout – A time in seconds after which this function should return early (default: 60)

  • interval – A time in seconds for how often to check if the buffer is full (default: 0.1)

property wires: Any

Control the number of wires in use for resistance measurements (integer, strictly 2 or 4).

write(command, **kwargs)

Write a string command to the instrument appending write_termination.

Parameters:
  • command (str) – command string to be sent to the instrument

  • kwargs – Keyword arguments for the adapter.

Return type:

None

write_binary_values(command, values, *args, **kwargs)

Write binary values to the device.

Parameters:
  • command (str) – Command to send.

  • values (Sequence[Union[int, float]]) – The values to transmit.

  • **kwargs (*args,) – Further arguments to hand to the Adapter.

Return type:

None

write_bytes(content, **kwargs)

Write the bytes content to the instrument.

Return type:

None