Changelog#

v1.2.0 (unreleased)#

Features added#

  • GUI: - Added a branding system (branding): the new branding setting selects the branding of devctrl or one of the installed modules. The branding’s icon is used as program icon and rail button icon, and its color replacements are applied dynamically when icons are loaded (ThemedIconEngine). - Added a theme setting (system/light/dark) which is applied immediately via apply_theme(); themed icons convert instantly on change. - The rail buttons now show icons: module branding icons and the icons of the shared Devices, Data and Tools views. - Added a global Tools workspace (tools) with launcher buttons, pop-out/re-dock and a module tool API. - Added a global Devices workspace with per-module device load/connect. - Added a per-module save_state hook called from the app-wide state saving. - The task list is restored on startup and robust against loading errors. - Added task parameter sweeps: the Sweep button of the task list opens TaskParameterSweepDialog to replicate the selected task once per sweep point (devctrl.task.sweeps), with list/range values, cartesian or lockstep combination, randomized order and optional hierarchy variant templates.

  • Devices: - Added ThorlabsPM100D power meter support. - Added an auto_save flag to the device manager; improved RTA4000 robustness.

Significant changes#

  • GUI: Icons are stored in the default IconPark colorset and recolored dynamically at load time; pre-generated dark icon sets (icons-dark) are no longer required.

Bugfixes#

  • GUI: - Device widgets keep their ideal size and the device list is scrollable. - Dataset opening is deferred until after a drag&drop; directories are expanded. - Qt signals are bound correctly in the combined host entry point. - The fallback device manager prompts for devices.

  • Utility: Each Signal descriptor instance gets a unique index.

v1.1.0 (2026-08-28) - GUI Update#

Features added#

  • Devices: - Added temperature_controller module with TEC support. - Added oscilloscope module with GageCompuScope support (currently WIP). - Added power_meter module with ThorlabsPM160 support. - Added Ekspla support to the laser module (WIP).

  • SettingsClass: - Added SettingsClass, which is a python dataclass that allows saving/loading from/to yaml. - Added a key-value database interface for SettingsClass.

  • Task system: Added task system (devctrl.task).

  • Messaging: Added messaging module that allows sending messages to the user in both CLI and GUI environments.

  • GUI: - Added FieldWidget, which allows generating a complete input form for any SettingsClass. - Added task management widgets. - Added utility module for GUI utilities.

  • Resources: - Added load_icon function. - Added IconPark icons in light and dark mode. - Added svg_recolor module/tool to adapt colors in SVG icons.

  • Documentation: Added Sphinx documentation in docs/source/.

  • Translation: Added translation module and used QT translation features in GUI code.

  • Utility: - Added support for sending emails. - Added event module. - Added threading module.

Significant changes#

  • GUI: Using the GUI must now be configured using from devctrl import configure; configure(gui=True) before any import statements.

  • Dependencies: Updated Python requirement to >=3.12.

  • Devices: - Renamed ShutterDAQ to NIDAQ. - Upgraded TMC300 monochromator backend from pyBen to benhw.

  • Project: Added Makefile for documentation and icon builds.

v1.0.3 (2025-09-19)#

Features added#

  • Devices: Added Ionivac_ITR90 support.

  • GUI: - Added Python console widget. - Added LogViewer widget. - Added general-purpose widgets (About, FileSelection). - Added GUI controls for devices (DeviceManager, DeviceWidget).

  • Data: - Added time module for time series data functionality. - Added spectrum module for spectral data with plotting and transforms.

v1.0.2 (2025-07-23)#

Features added#

  • Devices: - Added wheel module with Thorlabs Filter Wheel support. - Added temperature_sensor module with ClewareHumidity support. - Added Kymera support to monochromator module.

  • Utility: Added search_in_path.

v1.0.1 (2025-06-30)#

Features added#

  • Devices: - Added Device base class with auto-registration metaclass. - Added amplifier module with FemtoDLPCA200 support. - Added Arduino support for FemtoDLPCA200.

  • Utility: - Added file_io module for file operations. - Added log module for colored logging and package filtering.

Significant changes#

  • Dependencies: Temporarily commented out pyyaml dependency.

  • Project: Reorganized device modules from devices/ to devctrl/devices/.

v1.0.0 (2025-05-19)#

Features added#

  • Project: Initial release. Moved initial features over from cpdctrl and prsctrl.