M91 Fast Hall Controller
The Lake Shore M91 Fast Hall controller makes high speed Hall measurements for materials characterization.
More information about the instrument can be found on our website including the manual which has a list of all SCPI commands and queries.
Example Scripts
Below are a few example scripts for the M91 Fast Hall Controller that use the Lake Shore Python driver.
Fast Hall Full Sample Analysis
from lakeshore import FastHall
from lakeshore import ContactCheckOptimizedParameters, ResistivityLinkParameters, FastHallLinkParameters
# Connect to the first available FastHall over USB
my_fast_hall = FastHall()
# Create an optimized contact check settings object that limits the max current to 1 mA
ccheck_settings = ContactCheckOptimizedParameters(max_current=1e-3)
# Define the DC magnetic field strength of the measurement
magnetic_field_strength = 0.1
# Create a resistivity and FastHall measurement linked settings objects
resistivity_settings = ResistivityLinkParameters()
fasthall_settings = FastHallLinkParameters(magnetic_field_strength)
# Run the optimized contact check to automatically determine the best parameters for the sample
ccheck_results = my_fast_hall.run_complete_contact_check_optimized(ccheck_settings)
# Run a resistivity measurement linking the parameters determined by the contact check
resistivity_results = my_fast_hall.run_complete_resistivity_link(resistivity_settings)
# Prompt the user to insert the sample into the defined field
input("Insert sample into " + str(magnetic_field_strength) + " Tesla field")
# Run the FastHall measurement linking information from the resistivity and contact check measurements
fasthall_results = my_fast_hall.run_complete_fasthall_link(fasthall_settings)
# Dump the data into a text file
results_file = open("sample_analysis.txt", "w")
results_file.write("Contact check results:\n" + str(ccheck_results))
results_file.write("\nResistivity results:\n" + str(resistivity_results))
results_file.write("\nFastHall results:\n" + str(fasthall_results))
Fast Hall Record Contact Check Data
from lakeshore import FastHall, ContactCheckManualParameters
# Connect to the first available FastHall over USB
my_fast_hall = FastHall()
# Create a contact check parameters object with desired settings to run a manual Contact Check measurement
ccheck_settings = ContactCheckManualParameters(excitation_type='CURRENT',
excitation_start_value=-10e-6,
excitation_end_value=10e-6,
compliance_limit=1.5,
number_of_points=20)
# Create a file to write data into
file = open("fasthall_data.csv", "w")
# Write header info including the type of test and specific measurements being taken
file.write('Contact Check of Van der Pauw Sample with Varying Current Excitation Ranges\n')
file.write('Contact Pair 1-2\n')
file.write(' , Offset, Slope, R Squared, R Squared Passed, In Compliance, Voltage Overload, Current Overload\n')
# Create a list of current excitation ranges
excitation_ranges = [10e-3, 10e-4, 10e-5, 10e-6]
# Run a separate Contact Check measurement and collect results for each range in the list of excitation ranges
for range_value in excitation_ranges:
# Set the value of the excitation range
ccheck_settings.excitation_range = range_value
# Write the specific excitation range that is being used
file.write('Excitation Range: ' + str(range_value) + 'A\n')
# Run a complete contact check measurement using the settings with the updated excitation range
results = my_fast_hall.run_complete_contact_check_manual(ccheck_settings, sample_type="VDP")
# Collect the measurement results that correlate to the first contact pair (Contact Pair 1-2)
contact_pair_results = results.get('ContactPairIVResults')
pair_one_results = contact_pair_results[0]
# Obtain contact pair result values, then convert them into a list and then a string
logged_keys = ['Offset', 'Slope', 'RSquared', 'RSquaredPass', 'InCompliance', 'VoltageOverload', 'CurrentOverload']
logged_values = [pair_one_results[key] for key in logged_keys]
logged_string = ','.join(str(value) for value in logged_values)
# Write the result values to the file
file.write(',' + logged_string + '\n')
# Close the file so that it can be used by the function
file.close()
Instrument class methods
- class lakeshore.fast_hall_controller.FastHall(serial_number=None, com_port=None, baud_rate=921600, flow_control=True, timeout=2.0, ip_address=None, tcp_port=7777, **kwargs)
A class object representing a Lake Shore M91 Fast Hall controller.
- get_contact_check_running_status()
Indicates if the contact check measurement is running.
- get_fasthall_running_status()
Indicates if the FastHall measurement is running.
- get_four_wire_running_status()
Indicates if the four wire measurement is running.
- get_resistivity_running_status()
Indicates if the resistivity measurement is running.
- get_dc_hall_running_status()
Indicates if the DC Hall measurement is running.
- get_dc_hall_waiting_status()
Indicates if the DC hall measurement is running.
- continue_dc_hall()
Continues the DC hall measurement if it’s in a waiting state.
- start_contact_check_vdp_optimized(settings)
Automatically determines excitation value and ranges. Then runs contact check on all 4 pairs.
- Args:
settings(ContactCheckOptimizedParameters):
- start_contact_check_vdp(settings)
Performs a contact check measurement on contact pairs 1-2, 2-3, 3-4, and 4-1.
- Args:
settings(ContactCheckManualParameters):
- start_contact_check_hbar(settings)
Performs a contact check measurement on contact pairs 5-6, 5-1, 5-2, 5-3, 5-4, and 6-1
- Args:
settings(ContactCheckManualParameters):
- start_fasthall_vdp(settings)
Performs a FastHall measurement.
- Args:
settings (FastHallManualParameters):
- start_fasthall_link_vdp(settings)
Starts a FastHall measurement with provided link parameters.
Performs a FastHall measurement that uses the last run contact check measurement’s excitation type, compliance limit, blanking time, excitation range, and the largest absolute value of the start and end excitation values along with the last run resistivity measurement’s resistivity average and sample thickness.
- Args:
settings (FastHallLinkParameters):
- start_four_wire(settings)
Performs a Four wire measurement.
Excitation is sourced from Contact Point 1 to Contact Point 2. Voltage is measured/sensed between contact point 3 and contact point 4.
- Args:
settings(FourWireParameters):
- start_dc_hall_vdp(settings)
Performs a DC hall measurement for a Hall Bar sample.
- Args:
settings(DCHallParameters):
- start_dc_hall_hbar(settings)
Performs a DC hall measurement for a Hall Bar sample.
- Args:
settings(DCHallParameters):
- start_resistivity_vdp(settings)
Performs a resistivity measurement on a Van der Pauw sample.
- Args:
settings(ResistivityManualParameters):
- start_resistivity_link_vdp(settings)
Performs a resistivity measurement with provided link settings.
Performs a resistivity measurement that uses the last run contact check measurement’s excitation type, compliance limit, blanking time, excitation range, and the largest absolute value of the start and end excitation values.
- Args:
settings(ResistivityLinkParameters):
- start_resistivity_hbar(settings)
Performs a resistivity measurement on a hall bar sample.
- Args:
settings(ResistivityManualParameters):
- get_contact_check_setup_results()
Returns an object representing the setup results of the last run Contact Check measurement.
- get_contact_check_measurement_results()
Returns a dictionary representing the results of the last run Contact Check measurement.
- get_fasthall_setup_results()
Returns an object representing the setup results of the last run FastHall measurement.
- get_fasthall_measurement_results()
Returns a dictionary representing the results of the last run FastHall measurement.
- get_four_wire_setup_results()
Returns an object representing the setup results of the last run Four Wire measurement.
- get_four_wire_measurement_results()
Returns a dictionary representing the results of the last run Four Wire measurement.
- get_dc_hall_setup_results()
Returns a dictionary representing the setup results of the last run Hall measurement.
- get_dc_hall_measurement_results()
Returns a dictionary representing the results of the last run Hall measurement.
- get_resistivity_setup_results()
Returns an object representing the setup results of the last run Resistivity measurement.
- get_resistivity_measurement_results()
Returns a dictionary representing the results of the last run Resistivity measurement.
- run_complete_contact_check_optimized(settings)
Performs a contact check measurement and then returns the corresponding measurement results.
- Args:
settings(ContactCheckOptimizedParameters):
- Returns:
The measurement results as a dictionary.
- run_complete_contact_check_manual(settings, sample_type)
Performs a manual contact check measurement and then returns the corresponding measurement results.
- Args:
- settings (ContactCheckManualParameters):
Object with settings for FastHall link setup.
- sample_type (str):
Indicates sample type. Options: “VDP” (Van der Pauw sample), or “HBAR” (Hall Bar sample).
- Returns:
The measurement results as a dictionary.
- run_complete_fasthall_link(settings)
Performs a FastHall Link measurement and then returns the corresponding measurement results.
- Args:
- settings(FastHallLinkParameters):
Object with settings for FastHall link setup.
- Returns:
The measurement results as a dictionary.
- run_complete_fasthall_manual(settings)
Performs a manual FastHall measurement and then returns the corresponding measurement results.
- Args:
- settings(FastHallManualParameters):
Object with settings for FastHall link setup.
- Returns:
The measurement results as a dictionary.
- run_complete_four_wire(settings)
Performs a Four Wire measurement and then returns the corresponding measurement results.
- Args:
settings(FourWireParameters):
- Returns:
The measurement results as a dictionary.
- run_complete_dc_hall(settings, sample_type)
Performs a DC Hall measurement and then returns the corresponding measurement results.
- Args:
- settings(DCHallParameters):
Object with settings for FastHall link setup.
- sample_type(str):
Indicates sample type. Options: “VDP” (Van der Pauw sample), or”HBAR” (Hall Bar sample).
- Returns:
The measurement results as a dictionary.
- run_complete_resistivity_link(settings)
Performs a resistivity link measurement and then returns the corresponding measurement results.
- Args:
settings(ResistivityLinkParameters):
- Returns:
The measurement results as a dictionary.
- run_complete_resistivity_manual(settings, sample_type)
Performs a manual resistivity measurement and then returns the corresponding measurement results.
- Args:
- settings(ResistivityManualParameters):
Object with settings for manual resistivity setup.
- sample_type(str):
Indicates sample type. Options are: “VDP” (Van der Pauw sample), or “HBAR” (Hall Bar sample).
- Returns:
The measurement results as a dictionary.
- reset_contact_check_measurement()
Resets the measurement to a not run state, canceling any running measurement.
- reset_fasthall_measurement()
Resets the measurement to a not run state, canceling any running measurement.
- reset_four_wire_measurement()
Resets the measurement to a not run state, canceling any running measurement.
- reset_dc_hall_measurement()
Resets the measurement to a not run state, canceling any running measurement.
- reset_resistivity_measurement()
Resets the measurement to a not run state, canceling any running measurement.
- command(*commands, check_errors=True)
Send an SCPI command or multiple commands to the instrument.
- Args:
- commands (str):
Any number of SCPI commands.
- check_errors (bool):
Chooses whether to query the SCPI error queue and raise errors as exceptions. True by default. Optional Parameter.
- 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)
Sends an SCPI query or multiple queries to the instrument and return the response(s).
- Args:
- queries (str):
Any number of SCPI queries or commands.
- check_errors (bool):
Chooses whether to query the SCPI error queue and raise errors as exceptions. True by default. Optional Parameter.
- 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.
- write(command_string)
Alias of command. Send a command to the instrument.
- Args:
- command_string (str):
A serial command.
Settings classes
This page outlines the classes and objects used to interact with various settings and methods of the M91.
- class lakeshore.fast_hall_controller.FastHallOperationRegister(settling, ranging, measurement_complete, waiting_for_trigger, field_control_ramping, field_measurement_enabled, transient)
Class object representing the operation status register.
- class lakeshore.fast_hall_controller.FastHallQuestionableRegister(source_in_compliance_or_at_current_limit, field_control_slew_rate_limit, field_control_at_voltage_limit, current_measurement_overload, voltage_measurement_overload, invalid_probe, invalid_calibration, inter_processor_communication_error, field_measurement_communication_error, probe_eeprom_read_error, r2_less_than_minimum_allowable)
Class object representing the questionable status register.
- class lakeshore.fast_hall_controller.ContactCheckManualParameters(excitation_type, excitation_start_value, excitation_end_value, compliance_limit, number_of_points, excitation_range='AUTO', measurement_range='AUTO', min_r_squared=0.9999, blanking_time=0.002)
Class object representing parameters used for manual Contact Check run methods.
- Special-members:
__init__
- class lakeshore.fast_hall_controller.ContactCheckOptimizedParameters(max_current=0.1, max_voltage=10, number_of_points=11, min_r_squared=0.9999)
Class object representing parameters used for optimized Contact Check run methods.
- Special-members:
__init__
- class lakeshore.fast_hall_controller.FastHallManualParameters(excitation_type, excitation_value, user_defined_field, compliance_limit, excitation_range='AUTO', excitation_measurement_range='AUTO', measurement_range='AUTO', max_samples=100, resistivity='"NaN"', blanking_time=0.002, averaging_samples=60, sample_thickness=0, min_hall_voltage_snr=30)
Class object representing parameters used for running manual FastHall measurements.
- Special-members:
__init__
- class lakeshore.fast_hall_controller.FastHallLinkParameters(user_defined_field, measurement_range='AUTO', max_samples=100, min_hall_voltage_snr=30, averaging_samples=60, sample_thickness='DEF')
Class object representing parameters used for running FastHall Link measurements.
- Special-members:
__init__
- class lakeshore.fast_hall_controller.FourWireParameters(contact_point1, contact_point2, contact_point3, contact_point4, excitation_type, excitation_value, compliance_limit, excitation_range='AUTO', measurement_range='AUTO', excitation_measurement_range='AUTO', blanking_time=0.002, max_samples=100, min_snr=30, excitation_reversal=True)
Class object representing parameters used for running Four Wire measurements.
- Special-members:
__init__
- class lakeshore.fast_hall_controller.DCHallParameters(excitation_type, excitation_value, compliance_limit, averaging_samples, user_defined_field, excitation_range='AUTO', excitation_measurement_range='AUTO', measurement_range='AUTO', with_field_reversal=True, resistivity='"NaN"', blanking_time=0.002, sample_thickness=0)
Class object representing parameters used for running DC Hall measurements.
- Special-members:
__init__
- class lakeshore.fast_hall_controller.ResistivityManualParameters(excitation_type, excitation_value, compliance_limit, excitation_range='AUTO', excitation_measurement_range='AUTO', measurement_range='AUTO', max_samples=100, blanking_time=0.002, sample_thickness=0, min_snr=30, **kwargs)
Class object representing parameters used for running manual Resistivity measurements.
- Special-members:
__init__
- class lakeshore.fast_hall_controller.ResistivityLinkParameters(measurement_range='AUTO', sample_thickness=0, min_snr=30, max_samples=100)
Class object representing parameters used for running manual Resistivity measurements.
- Special-members:
__init__
- class lakeshore.fast_hall_controller.StatusByteRegister(error_available, questionable_summary, message_available_summary, event_status_summary, master_summary, operation_summary)
Class object representing the status byte register.
- Special-members:
__init__
- class lakeshore.fast_hall_controller.StandardEventRegister(operation_complete, query_error, device_specific_error, execution_error, command_error, power_on)
Class object representing the standard event register.
- Special-members:
__init__