Basel Drivers

Classes:

BaselSP983a(name, address[, ...])

A driver for Basel Preamp's (SP983a) Remote Instrument - Model SP983a.

BaselSP983c(name[, input_offset_voltage])

A virtual driver for the Basel SP 983c current to voltage converter.

BaselSP983(name[, input_offset_voltage])

A virtual driver for the Basel SP 983 current to voltage converter.

class qcodes.instrument_drivers.basel.BaselSP983a(name: str, address: str, input_offset_voltage: Parameter | None = None, **kwargs: Unpack[VisaInstrumentKWArgs])[source]

Bases: VisaInstrument

A driver for Basel Preamp’s (SP983a) Remote Instrument - Model SP983a.

Parameters:
  • name – name for your instrument driver instance

  • address – address of the connected remote controller of basel preamp

  • input_offset_voltage – (Optional) A source input offset voltage parameter. The range for input is -10 to 10 Volts and it is user’s responsibility to ensure this. This source parameter is used to set offset voltage parameter of the preamp and the source parameter should represent a voltage source that is connected to the “Offset Input Voltage” connector of the SP983C.

  • **kwargs – Forwarded to base class.

Attributes:

default_terminator

The default terminator to use if the terminator is not specified when creating the instrument.

gain

Parameter gain

fcut

Parameter fcut

overload_status

Parameter overload_status

offset_voltage

Parameter offset_voltage

Methods:

get_idn()

Parse a standard VISA *IDN? response into an ID dict.

default_terminator: str | None = '\r\n'

The default terminator to use if the terminator is not specified when creating the instrument. None means use the default terminator from PyVisa.

gain: Parameter = self.add_parameter( "gain", label="Gain", unit="V/A", set_cmd=self._set_gain, get_cmd=self._get_gain, vals=vals.Enum(1e5, 1e6, 1e7, 1e8, 1e9), )

Parameter gain

fcut: Parameter = self.add_parameter( "fcut", unit="Hz", label="Filter Cut-Off Frequency", get_cmd=self._get_filter, get_parser=self._parse_filter_value, set_cmd=self._set_filter, val_mapping={ 30: "30", 100: "100", 300: "300", 1000: "1k", 3000: "3k", 10e3: "10k", 30e3: "30k", 100e3: "100k", 1e6: "FULL", }, )

Parameter fcut

overload_status: Parameter = self.add_parameter( "overload_status", label="Overload Status", set_cmd=False, get_cmd="GET O" )

Parameter overload_status

offset_voltage: DelegateParameter = self.add_parameter( "offset_voltage", label="Offset Voltage for SP983C", unit="V", vals=vals.Numbers(-0.1, 0.1), scale=100, source=input_offset_voltage, parameter_class=DelegateParameter, )

Parameter offset_voltage

get_idn() dict[str, str | None][source]

Parse a standard VISA *IDN? response into an ID dict.

Even though this is the VISA standard, it applies to various other types as well, such as IPInstruments, so it is included here in the Instrument base class.

Override this if your instrument does not support *IDN? or returns a nonstandard IDN string. This string is supposed to be a comma-separated list of vendor, model, serial, and firmware, but semicolon and colon are also common separators so we accept them here as well.

Returns:

A dict containing vendor, model, serial, and firmware.

visabackend: str = visabackend
visa_handle: pyvisa.resources.MessageBasedResource = visa_handle

The VISA resource used by this instrument.

visalib: str | None = visalib
parameters: dict[str, ParameterBase] = {}

All the parameters supported by this instrument. Usually populated via add_parameter().

functions: dict[str, Function] = {}

All the functions supported by this instrument. Usually populated via add_function().

submodules: dict[str, InstrumentModule | ChannelTuple] = {}

All the submodules of this instrument such as channel lists or logical groupings of parameters. Usually populated via add_submodule().

instrument_modules: dict[str, InstrumentModule] = {}

All the InstrumentModule of this instrument Usually populated via add_submodule().

log: InstrumentLoggerAdapter = get_instrument_logger(self, __name__)
metadata: dict[str, Any] = {}
class qcodes.instrument_drivers.basel.BaselSP983c(name: str, input_offset_voltage: Parameter | None = None, **kwargs: Unpack[InstrumentBaseKWArgs])[source]

Bases: BaselSP983

A virtual driver for the Basel SP 983c current to voltage converter.

This driver supports both the SP 983 and SP 983c models. These differ only in their handling of input offset voltage. It is the responsibility of the user to capture the input offset, (from the voltage supply) and compensate that as needed for SP 983. For SP 983c model, ‘input_offset_voltage’ argument can be used to set up offset (This doesn’t work for SP 983c01 model).

Note that, as this is a purely virtual driver, there is no support for the remote control interface (SP 983a). It is the responsibility of the user to ensure that values set here are in accordance with the values set on the instrument.

Parameters:
  • name

  • input_offset_voltage – (Optional) A source input offset voltage parameter. The range for input is -10 to 10 Volts and it is user’s responsibility to ensure this. This source parameter is used to set offset voltage parameter of the preamp and the source parameter should represent a voltage source that is connected to the “Offset Input Voltage” connector of the SP983C.

Methods:

get_idn()

Parse a standard VISA *IDN? response into an ID dict.

get_idn() dict[str, str | None][source]

Parse a standard VISA *IDN? response into an ID dict.

Even though this is the VISA standard, it applies to various other types as well, such as IPInstruments, so it is included here in the Instrument base class.

Override this if your instrument does not support *IDN? or returns a nonstandard IDN string. This string is supposed to be a comma-separated list of vendor, model, serial, and firmware, but semicolon and colon are also common separators so we accept them here as well.

Returns:

A dict containing vendor, model, serial, and firmware.

class qcodes.instrument_drivers.basel.BaselSP983(name: str, input_offset_voltage: Parameter | None = None, **kwargs: Unpack[InstrumentBaseKWArgs])[source]

Bases: Instrument

A virtual driver for the Basel SP 983 current to voltage converter.

This driver supports both the SP 983 and SP 983c models. These differ only in their handling of input offset voltage. It is the responsibility of the user to capture the input offset, (from the voltage supply) and compensate that as needed for SP 983. For SP 983c model, ‘input_offset_voltage’ argument can be used to set up offset (This doesn’t work for SP 983c01 model).

Note that, as this is a purely virtual driver, there is no support for the remote control interface (SP 983a). It is the responsibility of the user to ensure that values set here are in accordance with the values set on the instrument.

Parameters:
  • name

  • input_offset_voltage – (Optional) A source input offset voltage parameter. The range for input is -10 to 10 Volts and it is user’s responsibility to ensure this. This source parameter is used to set offset voltage parameter of the preamp and the source parameter should represent a voltage source that is connected to the “Offset Input Voltage” connector of the SP983C.

  • **kwargs – Forwarded to base class.

Attributes:

gain

Parameter gain

fcut

Parameter fcut

offset_voltage

Parameter offset_voltage

Methods:

get_idn()

Parse a standard VISA *IDN? response into an ID dict.

gain: Parameter = self.add_parameter( "gain", initial_value=1e8, label="Gain", unit="V/A", get_cmd=None, set_cmd=None, vals=Enum(1e09, 1e08, 1e07, 1e06, 1e05), )

Parameter gain

fcut: Parameter = self.add_parameter( "fcut", initial_value=1e3, label="Cutoff frequency", unit="Hz", get_cmd=None, set_cmd=None, vals=Enum(30.0, 100.0, 300.0, 1e3, 3e3, 10e3, 30e3, 100e3, 1e6), )

Parameter fcut

parameters: dict[str, ParameterBase] = {}

All the parameters supported by this instrument. Usually populated via add_parameter().

functions: dict[str, Function] = {}

All the functions supported by this instrument. Usually populated via add_function().

submodules: dict[str, InstrumentModule | ChannelTuple] = {}

All the submodules of this instrument such as channel lists or logical groupings of parameters. Usually populated via add_submodule().

instrument_modules: dict[str, InstrumentModule] = {}

All the InstrumentModule of this instrument Usually populated via add_submodule().

log: InstrumentLoggerAdapter = get_instrument_logger(self, __name__)
metadata: dict[str, Any] = {}
offset_voltage: DelegateParameter = self.add_parameter( "offset_voltage", label="Offset Voltage", unit="V", vals=Numbers(-0.1, 0.1), scale=100, source=input_offset_voltage, parameter_class=DelegateParameter, )

Parameter offset_voltage

get_idn() dict[str, str | None][source]

Parse a standard VISA *IDN? response into an ID dict.

Even though this is the VISA standard, it applies to various other types as well, such as IPInstruments, so it is included here in the Instrument base class.

Override this if your instrument does not support *IDN? or returns a nonstandard IDN string. This string is supposed to be a comma-separated list of vendor, model, serial, and firmware, but semicolon and colon are also common separators so we accept them here as well.

Returns:

A dict containing vendor, model, serial, and firmware.