# Oxford Instruments Intelligent Temperature Controller 503

class pymeasure.instruments.oxfordinstruments.ITC503(adapter, name='Oxford ITC503', clear_buffer=True, min_temperature=0, max_temperature=1677.7, **kwargs)

  Bases: `OxfordInstrumentsBase`

  Represents the Oxford Intelligent Temperature Controller 503.

      itc = ITC503("GPIB::24")        # Default channel for the ITC503

      itc.control_mode = "RU"         # Set the control mode to remote
      itc.heater_gas_mode = "AUTO"    # Turn on auto heater and flow
      itc.auto_pid = True             # Turn on auto-pid

      print(itc.temperature_setpoint) # Print the current set-point
      itc.temperature_setpoint = 300  # Change the set-point to 300 K
      itc.wait_for_temperature()      # Wait for the temperature to stabilize
      print(itc.temperature_1)        # Print the temperature at sensor 1

  class FLOW_CONTROL_STATUS(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

    Bases: `IntFlag`

    IntFlag class for decoding the flow control status. Contains the following flags:

    bit | flag | meaning
    --- | --- | ---
    4 | HEATER_ERROR_SIGN | Sign of heater-error; True means negative
    3 | TEMPERATURE_ERROR_SIGN | Sign of temperature-error; True means negative
    2 | SLOW_VALVE_ACTION | Slow valve action occurring
    1 | COOLDOWN_TERMINATION | Cooldown-termination occurring
    0 | FAST_COOLDOWN | Fast-cooldown occurring

  property auto_pid

    A boolean property that sets the Auto-PID mode on (True) or off (False).

  property auto_pid_table

    A property that controls values in the auto-pid table. Relies on `ITC503.x_pointer` and `ITC503.y_pointer` (or `ITC503.pointer`) to point at the location in the table that is to be set or read.

    The x-pointer selects the table entry (1 to 16); the y-pointer selects the parameter:

    y-pointer | parameter
    --- | ---
    1 | upper temperature limit
    2 | proportional band
    3 | integral action time
    4 | derivative action time

  property control_mode

    A string property that sets the ITC in local or remote and locked or unlocked, locking the LOC/REM button. Allowed values are:

    value | state
    --- | ---
    LL | local & locked
    RL | remote & locked
    LU | local & unlocked
    RU | remote & unlocked

  property derivative_action_time

    A floating point property that controls the derivative action time for the PID controller in minutes. Can be set if the PID controller is in manual mode. Valid values are 0 [min.] to 273 [min.].

  property front_panel_display

    A string property that controls what value is displayed on the front panel of the ITC. Valid values are: ‘temperature setpoint’, ‘temperature 1’, ‘temperature 2’, ‘temperature 3’, ‘temperature error’, ‘heater’, ‘heater voltage’, ‘gasflow’, ‘proportional band’, ‘integral action time’, ‘derivative action time’, ‘channel 1 freq/4’, ‘channel 2 freq/4’, ‘channel 3 freq/4’.

  property gasflow

    A floating point property that controls gas flow when in manual mode. The value is expressed as a percentage of the maximum gas flow. Valid values are in range 0 [off] to 99.9 [%].

  property gasflow_configuration_parameter

    A property that controls the gas flow configuration parameters. Relies on the `ITC503.x_pointer` to select which parameter is set or read:

    x-pointer | parameter
    --- | ---
    1 | valve gearing
    2 | target table & features configuration
    3 | gas flow scaling
    4 | temperature error sensitivity
    5 | heater voltage error sensitivity
    6 | minimum gas valve in auto

  property gasflow_control_status

    A property that reads the gas-flow control status. Returns the status in the form of a `ITC503.FLOW_CONTROL_STATUS` IntFlag.

  property heater

    A floating point property that represents the heater output power as a percentage of the maximum voltage. Can be set if the heater is in manual mode. Valid values are in range 0 [off] to 99.9 [%].

  property heater_gas_mode

    A string property that sets the heater and gas flow control to auto or manual. Allowed values are:

    value | state
    --- | ---
    MANUAL | heater & gas manual
    AM | heater auto, gas manual
    MA | heater manual, gas auto
    AUTO | heater & gas auto

  property heater_voltage

    A floating point property that represents the heater output power in volts. For controlling the heater, use the `ITC503.heater` property.

  property integral_action_time

    A floating point property that controls the integral action time for the PID controller in minutes. Can be set if the PID controller is in manual mode. Valid values are 0 [min.] to 140 [min.].

  property pointer

    A tuple property to set pointers into tables for loading and examining values in the table, of format (x, y). The significance and valid values for the pointer depends on what property is to be read or set. The value for x and y can be in the range 0 to 128.

  program_sweep(temperatures, sweep_time, hold_time, steps=None)

    Program a temperature sweep in the controller. Stops any running sweep. After programming the sweep, it can be started using OxfordITC503.sweep_status = 1.

    Parameters:

      - temperatures – An array containing the temperatures for the sweep

      - sweep_time – The time (or an array of times) to sweep to a set-point in minutes (between 0 and 1339.9).

      - hold_time – The time (or an array of times) to hold at a set-point in minutes (between 0 and 1339.9).

      - steps – The number of steps in the sweep, if given, the temperatures, sweep_time and hold_time will be interpolated into (approximately) equal segments

  property proportional_band

    A floating point property that controls the proportional band for the PID controller in Kelvin. Can be set if the PID controller is in manual mode. Valid values are 0 [K] to 1677.7 [K].

  property sweep_status

    An integer property that sets the sweep status. Values are:

    value | meaning
    --- | ---
    0 | Sweep not running
    1 | Start sweep / sweeping to first set-point
    2P - 1 | Sweeping to set-point P
    2P | Holding at set-point P

  property sweep_table

    A property that controls values in the sweep table. Relies on `ITC503.x_pointer` and `ITC503.y_pointer` (or `ITC503.pointer`) to point at the location in the table that is to be set or read.

    The x-pointer selects the step of the sweep (1 to 16); the y-pointer selects the parameter:

    y-pointer | parameter
    --- | ---
    1 | set-point temperature
    2 | sweep-time to set-point
    3 | hold-time at set-point

  property target_voltage

    A float property that reads the current heater target voltage with which the actual heater voltage is being compared. Only valid if gas-flow in auto mode.

  property target_voltage_table

    A property that controls values in the target heater voltage table. Relies on the `ITC503.x_pointer` to select the entry in the table that is to be set or read (1 to 64).

  property temperature_1

    Reads the temperature of the sensor 1 in Kelvin.

  property temperature_2

    Reads the temperature of the sensor 2 in Kelvin.

  property temperature_3

    Reads the temperature of the sensor 3 in Kelvin.

  property temperature_error

    Reads the difference between the set-point and the measured temperature in Kelvin. Positive when set-point is larger than measured.

  property temperature_setpoint

    A floating point property that controls the temperature set-point of the ITC in kelvin. (dynamic)

  property valve_scaling

    A float property that reads the valve scaling parameter. Only valid if gas-flow in auto mode.

  property version

    A string property that returns the version of the IPS.

  wait_for_temperature(error=0.01, timeout=3600, check_interval=0.5, stability_interval=10, thermalize_interval=300, should_stop=<function ITC503.<lambda>>)

    Wait for the ITC to reach the set-point temperature.

    Parameters:

      - error – The maximum error in Kelvin under which the temperature is considered at set-point

      - timeout – The maximum time the waiting is allowed to take. If timeout is exceeded, a TimeoutError is raised. If timeout is None, no timeout will be used.

      - check_interval – The time between temperature queries to the ITC.

      - stability_interval – The time over which the temperature_error is to be below error to be considered stable.

      - thermalize_interval – The time to wait after stabilizing for the system to thermalize.

      - should_stop – Optional function (returning a bool) to allow the waiting to be stopped before its end.

  wipe_sweep_table()

    Wipe the currently programmed sweep table.

  property x_pointer

    An integer property to set pointers into tables for loading and examining values in the table. The significance and valid values for the pointer depends on what property is to be read or set.

  property y_pointer

    An integer property to set pointers into tables for loading and examining values in the table. The significance and valid values for the pointer depends on what property is to be read or set.