Proteox controller#

High-level controller for the Proteox cryostat system by Oxford Instruments, interfacing via WAMP.

To configure the connection, you must include a .env file in the same folder as the Proteox module. This file must contain the following entries:

WAMP_USER="**********"
WAMP_USER_SECRET="*************"
WAMP_REALM="ucss"
WAMP_ROUTER_URL="ws://************:8080/ws"
BIND_SERVER_TO_INTERFACE="localhost"
SERVER_PORT="33576"

Warning

All API methods (including sensor accessors) are asynchronous and must be used with await inside an async function.

Example of operations#

from asyncio import run
from qtics import Proteox

async def myfun():
    instrument = Proteox()
    await instrument.connect()

    for _ in range(1):
        mix = await instrument.get_MC_T()
        pt1 = await instrument.get_PT1_T1()
        pt2 = await instrument.get_PT2_T1()
        sti = await instrument.get_STILL_T()
        col = await instrument.get_CP_T()
        print("\nTEMPS:")
        print(f"MIX: {mix*1000:.2f} mK")
        print(f"STILL: {sti*1000:.2f} mK")
        print(f"COLD: {col*1000:.2f} mK")
        print(f"PT1: {pt1:.2f} K")
        print(f"PT2: {pt2:.2f} K")

    await instrument.close()

run(myfun())

Commands#

  • connect() Connect to the Proteox cryostat via WAMP.

  • close() Cleanly disconnect from the cryostat session.

  • get_<sensor>() Dynamic getter for supported sensors (see below). If the key is not recognized, raises an AttributeError.

Dynamic getters#

The following sensors are available via dynamic getter methods:

Temperatures#

  • get_SAMPLE_T() – Sample thermometer

  • get_MC_T() – Mixing chamber temperature

  • get_MC_T_SP() – Mixing chamber temperature setpoint

  • get_STILL_T() – Still temperature

  • get_CP_T() – Cold plate temperature

  • get_SRB_T() – Sorb temperature

  • get_DR2_T(), get_DR1_T() – DR stage temperatures

  • get_PT2_T1(), get_PT1_T1() – Pulse tube stage temperatures

  • get_MAG_T() – Magnet system temperature

Heaters and Powers#

  • get_MC_H() – Mixing chamber heater power

  • get_STILL_H() – Still heater power

Pressures#

  • get_OVC_P() – Outer vacuum chamber pressure

  • get_P1_P() to get_P6_P() – Various pressure gauges

Flows#

  • get_3He_F() – ^3He flowmeter

Magnetic Field Control#

  • get_MAG_VEC() – Magnetic field vector

  • get_MAG_STATE(), get_SWZ_STATE() – Magnet controller and sweep state

  • get_MAG_TARGET() – Field target

  • get_MAG_X_STATE(), get_MAG_Y_STATE(), get_MAG_Z_STATE() – Axis state

  • get_MAG_CURR_VEC(), get_CURR_TARGET() – Magnet current vector and targets

State#

  • get_state() – Cryostat state (returns descriptive label e.g., “CONDENSING”)

Available state labels:

  • IDLE

  • PUMPING

  • CONDENSING

  • CIRCULATING

  • WARM UP

  • CLEAN COLD TRAP

  • SAMPLE EXCHANGE