pylablib.devices.Lakeshore package

Submodules

pylablib.devices.Lakeshore.base module

exception pylablib.devices.Lakeshore.base.LakeshoreError[source]

Bases: pylablib.core.devio.base.DeviceError

Generic Lakeshore devices error

args
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

exception pylablib.devices.Lakeshore.base.LakeshoreBackendError(exc)[source]

Bases: pylablib.devices.Lakeshore.base.LakeshoreError, pylablib.core.devio.comm_backend.DeviceBackendError

Generic Lakeshore backend communication error

args
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

class pylablib.devices.Lakeshore.base.TLakeshore218AnalogSettings(bipolar, mode, channel, source, high_value, low_value, man_value)

Bases: tuple

bipolar
channel
count()

Return number of occurrences of value.

high_value
index()

Return first index of value.

Raises ValueError if the value is not present.

low_value
man_value
mode
source
class pylablib.devices.Lakeshore.base.TLakeshore218FilterSettings(enabled, points, window)

Bases: tuple

count()

Return number of occurrences of value.

enabled
index()

Return first index of value.

Raises ValueError if the value is not present.

points
window
class pylablib.devices.Lakeshore.base.TLakeshore218CurveHeader(name, serial, fmt, limit, coeff)

Bases: tuple

coeff
count()

Return number of occurrences of value.

fmt
index()

Return first index of value.

Raises ValueError if the value is not present.

limit
name
serial
class pylablib.devices.Lakeshore.base.Lakeshore218(conn)[source]

Bases: pylablib.core.devio.SCPI.SCPIDevice

Lakeshore 218 temperature controller.

The channels are enumerated from 1 to 8 and are split into 2 groups: "A" for 1-4 and "B" for 5-8.

Parameters:conn – serial connection parameters (usually port or a tuple containing port and baudrate)
Error

alias of LakeshoreError

ReraiseError

alias of LakeshoreBackendError

is_enabled(channel)[source]

Check if a given channel is enabled

set_enabled(channel, enabled=True)[source]

Enable or disable a given channel

get_sensor_type(group)[source]

Get sensor type for a given group ("A" for sensors 1-4 or "B" for sensors 5-8).

For types, see INTYPE command description in the Lakeshore 218 programming manual.

set_sensor_type(group, sensor_type)[source]

Set sensor type for a given group ("A" for sensors 1-4 or "B" for sensors 5-8).

For types, see INTYPE command description in the Lakeshore 218 programming manual.

get_sensor_curve_index(channel)[source]

Get sensor curve index for a given channel (1 to 8).

For curve descriptions, see INCRV command description in the Lakeshore 218 programming manual.

set_sensor_curve_index(channel, index)[source]

Get sensor curve index for a given channel (1 to 8).

For curve descriptions, see INCRV command description in the Lakeshore 218 programming manual.

get_curve_header(index)[source]

Get header of a given curve (1-9 or 21-28).

Return tuple (name, serial, fmt, limit, coeff). For values descriptions, see CRVHDR command description in the Lakeshore 218 programming manual.

set_curve_header(index, name=None, serial=None, fmt=None, limit=None, coeff=None)[source]

Set header of a given user curve (21-28).

For values descriptions, see CRVHDR command description in the Lakeshore 218 programming manual.

get_curve(index, trim_zeros=True)[source]

Get values of a given curve (1-9 or 21-28).

Return 2-column numpy array with up to 200 points, where the first column is sensor reading, and the second is temperature; for associated sensor units, see get_curve_header(). If trim_zeros==True, trim the trailing zero-valued points. Note, that it takes about 10 seconds to complete.

set_curve(index, curve)[source]

Set values of a given user curve (21-28).

curve is a 2-column numpy array with up to 200 points, where the first column is sensor reading, and the second is temperature; for associated sensor units, see get_curve_header(). Note, that it takes about 20 seconds to complete.

get_temperature(channel)[source]

Get readings (in Kelvin) on a given channel (1 to 8)

get_all_temperatures()[source]

Get readings (in Kelvin) on all channels

get_sensor_reading(channel)[source]

Get readings (in sensor units) on a given channel (1 to 8)

get_all_sensor_readings()[source]

Get readings (in sensor units) on all channels

get_analog_output_settings(output)[source]

Get analog output settings for a given output (1 or 2).

For parameters, see setup_analog_output() and ANALOG command description in the Lakeshore 218 programming manual.

setup_analog_output(output, bipolar=None, mode=None, channel=None, source=None, high_value=None, low_value=None, man_value=None)[source]

Setup analog output settings for a given output (1 or 2).

For parameters, see ANALOG command description in the Lakeshore 218 programming manual. Value of None means keeping the current parameter value.

set_analog_output_value(output, value, bipolar=False, enabled=True)[source]

Set manual analog output value.

A simplified version of setup_analog_output().

get_analog_output(output)[source]

Get value (in percents of the total range) at a given output (1 or 2)

get_filter_settings(channel)[source]

Get input filter settings for a given channel (1 to 8).

For parameters, see setup_filter() and FILTER command description in the Lakeshore 218 programming manual.

setup_filter(channel, enabled=None, points=None, window=None)[source]

Setup input filter settings for a given channel (1 to 8).

For parameters, see FILTER command description in the Lakeshore 218 programming manual. Value of None means keeping the current parameter value.

BackendError

alias of pylablib.core.devio.comm_backend.DeviceBackendError

class NoParameterCaller(device, kind)

Bases: object

Class to simplify calling functions without a parameter

apply_settings(settings)

Apply the settings.

settings is a dict {name: value} of the available device settings. Non-applicable settings are ignored.

ask(msg, data_type='string', delay=0.0, timeout=None, read_echo=False)

Write a message and read a reply.

msg is the query message, delay is the delay between write and read. Other parameters are the same as in read(). If read_echo==True, assume that the device first echoes the input and skip it.

close()

Close the backend

flush(one_line=False)

Flush the read buffer (read all the available data and return the number of bytes read).

If one_line==True, read only a single line.

static get_arg_type(arg)

Autodetect argument type

get_device_variable(key)

Get the value of a settings, status, or full info parameter

get_esr(timeout=None)

Get the device status register (by default, "*ESR?" command)

get_full_info(include=0)

Get dict {name: value} containing full device information (including status and settings).

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

get_full_status(include=0)

Get dict {name: value} containing the device status (including settings).

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

get_id(timeout=None)

Get the device IDN. (query SCPI '*IDN?' command)

get_settings(include=0)

Get dict {name: value} containing all the device settings.

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

is_opened()

Check if the device is connected

lock(timeout=None)

Lock the access to the device from other threads/processes (isn’t necessarily implemented)

locking(timeout=None)

Context manager for lock & unlock

open()

Open the backend

static parse_array_data(data, fmt, include_header=False)

Parse the data returned by the device. fmt is DataFormat description in numpy format (e.g., "<u2").

If include_header==True, the data is assumed to be in a (somewhat) standard SCPI format: b'#', then a single digit s denoting length of the size block, then s digits denoting length of the data (in bytes) followed by the actual data. Otherwise (include_header==False), assume that the header is already removed.

read(data_type='string', timeout=None)

Read data from the device.

data_type determines the type of the data. Can be 'raw' (just raw data), 'string' (with trailing and leading spaces stripped), 'int', 'float', 'bool' (interprets 0 or 'off' as False, anything else as True), 'value' (returns tuple (value, unit), where value is float), a callable (return the result of this callable applied to the string value), a dictionary (return the stored value corresponding to the string value, or to the value converted into integer if the string value is not present), or a list of data types (the result is treated as a list of values with the given types separated by commas). timeout overrides the default value.

read_binary_array_data(include_header=False, timeout=None, flush_term=True)

Read a binary data in the from the device.

The data assumes the standard binary transfer header consisting of "#" symbol, then a single digit with the size of the length string, then the length string containing the length of the binary data (in bytes). If include_header==True, return the data with the header; otherwise, return only the content. If flush_term==True, flush the following line to skip terminator characters after the binary data, which are added by some devices. timeout overrides the default value.

reconnect(new_instrument=True, ignore_error=True)

Remake the connection.

If new_instrument==True, create a new backend instance. If ignore_error==True, ignore errors on closing.

reset()

Reset the device (by default, "*RST" command)

set_device_variable(key, value)

Set the value of a settings parameter

sleep(delay)

Wait for delay seconds

unlock()

Unlock the access to the device from other threads/processes (isn’t necessarily implemented)

using_write_buffer()

Context manager for using a write buffer.

While it’s active, all the consecutive write() operations are bundled together with ; delimiter. The actual write is performed at the read()/ask() operation or at the end of the block.

wait(wait_type='sync', timeout=None, wait_callback=None)

Pause execution until device overlapped commands are complete.

wait_type is either 'sync' (perform wait_sync()), 'dev' (perform wait_dev()) or 'none' (do nothing).

wait_dev()

Pause execution of the device commands until device overlapped commands (e.g., taking sweeps) are complete.

Note that the code execution is not paused.

wait_sync(timeout=None, wait_callback=None)

Pause execution of the script until device overlapped commands (e.g., taking sweeps) are complete.

timeout and wait_callback override default constructor parameters.

write(msg, arg=None, arg_type=None, unit=None, bool_selector=None, wait_sync=None, read_echo=False, read_echo_delay=0.0)

Send a command.

Parameters:
  • msg (str) – Text message.
  • arg – Optional argument to append in the end. If a list of arguments is supplied, the result is joined with ",".
  • arg_type (str) – Argument type. Can be 'raw' (in which case data is sent raw), 'string', 'int', 'float', 'bool', a format string (such as '{:.3f}') or a list of argument types (for an iterable argument); if format string is used and the argument is a list or a tuple, then it is expanded as a list of arguments (e.g., arg_type='{0};{1}' with arg=[1,2] will produce a string '1;2'); if a list of types is used, each element of arg is converted using the corresponding type, and the result is joined with ",".
  • unit (str) – If not None, use it as a unit to append after the value.
  • bool_selector (tuple) – A tuple (false_value, true_value) of two strings to represent bool argument; by default, use ._bool_selector attribute.
  • wait_sync – if True, append the sync command (specified as ._wait_sync_comm attribute, "*OPC?" by default) after the message and pause the execution command is complete; useful in long set operations, where the device might ignore later inputs until the current command is complete; if None, use the class default ._default_write_sync attribute (False by default).
  • read_echo (bool) – If True, read a single line after write.
  • read_echo_delay (float) – The delay between write and read if read_echo==True.
class pylablib.devices.Lakeshore.base.TLakeshore370RangeSettings(exc_mode, exc_range, res_range, autorange, enable)

Bases: tuple

autorange
count()

Return number of occurrences of value.

enable
exc_mode
exc_range
index()

Return first index of value.

Raises ValueError if the value is not present.

res_range
class pylablib.devices.Lakeshore.base.TLakeshore370AnalogSettings(bipolar, mode, channel, source, high_value, low_value, man_value)

Bases: tuple

bipolar
channel
count()

Return number of occurrences of value.

high_value
index()

Return first index of value.

Raises ValueError if the value is not present.

low_value
man_value
mode
source
class pylablib.devices.Lakeshore.base.TLakeshore370FilterSettings(enabled, settle_time, window)

Bases: tuple

count()

Return number of occurrences of value.

enabled
index()

Return first index of value.

Raises ValueError if the value is not present.

settle_time
window
class pylablib.devices.Lakeshore.base.Lakeshore370(conn)[source]

Bases: pylablib.core.devio.SCPI.SCPIDevice

Lakeshore 370 resistance bridge / temperature controller.

All channels are enumerated from 0.

Parameters:conn – serial connection parameters (usually port or a tuple containing port and baudrate)
Error

alias of LakeshoreError

ReraiseError

alias of LakeshoreBackendError

get_temperature(channel)[source]

Get temperature readings (in K) on a given channel

get_resistance(channel)[source]

Get resistance readings (in Ohm) on a given channel

get_sensor_power(channel)[source]

Get dissipated power (in W) on a given channel

select_channel(channel)[source]

Select measurement channel

get_channel()[source]

Get current measurement channel

get_channel_range_settings(channel)[source]

Setup the current measurement channel range parameters.

For parameters, see setup_channel_range() and RDGRNG command description in the Lakeshore 370 programming manual.

setup_channel_range(channel=None, exc_mode='v', exc_range=1, res_range=22, autorange=True, enable=True)[source]

Setup the measurement channel range (all channels by default).

exc_mode is the excitation mode ("i" or "v"), exc_range is the excitation range (1 is smallest), res_range is the resistance range (1 is smallest). For range descriptions, see Lakeshore 370 programming manual.

get_analog_output_settings(output)[source]

Get analog output settings for a given output (1 or 2).

For parameters, see setup_analog_output() and ANALOG command description in the Lakeshore 370 programming manual.

setup_analog_output(output, bipolar=None, mode=None, channel=None, source=None, high_value=None, low_value=None, man_value=None)[source]

Setup analog output settings for a given output (1 or 2).

For parameters, see ANALOG command description in the Lakeshore 370 programming manual. Value of None means keeping the current parameter value.

set_analog_output_value(output, value, bipolar=False, enabled=True)[source]

Set manual analog output value.

A simplified version of setup_analog_output().

get_analog_output(output)[source]

Get value (in percents of the total range) at a given output (1 or 2)

get_filter_settings(channel)[source]

Get input filter settings for a given channel (1 to 16).

For parameters, see setup_filter() and FILTER command description in the Lakeshore 370 programming manual.

setup_filter(channel, enabled=None, settle_time=None, window=None)[source]

Setup input filter settings for a given channel (1 to 16).

For parameters, see FILTER command description in the Lakeshore 370 programming manual. Value of None means keeping the current parameter value.

BackendError

alias of pylablib.core.devio.comm_backend.DeviceBackendError

class NoParameterCaller(device, kind)

Bases: object

Class to simplify calling functions without a parameter

apply_settings(settings)

Apply the settings.

settings is a dict {name: value} of the available device settings. Non-applicable settings are ignored.

ask(msg, data_type='string', delay=0.0, timeout=None, read_echo=False)

Write a message and read a reply.

msg is the query message, delay is the delay between write and read. Other parameters are the same as in read(). If read_echo==True, assume that the device first echoes the input and skip it.

close()

Close the backend

flush(one_line=False)

Flush the read buffer (read all the available data and return the number of bytes read).

If one_line==True, read only a single line.

static get_arg_type(arg)

Autodetect argument type

get_device_variable(key)

Get the value of a settings, status, or full info parameter

get_esr(timeout=None)

Get the device status register (by default, "*ESR?" command)

get_full_info(include=0)

Get dict {name: value} containing full device information (including status and settings).

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

get_full_status(include=0)

Get dict {name: value} containing the device status (including settings).

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

get_id(timeout=None)

Get the device IDN. (query SCPI '*IDN?' command)

get_settings(include=0)

Get dict {name: value} containing all the device settings.

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

is_opened()

Check if the device is connected

lock(timeout=None)

Lock the access to the device from other threads/processes (isn’t necessarily implemented)

locking(timeout=None)

Context manager for lock & unlock

open()

Open the backend

static parse_array_data(data, fmt, include_header=False)

Parse the data returned by the device. fmt is DataFormat description in numpy format (e.g., "<u2").

If include_header==True, the data is assumed to be in a (somewhat) standard SCPI format: b'#', then a single digit s denoting length of the size block, then s digits denoting length of the data (in bytes) followed by the actual data. Otherwise (include_header==False), assume that the header is already removed.

read(data_type='string', timeout=None)

Read data from the device.

data_type determines the type of the data. Can be 'raw' (just raw data), 'string' (with trailing and leading spaces stripped), 'int', 'float', 'bool' (interprets 0 or 'off' as False, anything else as True), 'value' (returns tuple (value, unit), where value is float), a callable (return the result of this callable applied to the string value), a dictionary (return the stored value corresponding to the string value, or to the value converted into integer if the string value is not present), or a list of data types (the result is treated as a list of values with the given types separated by commas). timeout overrides the default value.

read_binary_array_data(include_header=False, timeout=None, flush_term=True)

Read a binary data in the from the device.

The data assumes the standard binary transfer header consisting of "#" symbol, then a single digit with the size of the length string, then the length string containing the length of the binary data (in bytes). If include_header==True, return the data with the header; otherwise, return only the content. If flush_term==True, flush the following line to skip terminator characters after the binary data, which are added by some devices. timeout overrides the default value.

reconnect(new_instrument=True, ignore_error=True)

Remake the connection.

If new_instrument==True, create a new backend instance. If ignore_error==True, ignore errors on closing.

reset()

Reset the device (by default, "*RST" command)

set_device_variable(key, value)

Set the value of a settings parameter

sleep(delay)

Wait for delay seconds

unlock()

Unlock the access to the device from other threads/processes (isn’t necessarily implemented)

using_write_buffer()

Context manager for using a write buffer.

While it’s active, all the consecutive write() operations are bundled together with ; delimiter. The actual write is performed at the read()/ask() operation or at the end of the block.

wait(wait_type='sync', timeout=None, wait_callback=None)

Pause execution until device overlapped commands are complete.

wait_type is either 'sync' (perform wait_sync()), 'dev' (perform wait_dev()) or 'none' (do nothing).

wait_dev()

Pause execution of the device commands until device overlapped commands (e.g., taking sweeps) are complete.

Note that the code execution is not paused.

wait_sync(timeout=None, wait_callback=None)

Pause execution of the script until device overlapped commands (e.g., taking sweeps) are complete.

timeout and wait_callback override default constructor parameters.

write(msg, arg=None, arg_type=None, unit=None, bool_selector=None, wait_sync=None, read_echo=False, read_echo_delay=0.0)

Send a command.

Parameters:
  • msg (str) – Text message.
  • arg – Optional argument to append in the end. If a list of arguments is supplied, the result is joined with ",".
  • arg_type (str) – Argument type. Can be 'raw' (in which case data is sent raw), 'string', 'int', 'float', 'bool', a format string (such as '{:.3f}') or a list of argument types (for an iterable argument); if format string is used and the argument is a list or a tuple, then it is expanded as a list of arguments (e.g., arg_type='{0};{1}' with arg=[1,2] will produce a string '1;2'); if a list of types is used, each element of arg is converted using the corresponding type, and the result is joined with ",".
  • unit (str) – If not None, use it as a unit to append after the value.
  • bool_selector (tuple) – A tuple (false_value, true_value) of two strings to represent bool argument; by default, use ._bool_selector attribute.
  • wait_sync – if True, append the sync command (specified as ._wait_sync_comm attribute, "*OPC?" by default) after the message and pause the execution command is complete; useful in long set operations, where the device might ignore later inputs until the current command is complete; if None, use the class default ._default_write_sync attribute (False by default).
  • read_echo (bool) – If True, read a single line after write.
  • read_echo_delay (float) – The delay between write and read if read_echo==True.

Module contents