Ossila

Ossila X200

Implements the Ossila X200 Source Measure Unit.

Requires the xtralien package: https://pypi.org/project/xtralien/

class OssilaX200Channel(identifier: str | None = None, settings: Dict[str, Tuple[int | float | bool] | int | float | bool | str] | None = None)[source]

Bases: Channel, ABC

Abstract class which implements the properties and methods which all Ossila X200 channels have in common.

set_property(name: str, value: Any) None[source]

Sets a property/device-setting to the provided value.

Parameters:
  • name – The name of the property/device-setting to be set.

  • value – The value to which the property/device-setting should be set.

get_property(name: str) Any[source]

Retrieves the current value of a property/device-setting.

Parameters:

name – The name of the property/device-setting to get.

Returns:

The value of the property/device-setting.

enable() None[source]

Enables the channel. Must be executed before any channel method can be run.

disable() None[source]

Disables the channel.

class VoltageSMUChannel(identifier: str = 'smu1', auto_range: bool = False, delay: float = 0.001, s_filter: int = 1, s_osr: int = 5, s_range: int = 1)[source]

Bases: OssilaX200Channel, Voltmeter, Amperemeter, VoltageSource, VoltageSMU

A source measure unit (SMU) channel of the Ossila X200 device which can source a voltage and measure the voltage and current. For more details and specifications see the user manual of the Ossila X200.

Parameters:
  • identifier – String identifier of the SMU channel: ‘smu1’ or ‘smu2’.

  • auto_range – Flags if the current measurement range should be determined automatically by the source_and_measure() method.

  • delay – Setting for the voltage settling time in s.

  • s_filter – Setting for the number of repeated measurements which get averaged.

  • s_osr – Setting for the sampling rate which is 64*2**n samples/datapoint with n in [0,9] or [10,19] for 1x or 2x mode of the analog-to-digital converter. E.g., the default setting of 5 corresponds to a sampling rate of 2048 samples/datapoint with an RMS noise of 750 nV and a measurement rate of 36 datapoints/s.

  • s_range – Setting for the current measurement range which takes a value in [1,5] and allows maximum absolute currents of 200 mA, 20 mA, 2 mA, 200 µA, and 20 µA, respectively.

Raises:
  • TypeError – If the type of setting values is incorrect.

  • ValueError – If the identifier is not available or setting values are out of bounds.

property auto_range: bool

Flags if the current measurement range should be determined automatically.

property delay: float

Setting for the voltage settling time in s.

property settings: Dict[str, Tuple[int | float | bool] | int | float | bool | str]

Dictionary of channel settings.

enable() None[source]

Sets the source voltage to 0 V and enables the channel.

disable() None[source]

Sets the source voltage to 0 V and disables the channel.

measure_voltage() float[source]

Measures the voltage.

Returns:

Measurement result in V.

measure_current() float[source]

Measures the current.

Returns:

Measurement result in A.

source_voltage(voltage: float) None[source]

Sets the DC output voltage to the defined value.

Parameters:

voltage – Output voltage of the DC power source in V. Must be in [-10, 10].

Raises:

ValueError – If voltage is out of bounds.

source_voltage_and_measure(voltage: float) Tuple[float, float][source]

Sets the output voltage to the defined value, then measures the actual voltage and current.

Parameters:

voltage – Output voltage of the power source in V. Must be in [-10, 10].

Returns:

Measurement result as a tuple: (voltage (V), current (A)).

Raises:

ValueError – If voltage is out of bounds.

class VoltmeterChannel(identifier: str = 'vsense1', s_osr: int = 5)[source]

Bases: OssilaX200Channel, Voltmeter

A voltmeter channel (Vsense) of the Ossila X200 device which can measure the voltage with high precision. For more details and specifications see the user manual of the Ossila X200.

Parameters:
  • identifier – String identifier of the SMU channel: ‘vsense1’ or ‘vsense2’.

  • s_osr – Setting for the sampling rate which is 64*2**n samples/datapoint with n in [0,9] or [10,19] for 1x or 2x mode of the analog-to-digital converter. E.g., the default setting of 5 corresponds to a sampling rate of 2048 samples/datapoint with an RMS noise of 750 nV and a measurement rate of 55 datapoints/s.

Raises:

ValueError – If the identifier or the setting value is not available.

measure_voltage() float[source]

Measures the voltage.

Returns:

Measurement result in V.

class OssilaX200(channels: List[TChannel] | None = None, address: str = '', port: int = 0, serial_timeout: float = 0.1)[source]

Bases: Device

Implements the Ossila X200 Source Measure Unit as a Device class which is a container for the channels and the device connection. For more details and specifications see the user manual of the Ossila X200.

Parameters:
  • channels – List of channels which are subclasses of the OssilaX200Channel. A maximum of 4 channels, i.e., 2xSMU and 2xVsense, are available. Duplicates are not allowed.

  • address – COM (USB) or IP (Ethernet) address of the Ossila X200.

  • port – Must be defined for connections over ethernet.

  • serial_timeout – Timeout for the serial connection over USB in s.

Raises:
  • TypeError – If a channel is not an OssilaX200Channel. If connection arguments port and serial_timeout cannot be cast to their required type.

  • ValueError – If duplicate channels are provided.

property channels: List[TChannel]

A list of implemented Channel instances.

_establish_connection() Device[source]

Opens the device connection and returns the resource.