M81 Synchronous Source Measure System

Instrument methods are grouped into three classes: SSMsystem, SourceModule, and MeasureModule

Example Scripts

Below are a few example scripts for the M81 SSM system that use the Lake Shore Python driver.

Making a lock in measurement of resistance using a BCS-10 and VM-10

from lakeshore import SSMSystem
from time import sleep
from math import sqrt

# Connect to instrument via USB
my_M81 = SSMSystem()

# Instantiate source and measure modules
balanced_current_source = my_M81.get_source_module(1)
voltage_measure = my_M81.get_measure_module(1)

# Set the source frequency to 13.7 Hz
balanced_current_source.set_frequency(13.7)

# Set the source current peak amplitude to 1 mA
balanced_current_source.set_i_amplitude(0.001)

# Set the voltage measure module to reference the source 1 module with a 100 ms time constant
voltage_measure.setup_lock_in_measurement('S1', 0.1)

# Enable the source output
balanced_current_source.enable()

# Wait for 15 time constants before taking a measurement
sleep(1.5)
lock_in_magnitude = voltage_measure.get_lock_in_r()

# Get the amplitude of the current source
peak_current = balanced_current_source.get_i_amplitude()

# Calculate the resistance
resistance = lock_in_magnitude * sqrt(2) / peak_current
print("Resistance: {} ohm".format(resistance))

List settings profiles and restore a profile

from lakeshore import SSMSystem

# Connect to instrument via USB
my_M81 = SSMSystem()

# Print a list of saved settings profiles
print(my_M81.settings_profiles.get_list())

# Check that a specific profile can be applied with the present modules
profile_name = "Transistor IV sweep"
if my_M81.settings_profiles.get_valid_for_restore(profile_name):
    my_M81.settings_profiles.restore(profile_name)
else:
    print("The connected modules don't match the profile. Please check the profile and try again.")

SSMS instrument methods

class lakeshore.ssm_system.SSMSystem(serial_number=None, com_port=None, baud_rate=921600, flow_control=True, timeout=2.0, ip_address=None, tcp_port=7777, **kwargs)

Class for interaction with the M81 instrument

get_num_measure_channels()

Returns the number of measure channels supported by the instrument

get_num_source_channels()

Returns the number of source channels supported by the instrument

get_source_module(port_number)

Returns a SourceModule instance for the given port number

get_source_pod(port_number)

alias of get_source_module

get_source_module_by_name(module_name)

Return the SourceModule instance that matches the specified name

get_measure_module(port_number)

Returns a MeasureModule instance for the given port number

get_measure_pod(port_number)

alias of get_measure_module

get_measure_module_by_name(module_name)

Return the MeasureModule instance that matches the specified name

get_multiple(*data_sources)

Gets a list of values corresponding to the input data sources.

Args:
data_sources (str, int): Variable length list of pairs of (DATASOURCE_MNEMONIC, CHANNEL_INDEX).
Returns:
Tuple of values corresponding to the given data sources
stream_data(rate, num_points, *data_sources)

Generator object to stream data from the instrument.

Args:
rate (int): Desired transfer rate in points/sec. num_points (int): Number of points to return. None to stream indefinitely. data_sources (str, int): Variable length list of pairs of (DATASOURCE_MNEMONIC, CHANNEL_INDEX).
Yields:
A single row of stream data as a tuple
get_data(rate, num_points, *data_sources)

Like stream_data, but returns a list.

Args:
rate (int): Desired transfer rate in points/sec. num_points (int): Number of points to return. data_sources (str, int): Variable length list of pairs of (DATASOURCE_MNEMONIC, CHANNEL_INDEX).
Returns:
All available stream data as a list of tuples
log_data_to_csv_file(rate, num_points, file, *data_sources, **kwargs)

Like stream_data, but logs directly to a CSV file.

Args:
rate (int): Desired transfer rate in points/sec. file (IO): File to log to. num_points (int): Number of points to log. data_sources (str, int): Pairs of (DATASOURCE_MNEMONIC, CHANNEL_INDEX). write_header (bool): If true, a header row is written with column names.
get_ref_in_edge()

Returns the active edge of the reference input. ‘RISing’ or ‘FALLing’.

set_ref_in_edge(edge)

Sets the active edge of the reference input

Args:
edge (str):
The new active edge (‘RISing’, or ‘FALLing’)
get_ref_out_source()

Returns the channel used for the reference output. ‘S1’, ‘S2’, or ‘S3’.

set_ref_out_source(ref_out_source)

Sets the channel used for the reference output.

Args:
ref_out_source (str):
The new reference out source (‘S1’, ‘S2’, or ‘S3’)
get_ref_out_state()

Returns the enable state of reference out

set_ref_out_state(ref_out_state)

Sets the enable state of reference out

Args:
ref_out_state (bool):
The new reference out state (True to enable reference out, False to disable reference out)
enable_ref_out()

Sets the enable state of reference out to True

disable_ref_out()

Sets the enable state of reference out to False

configure_ref_out(ref_out_source, ref_out_state=True)

Configure the reference output

Args:
ref_out_source (str):
The new reference out source (‘S1’, ‘S2’, or ‘S3’)
ref_out_state (bool):
The new reference out state (True to enable reference out, False to disable reference out)
get_mon_out_mode()

Returns the channel used for the monitor output. ‘M1’, ‘M2’, ‘M3’, or ‘MANUAL’.

set_mon_out_mode(mon_out_source)

Sets the channel used for the monitor output.

Args:
mon_out_source (str):
The new monitor out source (‘M1’, ‘M2’, ‘M3’, or ‘MANUAL’)
get_mon_out_state()

Returns the enable state of monitor out

set_mon_out_state(mon_out_state)

Sets the enable state of monitor out

Args:
mon_out_state (bool):
The new monitor out state (True to enable monitor out, False to disable monitor out)
enable_mon_out()

Sets the enable state of monitor out to True

disable_mon_out()

Sets the enable state of monitor out to False

configure_mon_out(mon_out_source, mon_out_state=True)

Configure the monitor output

Args:
mon_out_source (str):
The new monitor out source (‘M1’, ‘M2’, or ‘M3’)
mon_out_state (bool):
The new monitor out state (True to enable monitor out, False to disable monitor out)
get_head_self_cal_status()

Returns the status of the last head self calibration

run_head_self_calibration()

“Runs a self calibration for the head

reset_head_self_calibration()

“Restore the factory self calibration

set_mon_out_manual_level(manual_level)

Set the manual level of monitor out when the mode is MANUAL

Args:
manual_level (float):
The new monitor out manual level
get_mon_out_manual_level()

Returns the manual level of monitor out

configure_mon_out_manual_mode(manual_level, mon_out_state=True)

Configures the monitor output for manual mode

Args:
manual_level (float):
The new monitor out manual level
mon_out_state (bool):
The new monitor out state (True to enable monitor out, False to disable monitor out)
channel_index

alias of builtins.int

command(*commands, check_errors=True)

Send a SCPI command or multiple commands to the instrument

Args:
commands (str):
Any number of SCPI commands.
Kwargs:
check_errors (bool):
Chooses whether to query the SCPI error queue and raise errors as exceptions. True by default.
connect_tcp(ip_address, tcp_port, timeout)

Establishes a TCP connection with the instrument on the specified IP address

connect_usb(serial_number=None, com_port=None, baud_rate=None, data_bits=None, stop_bits=None, parity=None, timeout=None, handshaking=None, flow_control=None)

Establish a serial USB connection

disconnect_tcp()

Disconnect the TCP connection

disconnect_usb()

Disconnect the USB connection

factory_reset()

Resets all system information such as settings, wi-fi connections, date and time, etc.

get_operation_event_enable_mask()

Returns the names of the operation event enable register bits and their values. These values determine which operation bits propagate to the operation event register.

get_operation_events()

Returns the names of operation event status register bits that are currently high. The event register is latching and values are reset when queried.

get_present_operation_status()

Returns the names of the operation status register bits and their values

get_present_questionable_status()

Returns the names of the questionable status register bits and their values

get_questionable_event_enable_mask()

Returns the names of the questionable event enable register bits and their values. These values determine which questionable bits propagate to the questionable event register.

get_questionable_events()

Returns the names of questionable event status register bits that are currently high. The event register is latching and values are reset when queried.

get_service_request_enable_mask()

Returns the named bits of the status byte service request enable register. This register determines which bits propagate to the master summary status bit

get_standard_event_enable_mask()

Returns the names of the standard event enable register bits and their values. These values determine which bits propagate to the standard event register

get_standard_events()

Returns the names of the standard event register bits and their values

get_status_byte()

Returns named bits of the status byte register and their values

modify_operation_register_mask(bit_name, value)

Gets the operation condition register mask, changes a bit, and sets the register

Args:
bit_name (str):
The name of the bit to modify.
value (bool):
Determines whether the bit masks (false) or passes (true) the corresponding state.
modify_questionable_register_mask(bit_name, value)

Gets the questionable condition register mask, changes a bit, and sets the register

Args:
bit_name (str):
The name of the bit to modify.
value (bool):
Determines whether the bit masks (false) or passes (true) the corresponding state.
modify_service_request_mask(bit_name, value)

Gets the service request enable mask, changes a bit, and sets the register.

Args:
bit_name (str):
The name of the bit to modify.
value (bool):
Determines whether the bit masks (false) or passes (true) the corresponding state.
modify_standard_event_register_mask(bit_name, value)

Gets the standard event register mask, changes a bit, and sets the register

Args:
bit_name (str):
The name of the bit to modify.
value (bool):
Determines whether the bit masks (false) or passes (true) the corresponding state.
query(*queries, check_errors=True)

Send a SCPI query or multiple queries to the instrument and return the response(s)

Args:
queries (str):
Any number of SCPI queries or commands.
Kwargs:
check_errors (bool):
Chooses whether to query the SCPI error queue and raise errors as exceptions. True by default.
Returns:
The instrument query response as a string.
reset_measurement_settings()

Resets measurement settings to their default values.

reset_status_register_masks()

Resets status register masks to preset values

set_operation_event_enable_mask(register_mask)

Configures the values of the operation event enable register bits. These values determine which operation bits propagate to the operation event register.

Args:
register_mask ([Instrument]OperationRegister):
An instrument specific OperationRegister class object with all bits configured true or false.
set_questionable_event_enable_mask(register_mask)

Configures the values of the questionable event enable register bits. These values determine which questionable bits propagate to the questionable event register.

Args:
register_mask ([Instrument]QuestionableRegister):
An instrument specific QuestionableRegister class object with all bits configured true or false.
set_service_request_enable_mask(register_mask)

Configures values of the service request enable register bits. This register determines which bits propagate to the master summary bit

Args:
register_mask (StatusByteRegister):
A StatusByteRegister class object with all bits configured true or false.
set_standard_event_enable_mask(register_mask)

Configures values of the standard event enable register bits. These values determine which bits propagate to the standard event register

Args:
register_mask (StandardEventRegister):
A StandardEventRegister class object with all bits configured true or false.

Source Module methods

class lakeshore.ssm_source_module.SourceModule(module_number, device)

Class for interaction with a specific source channel of the M81 instrument

get_multiple(*data_sources)

Gets a list of values corresponding to the input data sources for this module.

Args:
data_sources str: Variable length list of DATASOURCE_MNEMONIC.
Returns:
Tuple of values corresponding to the given data sources for this module
get_name()

Returns the user-settable name of the module

set_name(new_name)

Set the name of the module

get_model()

Returns the model of the module (i.e. BCS-10)

get_serial()

Returns the serial number of the module (i.e. LSA1234)

get_hw_version()

Returns the hardware version of the module

get_self_cal_status()

Returns the status of the last self calibration of the module

run_self_cal()

Run a self calibration for the module

reset_self_cal()

Restore factory self calibration for the module

get_enable_state()

Returns the output state of the module

set_enable_state(state)

Set the enable state of the module

Args:
state (bool):
The new output state
enable()

Sets the enable state of the module to True

disable()

Sets the enable state of the module to False

get_excitation_mode()

Returns the excitation mode of the module. ‘CURRENT’ or ‘VOLTAGE’.

set_excitation_mode(excitation_mode)

Sets the excitation mode of the module

Args:
excitation_mode (str):
The new excitation mode (‘CURRENT’ or ‘VOLTAGE’)
go_to_current_mode()

Sets the excitation mode of the module to ‘CURRENT’

go_to_voltage_mode()

Sets the excitation mode of the module to ‘VOLTAGE’

get_shape()

Returns the signal shape of the module. ‘DC’ or ‘SINUSOID’.

set_shape(shape)

Sets the signal shape of the module

Args:
shape (str):
The new signal shape (‘DC’, ‘SINUSOID’, ‘TRIANGLE’, ‘SQUARE’)
get_frequency()

Returns the excitation frequency of the module

set_frequency(frequency)

Sets the excitation frequency of the module

Args:
frequency (float):
The new excitation frequency
get_sync_state()

Returns whether the source channel synchronization feature is engaged

If true, this channel will ignore its own frequency, and instead track the frequency of the synchronization source. If false, this channel will generate its own frequency.

get_sync_source()

Returns the channel used for frequency synchronization

get_sync_phase_shift()

Returns the phase shift applied between the synchronization source and this channel

configure_sync(source, phase_shift, enable_sync=True)

Configure the source channel synchronization feature

Args:
source (str):
The channel used for synchronization (‘S1’, ‘S2’, ‘S3’, or ‘RIN’). This channel will follow the frequency set for the specifed channel.
phase_shift (float):
The phase shift applied between the synchronization source and this channel in degrees.
enable_sync (bool):
If true, this channel will ignore its own frequency, and instead track the frequency of the synchronization source. If false, this channel will generate its own frequency.
get_duty()

Returns the duty cycle of the module

set_duty(duty)

Sets the duty cycle of the module

Args:
duty (float):
The new duty cycle
get_coupling()

Returns the coupling type of the module. ‘AC’ or ‘DC’.

set_coupling(coupling)

Sets the coupling of the module

Args:
coupling (str):
The new coupling type (‘AC’, or ‘DC’)
use_ac_coupling()

Sets the coupling type of the module to ‘AC’

use_dc_coupling()

Sets the coupling type of the module to ‘DC’

get_guard_state()

Returns the guard state of the module

set_guard_state(guard_state)

Sets the guard state of the module

Args:
guard_state (bool):
The new guard state (True to enable guards, False to disable guards)
enable_guards()

Sets the guard state of the module to True

disable_guards()

Sets the guard state of the module to False

get_cmr_source()

Returns the Common Mode Reduction (CMR) source. ‘INTernal’, or ‘EXTernal’.

set_cmr_source(cmr_source)

Sets the Common Mode Reduction (CMR) source.

Args:
cmr_source (str):
The new CMR source (‘INTernal’, or ‘EXTernal’)
get_cmr_state()

Returns the Common Mode Reduction (CMR) state of the module

set_cmr_state(cmr_state)

Sets the Common Mode Reduction (CMR) state of the module

Args:
cmr_state (bool):
The new CMR state (True to enable CMR, False to disable CMR)
enable_cmr()

Sets the CMR state of the module to True

disable_cmr()

Sets the CMR state of the module to False

configure_cmr(cmr_source, cmr_state=True)

Configure Common Mode Reduction (CMR)

Args:
cmr_source (str):
The new CMR source (‘INTernal’, or ‘EXTernal’)
cmr_state (bool):
The new CMR state (True to enable CMR, False to disable CMR)
get_i_range()

Returns the present current range of the module in Amps

get_i_ac_range()

Returns the present AC current range of the module in Amps

get_i_dc_range()

Returns the present DC current range of the module in Amps

get_i_autorange_status()

Returns whether automatic selection of the current range is enabled for this module

configure_i_range(autorange, max_level=None, max_ac_level=None, max_dc_level=None)

Sets up current ranging for this module

Args:
autorange (bool):
True to enable automatic range selection. False for manual ranging.
max_level (float):
The largest current that needs to be sourced.
max_ac_level (float):
The largest AC current that needs to be sourced. Separate AC and DC ranges are only available on some modules.
max_dc_level (float):
The largest DC current that needs to be sourced. Separate AC and DC ranges are only available on some modules.
get_i_amplitude()

Returns the current amplitude for the module in Amps

set_i_amplitude(amplitude)

Sets the current amplitude for the module

Args:
amplitude (float):
The new current amplitude in Amps
get_i_offset()

Returns the current offset for the module in Amps

set_i_offset(offset)

Sets the current offset for the module

Args:
offset (float):
The new current offset in Amps
apply_dc_current(level, enable_output=True)

Apply DC current

Args:
level (float):
DC current level in Amps
enable_output (bool):
Set the enable state of the module to True
apply_ac_current(frequency, amplitude, offset=0.0, enable_output=True)

Apply AC current

Args:
frequency (float):
Excitation frequency in Hz
amplitude (float):
Current amplitude in Amps
offset (float):
Current offset in Amps
enable_output (bool):
Set the enable state of the module to True
get_i_limit()

Returns the current limit enforced by the module in Amps

set_i_limit(i_limit)

Sets the current limit enforced by the module

Args:
i_limit (float):
The new limit to apply in Amps
get_i_limit_status()

Returns whether the current limit circuitry is presently engaged and limiting the current sourced by the module

get_voltage_range()

Returns the present voltage range of the module in Volts

get_voltage_ac_range()

Returns the present AC voltage range of the module in Volts

get_voltage_dc_range()

Returns the present DC voltage range of the module in Volts

get_voltage_autorange_status()

Returns whether automatic selection of the voltage range is enabled for this module

configure_voltage_range(autorange, max_level=None, max_ac_level=None, max_dc_level=None)

Sets up voltage ranging for this module

Args:
autorange (bool):
True to enable automatic range selection. False for manual ranging.
max_level (float):
The largest voltage that needs to be sourced.
max_ac_level (float):
The largest AC voltage that needs to be sourced. Separate AC and DC ranges are only available on some modules.
max_dc_level (float):
The largest DC voltage that needs to be sourced. Separate AC and DC ranges are only available on some modules.
get_voltage_amplitude()

Returns the voltage amplitude for the module in Volts

set_voltage_amplitude(amplitude)

Sets the voltage amplitude for the module

Args:
amplitude (float):
The new voltage amplitude in Volts
get_voltage_offset()

Returns the voltage offset for the module in Volts

set_voltage_offset(offset)

Sets the voltage offset for the module

Args:
offset (float):
The new voltage offset in Volts
apply_dc_voltage(level, enable_output=True)

Apply DC voltage

Args:
level (float):
DC voltage level in Volts
enable_output (bool):
Set the enable state of the module to True
apply_ac_voltage(frequency, amplitude, offset=0.0, enable_output=True)

Apply AC voltage

Args:
frequency (float):
Excitation frequency in Hz
amplitude (float):
Voltage amplitude in Volts
offset (float):
Voltage offset in Volts
enable_output (bool):
Set the enable state of the module to True
get_voltage_limit()

Returns the voltage limit enforced by the module in Volts

set_voltage_limit(v_limit)

Sets the voltage limit enforced by the module

Args:
v_limit (float):
The new limit to apply in Volts
get_voltage_limit_status()

Returns whether the voltage limit circuitry is presently engaged and limiting the voltage at the output of the module

get_present_questionable_status()

Returns the names of the questionable status register bits and their values

get_questionable_events()

Returns the names of questionable event status register bits that are currently high. The event register is latching and values are reset when queried.

get_questionable_event_enable_mask()

Returns the names of the questionable event enable register bits and their values. These values determine which questionable bits propagate to the questionable event register.

set_questionable_event_enable_mask(register_mask)

Configures the values of the questionable event enable register bits. These values determine which questionable bits propagate to the questionable event register.

Args:
register_mask ([Instrument]QuestionableRegister):
An instrument specific QuestionableRegister class object with all bits configured true or false.
get_present_operation_status()

Returns the names of the operation status register bits and their values

get_operation_events()

Returns the names of operation event status register bits that are currently high. The event register is latching and values are reset when queried.

get_operation_event_enable_mask()

Returns the names of the operation event enable register bits and their values. These values determine which operation bits propagate to the operation event register.

set_operation_event_enable_mask(register_mask)

Configures the values of the operation event enable register bits. These values determine which operation bits propagate to the operation event register.

Args:
register_mask ([Instrument]OperationRegister):
An instrument specific OperationRegister class object with all bits configured true or false.
get_identify_state()

Returns the identification state for the given pod.

set_identify_state(state)

Returns the identification state for the given pod.

Args:
state (bool):
The desired state for the LED, 1 for identify, 0 for normal state
get_dark_mode_state()

Returns the dark mode state for the given pod

set_dark_mode_state(state)

Configures the dark mode state for the given pod.

Args:
state (bool):
The desired operation for the LED, 1 for normal mode, 0 for dark mode

Measure Module methods

class lakeshore.ssm_measure_module.MeasureModule(module_number, device)

Class for interaction with a specific measure channel of the M81 instrument

get_name()

Returns the user-settable name of the module

set_name(new_name)

Set the name of the module

get_model()

Returns the model of the module (i.e. VM-10)

get_serial()

Returns the serial number of the module (i.e. LSA1234)

get_hw_version()

Returns the hardware version of the module

get_self_cal_status()

Returns the status of the last self calibration of the module

run_self_cal()

Run a self calibration for the module

reset_self_cal()

Restore factory self calibration for the module

get_averaging_time()

Returns the averaging time of the module in Power Line Cycles. Not relevant in lock-in mode.

set_averaging_time(nplc)

Sets the averaging time of the module. Not relevant in lock-in mode.

Args:
nplc (float):
The new number of power line cycles to average
get_mode()

Returns the measurement mode of the module. ‘DC’, ‘AC’, or ‘LIA’.

set_mode(mode)

Sets the measurement mode of the module

Args:
mode (str):
The new measurement mode (‘DC’, ‘AC’, or ‘LIA’)
get_coupling()

Return input coupling of the module. ‘AC’ or ‘DC’.

set_coupling(coupling)

Sets the input coupling of the module

Args:
coupling (str):
The new input coupling (‘AC’ or ‘DC’)
use_ac_coupling()

Sets the input coupling of the module to ‘AC’

use_dc_coupling()

Sets the input coupling of the module to ‘DC’

get_input_configuration()

Returns the input configuration of the module. ‘AB’, ‘A’, or ‘GROUND’.

set_input_configuration(input_configuration)

Sets the input configuration of the module

Args:
input_configuration (str):
The new input configuration (‘AB’, ‘A’, or ‘GROUND’)
get_bias_voltage()

Return the bias voltage applied on the amplifier input in Volts

set_bias_voltage(bias_voltage)

Sets the bias voltage applied on the amplifier input

Args:
bias_voltage (float):
The new bias voltage in Volts
get_filter_state()

Returns whether the hardware filter is engaged

get_lowpass_corner_frequency()

Returns the low pass filter cuttoff frequency. ‘NONE’, ‘F10’, ‘F30’, ‘F100’, ‘F300’, ‘F1000’, ‘F3000’, or ‘F10000’.

get_lowpass_rolloff()

Returns the low pass filter roll-off. ‘R6’ or ‘R12’.

get_highpass_corner_frequency()

Returns the high pass filter cuttoff frequency. ‘NONE’, ‘F10’, ‘F30’, ‘F100’, ‘F300’, ‘F1000’, or ‘F3000’.

get_highpass_rolloff()

Returns the high pass filter roll-off. ‘R6’ or ‘R12’.

get_gain_allocation_strategy()

Returns the gain allocation strategy used for the hardware filter. ‘NOISE’, or ‘RESERVE’.

set_gain_allocation_strategy(optimization_type)

Sets the gain allocation strategy used for the hardware filter

Args:
optimization_type (str):
The new optimization type (‘NOISE’, or ‘RESERVE’)
configure_input_lowpass_filter(corner_frequency, rolloff='R12')

Configure the input low pass filter

Args:
corner_frequency (str):
The low pass corner frequency (‘NONE’, ‘F10’, ‘F30’, ‘F100’, ‘F300’, ‘F1000’, ‘F3000’, or ‘F10000’). F10 = 10 Hz, etc.
rolloff (str):
The low pass roll-off (‘R6’ or ‘R12’). R6 = 6 dB/Octave, R12 = 12 dB/Octave.
configure_input_highpass_filter(corner_frequency, rolloff='R12')

Configure the input high pass filter

Args:
corner_frequency (str):
The high pass corner frequency (‘NONE’, ‘F10’, ‘F30’, ‘F100’, ‘F300’, ‘F1000’, or ‘F3000’). F10 = 10 Hz, etc.
rolloff (str):
The high pass roll-off (‘R6’ or ‘R12’). R6 = 6 dB/Octave, R12 = 12 dB/Octave.
disable_input_filters()

Disables the hardware filters

get_i_range()

Returns the current range in Amps

get_i_autorange_status()

Returns whether autoranging is enabled for the module

configure_i_range(autorange, max_level=None)

Configure current ranging for the module

Args:
autorange (bool):
True to enable real time range decisions by the module. False for manual ranging.
max_level (float):
The largest current that needs to be measured by the module in Amps.
get_voltage_range()

Returns the voltage range in Volts

get_voltage_autorange_status()

Returns whether autoranging is enabled for the module

configure_voltage_range(autorange, max_level)

Configure voltage ranging for the module

Args:
autorange (bool):
True to enable real time range decisions by the module. False for manual ranging.
max_level (float):
The largest voltage that needs to be measured by the module in Volts.
get_reference_source()

Returns the lock-in reference source. ‘S1’, ‘S2’, ‘S3’, ‘RIN’.

set_reference_source(reference_source)

Sets the lock-in reference source

Args:
reference_source (str):
The new reference source (‘S1’, ‘S2’, ‘S3’, ‘RIN’)
get_reference_harmonic()

Returns the lock-in reference harmonic

set_reference_harmonic(harmonic)

Sets the lock-in reference harmonic

Args:
harmonic (int):
The new reference harmonic. 1 is the fundamental frequency, 2 is twice the fundamental frequency, etc.
get_reference_phase_shift()

Returns the lock-in reference phase shift in degrees

set_reference_phase_shift(phase_shift)

Sets the lock-in reference phase shift

Args:
phase_shift (float):
The new reference phase shift in degrees
auto_phase()

Executes a one time adjustment of the reference phase shift such that the present phase indication is zero. Coming in 0.3.

get_lock_in_time_constant()

Returns the lock-in time constant in seconds

set_lock_in_time_constant(time_constant)

Sets the lock-in time constant

Args:
time_constant (float):
The new time constant in seconds
get_lock_in_settle_time(settle_percent=0.01)

Returns the lock-in settle time in seconds

Args:
settle_percent (float)
The desired percent signal has settled to in percent A value of 0.1 is interpreted as 0.1 %
get_lock_in_equivalent_noise_bandwidth()

Returns the equivalent noise bandwidth (ENBW) in Hz

get_lock_in_rolloff()

Returns the lock-in PSD output filter roll-off for the present module. ‘R6’, ‘R12’, ‘R18’ or ‘R24’.

set_lock_in_rolloff(rolloff)

Sets the lock-in PSD output filter roll-off

Args:
rolloff (str):
The new PSD output filter roll-off (‘R6’, ‘R12’, ‘R18’ or ‘R24’)
get_lock_in_fir_state()

Returns the state of the lock-in PSD output FIR filter

set_lock_in_fir_state(state)

Sets the state of the lock-in PSD output FIR filter

Args:
state (bool):
The new state of the PSD output FIR filter
enable_lock_in_fir()

Sets the state of the lock-in PSD output FIR filter to True.

disable_lock_in_fir()

Sets the state of the lock-in PSD output FIR filter to False.

setup_dc_measurement(nplc=1)

Setup the module for DC measurement

Args:
nplc (float):
The new number of power line cycles to average
setup_ac_measurement(nplc=1)

Setup the module for DC measurement

Args:
nplc (float):
The new number of power line cycles to average
setup_lock_in_measurement(reference_source, time_constant, rolloff='R24', reference_phase_shift=0.0, reference_harmonic=1, use_fir=True)

Setup the module for lock-in measurement

Args:
reference_source (str):
Lock-in reference source (‘S1’, ‘S2’, ‘S3’, ‘RIN’)
time_constant (float):
Time constant in seconds
rolloff (str):
Lock-in PSD output filter roll-off (‘R6’, ‘R12’, ‘R18’ or ‘R12’)
reference_phase_shift (float):
Lock-in reference phase shift in degrees
reference_harmonic (int):
Lock-in reference harmonic. 1 is the fundamental frequency, 2 is twice the fundamental frequency, etc.
use_fir (bool):
Enable or disable the PSD output FIR filter
get_multiple(*data_sources)

Gets a list of values corresponding to the input data sources for this module.

Args:
data_sources (str): Variable length list of DATASOURCE_MNEMONIC.
Returns:
Tuple of values corresponding to the given data sources for this module
get_dc()

Returns the DC indication in module units

get_rms()

Returns the RMS indication in module units

get_peak_to_peak()

Returns the peak to peak indication in module units

get_positive_peak()

Returns the positive peak indication in module units

get_negative_peak()

Returns the negative peak indication in module units

get_lock_in_x()

Returns the present X indication from the lock-in

get_lock_in_y()

Returns the present Y indication from the lock-in

get_lock_in_r()

Returns the present magnitude indication from the lock-in

get_lock_in_theta()

Returns the present angle indication from the lock-in

get_lock_in_frequency()

Returns the present detected frequency from the Phase Locked Loop (PLL)

get_pll_lock_status()

Returns the present lock status of the PLL. True if locked, False if unlocked.

get_present_questionable_status()

Returns the names of the questionable status register bits and their values

get_questionable_events()

Returns the names of questionable event status register bits that are currently high. The event register is latching and values are reset when queried.

get_questionable_event_enable_mask()

Returns the names of the questionable event enable register bits and their values. These values determine which questionable bits propagate to the questionable event register.

set_questionable_event_enable_mask(register_mask)

Configures the values of the questionable event enable register bits. These values determine which questionable bits propagate to the questionable event register.

Args:
register_mask ([Instrument]QuestionableRegister):
An instrument specific QuestionableRegister class object with all bits configured true or false.
get_present_operation_status()

Returns the names of the operation status register bits and their values

get_operation_events()

Returns the names of operation event status register bits that are currently high. The event register is latching and values are reset when queried.

get_operation_event_enable_mask()

Returns the names of the operation event enable register bits and their values. These values determine which operation bits propagate to the operation event register.

set_operation_event_enable_mask(register_mask)

Configures the values of the operaiton event enable register bits. These values determine which operaiton bits propagate to the operaiton event register.

Args:
register_mask ([Instrument]OperationRegister):
An instrument specific OperationRegister class object with all bits configured true or false.
get_identify_state()

Returns the identification state for the given pod.

set_identify_state(state)

Returns the identification state for the given pod.

Args:
state (bool):
The desired state for the LED, 1 for identify, 0 for normal state
get_dark_mode_state()

Returns the dark mode state for the given pod

set_dark_mode_state(state)

Configures the dark mode state for the given pod.

Args:
state (bool):
The desired operation for the LED, 1 for normal mode, 0 for dark mode

Settings Profiles methods

class lakeshore.ssm_settings_profiles.SettingsProfiles(device)

Class for interaction with settings profiles

create(name, description='')

Create a new profile using the present instrument configuration.

Args:
name (str): Unique name to give the profile. description (str): Optional description of the profile.
get_list()

Returns a list of the saved profile names.

get_description(name)

Returns a profile’s description.

Args:
name (str): Name of the profile to get the description for.
set_description(name, description)

Sets a profile’s description. Any existing description will be overwritten.

Args:
name (str): Name of the profile to get the description for. description (str): The new description of the profile.
get_json(name)

Returns a JSON object of a given profile.

Args:
name (str): Name of the profile.
rename(name, new_name)

Rename a profile. New name must be unique.

Args:
name (str): The name of the profile to rename. new_name (str): The new name of the profile.
update(name)

Update a profile with the present instrument configuration.

Args:
name (str): The name of the profile to update.
get_valid_for_restore(name)

Returns if a profile is valid to restore.

Args:
name (str): The name of the profile to validate.
restore(name)

Restore a profile.

Args:
name (str): The name of the profile to restore.
delete(name)

Delete a profile

Args:
name (str): The name of the profile to delete.
delete_all()

Delete all profiles.

Instrument registers

This page outlines the registers used to interact with various settings and methods of the M81.

class lakeshore.ssm_system.SSMSystemOperationRegister(s1_summary, s2_summary, s3_summary, m1_summary, m2_summary, m3_summary, data_stream_in_progress)

Class object representing the operation status register

class lakeshore.ssm_system.SSMSystemQuestionableRegister(s1_summary, s2_summary, s3_summary, m1_summary, m2_summary, m3_summary, critical_startup_error, critical_runtime_error, heartbeat, calibration, data_stream_overflow)

Class object representing the questionable status register

class lakeshore.ssm_base_module.SSMSystemModuleQuestionableRegister(read_error=False, unrecognized_pod_error=False, port_direction_error=False, factory_calibration_failure=False, self_calibration_failure=False)

Class object representing the questionable status register of a module

class lakeshore.ssm_source_module.SSMSystemSourceModuleOperationRegister(v_limit, i_limit)

Class object representing the operation status register of a source module

class lakeshore.ssm_measure_module.SSMSystemMeasureModuleOperationRegister(overload, settling, unlocked)

Class object representing the operation status register of a measure module