Control Module
The pyccapt.control package provides instrument control, live monitoring, and experiment data acquisition workflows for open-source atom probe tomography systems.

Responsibilities
The control module is responsible for:
experiment orchestration and control loops
communication with detector and auxiliary hardware
GUI-based runtime operation and monitoring
synchronized shared state across cooperating processes
writing experiment metadata and acquisition streams
Calibration and reconstruction are implemented in pyccapt.calibration.
Runtime Architecture
The application runs as multiple processes, typically including:
main GUI process
experiment/control process
detector backend process (for example, Surface Concept, RoentDek, or DRS)
optional sub-GUI processes
Shared state is handled via pyccapt/control/core/share_variables.py.
Configuration
Control runtime configuration is loaded from pyccapt/config.toml.
supported format: TOML
device toggles should use
enabled/disabledlegacy
on/offvalues still work
Electrode labels used in the GUI are configured in pyccapt/control/electrode.toml.
Example:
[electrodes]
names = [
"NiC1", # Nickel electrode
"CuC1", # Copper electrode
"NC", # Not categorized
]
Electrode naming in the control workflow:

Use the electrode list to match the naming shown in the GUI and your lab workflow. For example, NiC1 refers to the nickel electrode and CuC1 refers to the copper electrode.
Startup Device Validation
Enabled devices are validated when an experiment is started.
If a required device cannot be opened, startup is blocked and the failure is reported in:
the main GUI warning area
terminal output
Access Overridenow asks for confirmation before it bypasses those checks.
To proceed without a disconnected device in the normal path, set that device to disabled in config.toml.
Data Output
Control-side HDF5 schema details are documented in Control_DATA_STRUCTURE.md.
Runtime logs are stored in:
pyccapt/files/logs/vacuumpyccapt/files/logs/baking/<timestamp>
GUI Overview

The main window is the experiment entry point. Long error messages now use a smaller wrapped font so port and device warnings remain readable inside the GUI instead of being clipped.
Sub-GUI views:
Gates:

Pumps/Vacuum:

Cameras:

Laser:

Stage:

Visualization:

Baking:
