This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Monitoring

Environmental and instrument-health monitoring.

Long-running experiments need more than the main data stream. Quatm monitors the laboratory infrastructure and the health of its own services.

Environmental monitors

Bundled monitors cover:

  • temperature controllers and sensors;
  • magnetometers / Hall probes;
  • wavemeters and laser power meters;
  • vacuum gauges;
  • PC health (CPU, memory, disk);
  • oscilloscopes and general SCPI instruments.

Monitors are ordinary services that publish into the property and data streams. A failed monitor is reported and can be restarted without touching the experiment runtime.

Device health

The Device Manager can probe instruments, run driver self-tests and show the current lease owner. Health state and history are kept separately from experiment data, so a failing instrument does not corrupt a run’s HDF5 file.

Service health

The Operations Console and Task Monitor show:

  • service process state and uptime;
  • task queue state and heartbeats;
  • configured endpoints and reachability;
  • data-manager save errors and disk headroom;
  • resource alerts (disk, database size, threads, file descriptors).

Alerts are rate-limited and transition-based: an ongoing error is reported once, and recovery is reported separately.

1 - LFI3751 temperature controller

Wavelength Electronics LFI3751 temperature controller driver: PyVISA communication.

Overview

LFI3751 drives the Wavelength Electronics high-precision semiconductor laser temperature controller over PyVISA.

from quatm.monitor.LFI3751 import LFI3751

tc = LFI3751(addr="USB0::...")
temp = tc.get_temperature()
tc.set_setpoint(25.0)

2 - Gaussmeter

PCE-MFM 3000 gaussmeter driver: serial communication, real-time magnetic-field measurement.

Overview

PCE_MFM_3000 drives the PCE Instruments magnetic flux density meter and reads the magnetic induction in real time over a serial port.

from quatm.monitor.PCE_MFM_3000 import PCE_MFM_3000

gauss = PCE_MFM_3000(port="/dev/ttyUSB0")
field = gauss.get_field()  # Returns the value in mT

3 - Cavity environmental sensors

Arduino temperature, humidity and pressure sensors: real-time monitoring of the cavity environment.

Overview

The arduino driver reads temperature, humidity and pressure sensor data from inside the cavity through an Arduino Nano.

from quatm.monitor.cavity_arduino import arduino

env = arduino(port="/dev/ttyACM0")
temp, hum, press = env.read_all()

4 - PC health monitoring

Real-time CPU/memory/disk/network monitoring based on psutil.

Overview

PC_health uses psutil to monitor the CPU utilization, memory usage, disk space and network traffic of the experiment control computer, preventing experiment interruptions caused by resource exhaustion.

from quatm.monitor.pc_health import PC_health

health = PC_health()
cpu = health.get_cpu_percent()
mem = health.get_memory_usage()
disk = health.get_disk_free()

5 - Oscilloscope

Rigol DS1054Z oscilloscope driver: PyVISA waveform acquisition and voltage measurement.

Overview

The ds1054z driver controls the Rigol DS1054Z four-channel digital oscilloscope and performs waveform acquisition and automatic measurements over PyVISA.

from quatm.monitor.ds1054z import ds1054z

scope = ds1054z(addr="USB0::...")
waveform = scope.get_waveform(channel=1)
vpp = scope.measure_vpp(channel=1)