Release Notes

Summary

The official release 2026 of the IFW includes the following products:

ICS Framework Product

Repository/Waf project

Product version

RPM version

Application Framework

rad

8.0.0

elt-rad-8.0.0

Test Runner Framework

etr

3.4.0

elt-etr-3.4.0

Sequencer

seq

4.10.0

elt-seq-4.10.0

Data Display Tool

ddt

1.4.0

elt-ddt-1.4.0

Camera Control Framework

ifw-ccf

6.0.0

elt-ifw-ccf-6.0.0

Camera Control Framework UI (ccfui)

ifw-ccfui

1.0.0

elt-ifw-ccfui-1.0.0

Observation Coordination Framework (daq)

ifw-daq

3.3.0

elt-ifw-daq-3.3.0

Observation Coordination Framework Interface (daqif)

ifw-daqif

3.0.0

elt-ifw-daqif-3.0.0

Observation Coordination Framework (sup)

ifw-sup

5.1.0

elt-ifw-sup-5.1.0

Observation Coordination Framework Interface (supif)

ifw-supif

1.2.0

elt-ifw-supif-1.2.0

Widget Library (wdglib)

ifw-wdglib

2.0.0

elt-ifw-wdglib-2.0.0

RTMS Tools

ifw-rtmstools

4.0.0

elt-ifw-rtmstools-4.0.0

Calibration Framework (calob)

ifw-calob

1.0.2

elt-ifw-calob-1.0.2

Function Control Framework (fcf)

ifw-fcf

8.0.0

elt-ifw-fcf-8.0.0

Function Control Framework Interface (fcfif)

ifw-fcfif

2.0.0

elt-ifw-fcfif-2.0.0

Function Control Framework UI (fcfui)

ifw-fcfui

1.0.0

elt-ifw-fcfui-1.0.0

Online Data Processing

ifw-odp

5.1.0

elt-ifw-odp-5.1.0

Fundamental Definitions and Tools (fnd)

ifw-fnd

2.0.0

elt-ifw-fnd-2.0.0

Frame Grabber Framework (fgf)

ifw-fgf

2.0.0

elt-ifw-fgf-2.0.0

Miscellaneous Core Libraries (core)

ifw-core

7.0.0

elt-ifw-core-7.0.0

Template Library (tpl)

ifw-tpl

1.3.0

elt-ifw-tpl-1.3.0

RTMS Library (rtmslib)

ifw-rtmslib

1.0.0

elt-ifw-rtmslib-1.0.0

FCF Device Simulator (ifw-fcfsim)

ifw-fcfsim

1.0.0

elt-ifw-fcfsim-1.0.0

Secondary Loop Manager (slm)

ifw-slm

0.1.0

elt-ifw-slm-0.1.0

Secondary Loop Manager Interface (slmif)

ifw-slmif

0.1.0

elt-ifw-slmif-0.1.0

Instrument Package Tool (iptool)

ifw-iptool

1.0.0

elt-ifw-iptool-1.0.0

ESO Cross-Architecture Libraries (xarch)

elt-xarch

0.1.0

elt-xarch-0.1.0

ESO OPC UA Tools (uatools)

elt-uatools

1.0.0

elt-uatools-1.0.0

ESO Camera Communication (camcom)

elt-camcom

1.0.0

elt-camcom-1.0.0

The links to the components release in Gitlab are :

Note

Repository for Binaries:

We have moved our binaries to GIT Large File Storage (LFS). This includes but is not limited to PLC compiled libraries, PLC modules and other utilities (binaries for Windows).

What is new in this release?

This release marks an important milestone, completing IFW’s transition from active development to full maintenance. It also includes several new components that extend the framework to cover most instrumentation software needs. Following the ELT Control decision, the IFW is becoming an open source framework and adopting the LGPL license model.

  • IFW adapted to the latest ELT Software Stack (ELT Platform 2026)

  • IFW adopting LGPL license version 3 model.

  • Splitting some repositories to move user interfaces to independent repositories, e.g. ifw-fcfui.

  • Following the general change in Platform 2026, all IFW files are installed in linux standard directories and no longer under /elt/IFW.

  • New component: Secondary Loop Manager (ifw-slm). Aimed to ease the implementation of slow loops specially in adaptive optics systems.

  • New component: Camera Communication Toolkit (camcom). Aimed to simplify the implementation of camera communication interfaces.

  • New component: Instrument Package tools (ifw-iptool). Aimed to ease the preparation of template signature files and instrument packages.

  • New component: OPCUA Tools (uatools) packing the new OPCUA wrapper library and tools including a new OPCUA browser application (UaExplorer).

  • New component: General purpose Archive Facility (xarch). Aimed to organize data products and retrieve them through a web interface.

  • New component: FCF Device Simulator (ifw-fcfsim). This is the new device simulator framework provided by EFISOFT in a collaboration with ESO.

  • Ported ifw-ccf and ifw-fgf to LLNETIO.

  • All ESO PLC libraries now supported for TwinCAT 4024 and 4026 versions.

  • Template instrument updated to Nomad’s internal service registry combined with namespaces for service isolation.

  • Some improvements in FCF such as:
    • Separated the FCF user interfaces and Python client library into the new ifw-fcfui module.

    • Moved the FCF CII interface definition into the standalone ifw-fcfif module.

    • Ported Device Manager OPC UA communication to ualib/uatools.

    • Added support for the PTP-synchronised shutter device (ShutterPtp).

    • Added device simulators for SmarAct, modulator, and one-, two-, and three-axis devices.

    • Extended the Cryo library with new pressure-sensor, pressure-voting, AGS, and vacuum-gauge functionality.

    • Added virtual analogue, integer, and digital input channels to the I/O Device library.

    • Removed the Motor library dependency on CCSSIM.

    • Added support for the Lakeshore 331 temperature controller.

  • Some improvements in CCF, such as:
    • Added a new GenICam / GigE Vision communication adapter (ComAdptGenICam, ccfCtrlGenICam).

    • Ported the ENVision adapter to ualib, so all OPC UA control traffic now goes through the new uatools/ualib.

    • Separated the CCF Engineering GUI (ccfGui) into the new ifw-ccfui module.

    • Added support for LLNETIO library by using the ifw-rtmslib library.

  • Some improvements in DDT, such as:
    • Improved reliability of remote case.

    • Added configurable image refresh rate in DDT Viewer.

    • Added API to share currently displayed image in viewer.

    • Allow getting the image as cpl object enabling integration with ifw-odp.

  • Some improvements in DAQ, such as:
    • Add support for daqif.DaqHistory which is provided via daqif.DaqStatus.history.

    • Added new substate daqif.DaqSubState.MergingBlocked.

    • Added ability to block Data Acquisition from automatically transition to merging phase.

    • Release MAL resources when Data Acquisition enters stopped state.

    • Made daqOcmServer and daqDpmServer keep running even if an asynchronous operation fails with exception.

  • Some improvements in SEQ, such as:
    • The seqtool shell and kernel have been ported from readline to prompt_toolkit.

    • The shell now waits for the init command to complete before accepting further commands.

    • Shell-side command buffering when no kernel is running, so commands typed before the kernel starts are not lost.

    • The seqtool shell and kernel are able to support sequences with thousand nodes.

    • Added verification of observing block templates on loading.

For a more detailed list of changes, please refer to the individual component release notes.

Some of the third party products and middleware solutions used by the ICS Framework are:

Development Environment

  • The Development Environment (DevEnv 7) has been upgraded to Alma 10.2

Instrument Specifics Packages

To facilitate the development and integration, the IFW is now delivered as a set of additional RPMs to be installed on top of the Development Environment. This saves developers from retrieving, building and installing the IFW by their own. The additional RPMs are not part of the Development Environment since this is specific for instruments and therefore its installation shall be done on demand.

Components

Rapid Application Development (RAD)

The is an application framework that enables the development of event-driven applications for the ELT, based on call-backs or state machines.

For details, see the rad user manual.

Extensible Test Runner (ETR)

The component etr is included in the release to support running integration tests. The following features are available:

  • Run Robot Framework tests with the robot plugin.

  • Request test resources with the resources plugin.

  • Modify template files with Jinja2 template engine and the jinja2 plugin.

  • Deploy software with Nomad with the nomad plugin (experimental support).

For details see the etr user manual.

Sequencer

The component seq is included in the release to support the implementation of engineering scripts. The following features are available:

  • Sequencer Engine

  • Sequencer API

  • Sequencer CLI

  • Sequencer GUI (experimental)

For details see the seq user manual.

Function Control Framework (FCF)

Device Manager

Supported Devices
  • Shutters

    • Configuration parameters: initial state (open, closed), timeout for HW operations, signal logic, and more.

    • Close/Open control.

Note

Starting with Platform 2026, support for specialized shutters for detector control systems has been added.

  • Lamps

    • Configuration parameters: initial state (On, Off), timeout for HW operations, signal logic, and more.

    • On/Off control.

    • Intensity control.

    • Automatic switch off after a timeout.

  • Motors

    • Configuration parameters: maximum velocity, axis type, initialisation sequence, timeouts, SW limits, backlash compensation, usage of brakes, named positions, and more.

    • Move in absolute encoders and user units.

    • Move using named positions.

    • Move in relative encoders.

    • Move in speed.

  • MultiAxes

    • Control multiple axes devices.

    • Control of individual axes.

    • Support for tracking.

  • IOdevs

    • Monitor a list of engineering variables.

    • Values are not continuously read from the LCS but updated on data change.

    • Write digital and analog signals.

  • Derotators

    • Five operation modes: engineering, stationary, sky, elevation and user defined.

    • Tracking computation is based on slalib running in the PLC.

  • ADCs

    • Two operation modes: off and automatic.

    • Multi-axis support.

    • Tracking computation is based on slalib running in the PLC.

  • Piezos

    • Two operation modes: position and automatic.

    • Supports up to three axes.

    • Move in bits and userunits.

  • Actuators

    • Generic On/Off control.

Device Simulators

FCF provides a set of simulators to all supported devices. The simulators have been implemented in Python based on the FreeOpcUa toolkit and the “rad/scxml4py” engine.

Warning

Starting with Platform 2026, all new applications shall use the new device simulator framework (ifw-fcfsim). The previous framework is deprecated and will no longer be maintained.

Engineering Graphical Interfaces

The Device Manager includes a few graphical applications, see fcf_gui_ref.

  • FCF GUI (fcfGui): Standalone graphical interface for the control and monitoring of Device Manager and devices under its control.

  • Motor GUI (fcfMotGui): Engineering interface for the control and monitoring of a single motor device, implemented in Python.

  • SmarAct GUI (fcfSmaractGui): Engineering interface for the control and monitoring of a single SmarAct device, implemented in Python.

  • Lamp GUI (fcfLampGui): Engineering interface for the control and monitoring of a single Lamp device, implemented in Python.

PLC Libraries

PLC Libraries are now available in GIT and can be retrieved from the ifw-resource repository. Note that this repository uses the LFS (Large File Storage) Git extension. All libraries are located in the same directory. This simplifies the installation of the libraries in the TwinCAT IDE.

The PLC source code can be retrieved from: https://gitlab.eso.org/ifw/ifw-ll/-/releases/v8.0.0

All libraries have been created with TwinCAT 3.1.4024.68 and TwinCAT 3.1.4026.20

Required TwinCAT 3.1 build is 4024.68 or higher for version 4024, and 4026.20 or higher for version 4026.

Required OPC UA Server version is 3.3.16.0 or higher.

Known Problems

  1. Errors running GUIs for the first time after installation:

Errors may occur when running the GUIs for the first time after installation. These errors are due to missing OLDB attributes dynamically created by the applications.

Backwards incompatibilities

1. Due to the adoption of the new OPCUA library (ifw-uatools), the old ifw-fcf and ifw-ccf are not backward compatible and the application’s code must be updated. Please follow the porting guide to help you with this process Software Porting Guidelines.