Changelog
[2.2.2.0] - 2026-03-24
JSON API
Added
- Add
NewName parameter to PositionSet command of stage XYZ device to allow renaming positions.
- Add
GetZStackNames command to stage XYZ device to get the list of Z-stacks.
- Add
GetZStack command to stage XYZ device to get the Z-stack settings.
- Add
SetZStack command to stage XYZ device to set the Z-stack settings.
- Add
GetAcquisitionSettings command to time-lapse controller to get the acquisition settings.
- Add
SetAcquisitionSettings command to time-lapse controller to set the acquisition settings.
- Add
GetSettingsProfileNames command to time-lapse controller to get the list of settings profiles.
- Add
GetSettingsProfile command to time-lapse controller to get the settings profile.
- Add
SetSettingsProfile command to time-lapse controller to set the settings profile.
- Add
GetChannelSettingsNames command to time-lapse controller to get the list of channel settings in a settings profile.
- Add
GetChannelSettings command to time-lapse controller to get the channel settings of a settings profile.
- Add
SetChannelSettings command to time-lapse controller to set the channel settings of a settings profile.
[2.2.1.6] - 2026-02-18
Software
Changed
- Remove auto-update of filter wheel position (reduce communication with driver).
Fixed
- Fix premature stopping of stage movement.
[2.2.1.5] - 2026-02-04
Software
Changed
- Improve logging of errors for filter wheel driver.
Fixed
- Fix application not closing properly when closed during startup.
- Fix invalid creation of markers for range XY.
[2.2.1.4] - 2025-11-25
Software
Fixed
- Fix memory leak when writing OME-TIFF files.
[2.2.1.3] - 2025-09-25
Software
Fixed
- Fix missing error reporting in the time-lapse controller initialization.
- Fix error when
DeviceSettings is undefined in acquisition settings.
[2.2.1.2] - 2025-09-18
Software
Fixed
- Fix position alignment for snap and live acquisition.
[2.2.1.1] - 2025-09-16
Software
Fixed
- Fix crash when opening virtual hand controller window.
- Fix crash when starting application without photomanipulation component.
[2.2.1.0] - 2025-08-14
Software
Added
- The edition of settings will not affect the current time point execution.
- Add warning message when changing settings during time-lapse.

- Prevent the edition of some settings while time-lapse is running.
- Add "Never" option when acquiring a channel every nth time points to disable it while the time-lapse is running.
- User settings may be marked as required (from JSON file), preventing renaming and deletion at all time.
- Add new "Range XY" tab to define the range of positions in the XY plane.

- Acquire multiple tiles for each position based on range XY when defined. Tiles can be visualized and navigated using a minimap in the image viewer.

Changed
- Automatically disconnect when an unrecoverable error occurs in a device.
- Improve speed of aborting time-lapse (almost instantaneous).
Settings
Added
- Add
MinTileOverlap in stage component settings.
[2.2.0.2] - 2025-08-06
Software
Fixed
- Fix TIFF writing when transitioning to BigTIFF format (no random pixels at the top of plane close to 405).
[2.2.0.1] - 2025-07-07
Software
Fixed
- Fix overlay not overlapping properly in image viewer.
[2.2.0.0] - 2025-07-01
Software
Added
- Add interactable histogram on top of image viewer.
- Displayable from context menu.
- Y axis can be displayed in log scale.
- Clicking will adjust max threshold.

- Add retrospective image browsing, can look at old time points, settings or positions.
- Add buttons to follow latest plane and time point imaged.

- Add toolbar with buttons for histogram and maximum intensity projection (when available).

- Add delay and duration of time point.
- Don't stop acquisition if a delay is detected (shows warning).

- Show error if acquisition completes with a delay.

- Show duration of last time point.

- Display time stamp in image viewer and store it in ome metadata.
- Add coordinates in ome metadata.
- Documentation of the JSON commands API.
- Documentation of the JSON settings.
- Automatic settings conversion from previous version at application startup and settings import. Compatibility starts from version 2.0.0.5
- Add objective block selection at startup, moved all objective block settings in a dedicated folder.

- Add saturation color lookup table (white with red when value is maximum: 65535).

- Add the virtual hand controller window that can move the stage by clicking on arrows buttons (also work with keyboard). The step size of the move can be defined.

- Allow to define range Z of positions in a dedicated editor tab where it is possible to mark the edges based on stage location. The center Z will always be in the middle of the range.
=>
=> 
- Allow photomanipulation at multiple positions and multiple time points.
- Add menu option to reset learned flow of CO2 and O2 concentration in environment control. There is also a warning when starting the flow regulation if the flow is unexpectedly high.
- Add service mode when pressing
Shift key at software startup.
- Add a menu item in service mode that allows to bypass the min/max validation of illumination module settings.
- Add company name, software name and version in the image metadata.
- Add correction factor for translation-rotation coupling in ACQ_Component of Microscope settings. This factor corrects for the additional rotation induced by scanner 2 when translating the beam along X, since scanner 2 is not at the focal plane of the scan lens. The red and green lightsheets in the picture are the uncorrected and the corrected one, respectively.

- Add correction factors for scan plane tilts in ACQ_Objective of Objective settings. These factors enables alignment of the scan planes of each illumination with the imaging planes of the cameras. The pictures show the uncorrected (i.e. tilted) and corrected (i.e. horizontal) planes. The fact that the imaging planes are curved is due to the field curvature of the detection objectives.


Changed
- When autoscale is enabled, display which scaling is used instead of manual scaling values.
- Change position selection in acquisition settings to dropdown with checkboxes.

- Change path selection input to file dialog.

- Change how EULA are displayed. The EULA is now displayed in a separate window and the user must accept it to continue.

Fixed
- Photomanipulation images are now valid ome.tiff (openable with ImageJ).
- Maximum projection images are now valid ome.tiff (openable with ImageJ).
- Fix crash when PyMCS is already opened.
- Fix missing colors in channel presets.
Settings
Added
- Add
Version to application and user settings.
- Add
PanelLocation in filter wheel and illumination module component settings.
- Add new component settings file for time lapse controller, JSON command server, PyMCS launcher and image viewer.
- Photomanipulation component settings:
- Add
StageXYZName.
- Acquisition controller component settings:
- Add
PhotomanName.
- Camera component settings:
- Add
StageXYZName.
- Add
FlowExcessThreshold to environment control PID settings (PID_EIntegrals<gas>.json).
- Add
LaserExternal to photomanipulation component settings.
- Add
Scanner2To3Factor to acquisition controller component settings.
This factor is used to correct for the additional rotation induced by scanner 2 when translating the beam along X, since scanner 2 is not at the focal plane of the scan lens.
- Add
Illumin1TiltFactor and Illumin2TiltFactor to acquisition controller objective settings.
These factors enables alignment of the scan planes of each illumination with the imaging planes of the cameras.
- Add residual offsets in illumination module objective settings to compensate for residual objective block misalignment.
Changed
- Move device/component name from
MicroscopeDevices.json into MicroscopeSettings.json under Components.
- Move device type and label from
MicroscopeDevices.json into component settings file.
- Convert device settings into components settings:
- Rename
XXX_Device.json into XXX_Component.json.
- Rename
DeviceType into ComponentType.
- Rename
DeviceLabel into ComponentLabel.
- Converted user settings list into object (to store additional properties, e.g.
Version).
- Acquisition settings:
- Merge
TimeIntervalMin and TimeIntervalSec into TimeInterval.
- Rename
Settings into SettingsProfiles.
- Rename
ZStackName into ZStack.
- Rename
IlluminationSetting into Illumination.
- Rename
ExposureSetting into Exposure.
- Rename
IlluminationFilterSetting into IlluminationFilter.
- Convert
Positions of settings profiles to be a list of positions name.
- Convert
Positions of photomanipulation to be a list of positions name.
- Rename
TimePoint of photomanipulation into TimePoints and convert to be a list of time points.
- All component settings:
- Rename
StageXYZDeviceName into StageXYZName.
- Rename
Illumin1DeviceName into IlluminModule1Name.
- Rename
Illumin2DeviceName into IlluminModule2Name.
- Application settings:
- Move
PyMCSPath into PyMCS launcher component settings.
- Move
PythonInterpreter into PyMCS launcher component settings.
- Move objective settings into a
Objective/ folder.
Removed
- Delete
MicroscopeDevices.json.
- Acquisition settings:
- Remove
ZStackEnabled, no ZStack means disabled.
- Remove old image formats from camera storage settings (
TIFF Stack and TIFF Image).
- Remove unused
ADLS1_Module.json and ADLS2_Module.json files.
- Remove unused photomanipulation driver settings file.
- Remove
Overlays from camera settings.
[2.1.0.1] - 2025-02-06
Software
Fixed
- Photomanipulation tab was displayed when it was unavailable.
[2.1.0.0] - 2025-01-06
Software
Added
- Add scale bar.

- Add settings summary.
A user readable text file is available in the experiment folder when an acquisition is performed. This file contains all the settings used in the current acquisition.
- Add End User License Agreement at startup.
- Add notice file for open source libraries.
- Add a menu to calculate scanner base offsets for photomanipulation.
Changed
- Update validation of names to work with file system.
- Improve validation of acquisition settings.

- Improve efficiency when moving through planes in image viewer.
- Update logo to Leica's and change icon colors.

- Detect compatible PyMCS version based on two first version numbers (Milestone and Major).
- Bypass driver communication in Move commands.
FilterWheelDevice commands Move and MoveTo skip sending a move command to the driver if filter wheel is already at the correct position.
- Extend MAC6000FilterWheel driver hardware response timeout to 10s.
- Increase range of photomanipulation scanner offset from +-10um to +-20um.
Fixed
- Fix inconsistent numeric validation.
Some numeric fields compatible with arithmetic computation were not replaced by the result once saved.
=> 
- Fix crash when editing the Z-stack parameters.
- Fix text hidden behind text box icon.
- Fix text box resizing for long text.
- Fix switch of view when moving photomanipulation area in image viewer.
- Fix invalid position computation from image viewer.
JSON API
Added
- Add option to set device to
IlluminationSet command of illumination device
- Add option to snap fast to
Snap command of time lapse controller to bypass the setting of all settable devices.
- Add a command to set the displayed view from PyMCS:
DisplayedViewSet.
- Add Force option to Move commands.
Add a Force option to FilterWheelDevice commands Move and MoveTo which forces move command to be sent to the driver even if filter wheel is already at the correct position.
Changed
- Rename
With into Width for ImageGet response of CameraDevice.
Settings
Added
- Add gas concentration regular expression settings and manual COM port settings.
- Add manual COM port settings to SerialFilterWheel driver.
Removed
- Scanner factors of illumination module are now ignored (set from acquisition controller).