F41 & F71 Teslameters

The Lake Shore single-axis (F41) and multi-axis (F71) Teslameters provide highly accurate field strength measurements.

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 Teslameters that use the Lake Shore Python driver.

Streaming F41/F71 teslameter data to a CSV file

from lakeshore import Teslameter

# Connect to the first available Teslameter over USB
my_teslameter = Teslameter()

# Configure the instrument to be in DC field mode and give it a moment to settle
my_teslameter.command('SENSE:MODE DC')

# Query the probe serial number
probe_serial_number = my_teslameter.query('PROBE:SNUMBER?')

# Query the probe temperature
probe_temperature = my_teslameter.query('FETCH:TEMPERATURE?')

# Create a file to write data into.
file = open("teslameter_data.csv", "w")

# Write header info including the instrument serial number, probe serial number, and temperature.
file.write('Header Information\n')
file.write('Instrument serial number:,' + my_teslameter.serial_number + '\n')
file.write('Probe serial number:,' + probe_serial_number + '\n')
file.write('Probe temperature:,' + probe_temperature + '\n\n')

# Collect 10 seconds of 10 ms data points and write them to the csv file
my_teslameter.log_buffered_data_to_file(10, 10, file)

# Close the file so that it can be used by the function
file.close()

Classes and methods

Instrument methods

class lakeshore.teslameter.Teslameter(serial_number=None, com_port=None, baud_rate=115200, flow_control=True, timeout=2.0, ip_address=None, tcp_port=7777, **kwargs)

A class object representing a Lake Shore F41 or F71 Teslameter

stream_buffered_data(length_of_time_in_seconds, sample_rate_in_ms)

Yield a generator object for the buffered field data. Useful for getting the data in real time when doing a lengthy acquisition.

Args:
length_of_time_in_seconds (float):
The period of time over which to stream the data.
sample_rate_in_ms (int):
The averaging window (sampling period) of the instrument.
Returns:
A generator object that returns the data as datapoint tuples
get_buffered_data_points(length_of_time_in_seconds, sample_rate_in_ms)

Returns a list of namedtuples that contain the buffered data.

Args:
length_of_time_in_seconds (float):
The period of time over which to collect the data.
sample_rate_in_ms (int):
The averaging window (sampling period) of the instrument.
Returns:
The data as a list of datapoint tuples
log_buffered_data_to_file(length_of_time_in_seconds, sample_rate_in_ms, file)

Creates or appends a CSV file with the buffered data and excel-friendly timestamps.

Args:
length_of_time_in_seconds (float):
The period of time over which to collect the data.
sample_rate_in_ms (int):
The averaging window (sampling period) of the instrument.
file (file_object):
Field measurement data will be written to this file object in a CSV format.
get_dc_field()

Returns the DC field reading.

get_dc_field_xyz()

Returns the DC field reading.

get_rms_field()

Returns the RMS field reading.

get_rms_field_xyz()

Returns the RMS field reading.

get_frequency()

Returns the field frequency reading.

get_max_min()

Returns the maximum and minimum field readings respectively.

get_max_min_peaks()

Returns the maximum and minimum peak field readings respectively.

reset_max_min()

Resets the maximum and minimum field readings to the present field reading.

get_temperature()

Returns the temperature reading.

get_probe_information()

Returns a dictionary of probe data.

get_relative_field()

Returns the relative field value.

tare_relative_field()

Copies the current field reading to the relative baseline value.

get_relative_field_baseline()

Returns the relative field baseline value.

set_relative_field_baseline(baseline_field)

Configures the relative baseline value.

Args:
baseline_field (float):
A field units value that will act as the zero field for the relative measurement.
configure_field_measurement_setup(mode='DC', autorange=True, expected_field=None, averaging_samples=20)

Configures the field measurement settings.

Args:
mode (str):
  • Modes are as follows:
  • “DC”
  • “AC” (0.1 - 500 Hz)
  • “HIFR” (50 Hz - 100 kHz)
autorange (bool):
Chooses whether the instrument automatically selects the best range for the measured value
expected_field (float):
When autorange is False, the expected_field is the largest field expected to be measured. It sets the lowest instrument field range capable of measuring the value.
averaging_samples (int):
The number of field samples to average. Each sample is 10 milliseconds of field information.
get_field_measurement_setup()

Returns the mode, autoranging state, range, and number of averaging samples as a dictionary.

configure_temperature_compensation(temperature_source='PROBE', manual_temperature=None)

Configures how temperature compensation is applied to the field readings.

Args:
temperature_source (str):
  • Determines where the temperature measurement is drawn from. Options are:
  • “PROBE” (Compensation is based on measurement of a thermistor in the probe)
  • “MTEM” (Compensation is based on a manual temperature value provided by the user)
  • “NONE” (Temperature compensation is not applied)
manual_temperature (float):
Sets the temperature provided by the user for MTEMP (manual temperature) source in Celsius.
get_temperature_compensation_source()

Returns the source of temperature measurement for field compensation.

get_temperature_compensation_manual_temp()

Returns the manual temperature setting value in Celsius.

configure_field_units(units='TESLA')

Configures the field measurement units of the instrument.

Args:
units (str):
  • A unit of magnetic field. Options are:
  • “TESLA”
  • “GAUSS”
get_field_units()

Returns the magnetic field units of the instrument.

configure_field_control_limits(voltage_limit=10.0, slew_rate_limit=10.0)

Configures the limits of the field control output.

Args:
voltage_limit (float):
The maximum voltage permitted at the field control output. Must be between 0 and 10V.
slew_rate_limit (float):
The maximum rate of change of the field control output voltage in volts per second.
get_field_control_limits()

Returns the field control output voltage limit and slew rate limit.

configure_field_control_output_mode(mode='CLLOOP', output_enabled=True)

Configure the field control mode and state.

Args:
mode (str):
  • Determines whether the field control is in open or closed loop mode
  • “CLLOOP” (closed loop control)
  • “OPLOOP” (open loop control, voltage output)
output_enabled (bool):
Turn the field control voltage output on or off.
get_field_control_output_mode()

Returns the mode and state of the field control output.

configure_field_control_pid(gain=None, integral=None, ramp_rate=None)

Configures the closed loop control parameters of the field control output.

Args:
gain (float):
Also known as P or Proportional in PID control. This controls how strongly the control output reacts to the present error. Note that the integral value is multiplied by the gain value.
integral (float):
Also known as I or Integral in PID control. This controls how strongly the control output reacts to the past error history
ramp_rate (float):
This value controls how quickly the present field setpoint will transition to a new setpoint. The ramp rate is configured in field units per second.
get_field_control_pid()

Returns the gain, integral, and ramp rate.

set_field_control_setpoint(setpoint)

Sets the field control setpoint value in field units.

get_field_control_setpoint()

Returns the field control setpoint.

set_field_control_open_loop_voltage(output_voltage)

Sets the field control open loop voltage.

get_field_control_open_loop_voltage()

Returns the field control open loop voltage.

set_analog_output(analog_output_mode)

Configures what signal is provided by the analog output BNC

set_analog_output_signal(analog_output_mode)

Configures what signal is provided by the analog output BNC

Args:
analog_output_mode (str):
  • Configures what signal is provided by the analog output BNC. Options are:
  • “OFF” (output off)
  • “XRAW” (raw amplified X channel Hall voltage)
  • “YRAW” (raw amplified Y channel Hall voltage)
  • “ZRAW” (raw amplified Z channel Hall voltage)
  • “XCOR” (Corrrected X channel field measurement)
  • “YCOR” (Corrected Y channel field measurement)
  • “ZCOR” (Corrected Z channel field measurement)
  • “MCOR” (Corrected magnitude field measurement)
configure_corrected_analog_output_scaling(scale_factor, baseline)

Configures the conversion between field reading and analog output voltage.

Args:
scale_factor (float):
Scale factor in volts per unit field.
baseline (float):
The field value at which the analog output voltage is zero.
get_corrected_analog_output_scaling()

Returns the scale factor and baseline of the corrected analog out.

get_analog_output()

Returns what signal is being provided by the analog output

get_analog_output_signal()

Returns what signal is being provided by the analog output

enable_high_frequency_filters()

Applies filtering to the high frequency RMS measurements

disable_high_frequency_filters()

Turns off filtering of the high frequency mode measurements

set_frequency_filter_type(filter_type)

Configures which filter is applied to the high frequency measurements

Args:
filter_type (str):
  • “LPASS” (low pass filter)
  • “HPASS” (high pass filter)
  • “BPASS” (band pass filter)
get_frequency_filter_type()

Returns the type of filter that is or will be applied to the high frequency measurements

get_low_pass_filter_cutoff()

Returns the cutoff frequency setting of the low pass filter

set_low_pass_filter_cutoff(cutoff_frequency)

Configures the low pass filter cutoff

Args:
cutoff_frequency (float)
get_high_pass_filter_cutoff()

Returns the cutoff frequency setting of the low pass filter

set_high_pass_filter_cutoff(cutoff_frequency)

Configures the high pass filter cutoff

Args:
cutoff_frequency (float)
get_band_pass_filter_center()

Returns the center of the band pass filter

set_band_pass_filter_center(center_frequency)

Configures the band pass filter parameters

Args:
center_frequency (float):
The frequency at which the gain of the filter is 1
enable_qualifier()

Enables the qualifier

disable_qualifier()

Disables the qualifier

is_qualifier_condition_met()

Returns whether the qualifier condition is met

enable_qualifier_latching()

Enables the qualifier condition latching

disable_qualifier_latching()

Disables the qualifier condition latching

get_qualifier_latching_setting()

Returns whether the qualifier latches

set_qualifier_latching_setting(latching)

Sets whether the qualifier latches

Args:
latching (bool):
Determines whether the qualifier latches
reset_qualifier_latch()

Resets the condition status of the qualifier

get_qualifier_configuration()

Returns the threshold mode and field threshold values

configure_qualifier(mode, lower_field, upper_field=None)

Sets the threshold condition of the qualifier.

Args:
mode (str):
The type of threshold condition used by the qualifer * “OVER” * “UNDER” * “BETWEEN” * “OUTSIDE” * “ABSBETWEEN” * “ABSOUTSIDE”
lower_field (float):
The lower field value threshold used by the qualifier
upper_field (float):
The upper field value threshold used by the qualifier. Not used for OVER or UNDER
command(*commands, **kwargs)

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, **kwargs)

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.

Instrument classes

This page outlines the objects and classes used to interact with registers in the Teslameter driver.

class lakeshore.teslameter.TeslameterOperationRegister(no_probe, overload, ranging, ramp_done, no_data_on_breakout_adapter)

Class object representing the operation status register

class lakeshore.teslameter.TeslameterQuestionableRegister(x_axis_sensor_error, y_axis_sensor_error, z_axis_sensor_error, probe_eeprom_read_error, temperature_compensation_error, invalid_probe, field_control_slew_rate_limit, field_control_at_voltage_limit, calibration_error, heartbeat_error)

Class object representing the questionable status register

class lakeshore.teslameter.StatusByteRegister(error_available, questionable_summary, message_available_summary, event_status_summary, master_summary, operation_summary)

Class object representing the status byte register

__init__(error_available, questionable_summary, message_available_summary, event_status_summary, master_summary, operation_summary)

Initialize self. See help(type(self)) for accurate signature.

class lakeshore.teslameter.StandardEventRegister(operation_complete, query_error, device_specific_error, execution_error, command_error, power_on)

Class object representing the standard event register

__init__(operation_complete, query_error, device_specific_error, execution_error, command_error, power_on)

Initialize self. See help(type(self)) for accurate signature.