Pixelator STXM Control Software
Pixelator is a software project for controlling scanning instruments such as a STXM (scanning transmission X-ray microscope). It is a product of a collaboration between the Paul Scherrer Institute, the Max-Planck-Institut für Intelligente Systeme and Semafor Informatik & Energie AG. Pixelator has been in standard use at the PolLux STXM since late 2012 and receiving regular updates as development continues. As the STXM technique continues to advance, user experiments become more ambitious and increase requirements for the coordination and integration of the many and varied positioners and detectors. Pixelator is a new generation of software is being developed to allow the necessary stability, flexibility and extensibility demanded by cutting edge experiments. It implements a modern, modular design that implements all scan logic in a central server program, with separate modules for interfacing with different types of hardware and hardware control systems. The scan logic is implemented with an emphasis on making full use of messages provided by the hardware systems, for example listening for a ‘finished moving’ message, rather than assuming that a fixed wait-time is sufficient. The graphical user interface runs as a separate client program and is executed on a separate PC from the server in order to maximize system stability and user convenience.
- User-friendly graphical user interface that can run on Linux and Windows.
- Data is recorded in a NeXus-compliant HDF5 file format (see article for specific implementation details)
- Python scripting.
- Point-by-point and constant-velocity scanning modes.
- Interferometer positions and synchrotron ring current recorded for every pixel allows precise correction and normalisation of data.
- Flexible hardware interface for easy inclusion of new hardware such as detectors and scanning stages.
- Easy integration of external experiment instrumentation (e.g. user-supplied PC controlling conditions in a custom environmental cell)
- Robust Linux-based server contains all significant logic.
- GUI and scripting both operate over the same ZeroMQ / JSON interface, allowing alternative GUI and scripting developments.
- Time-critical tasks performed by real-time Linux system with a cycle time of 10kHz (control loop and sampling rate). The shortest reliable dwell time is about 200 micro-seconds (further improvements are planned - see below).
- License (per facility basis) includes access to project source code, bug tracker and all future upgrades.
Currently Supported Hardware
|Industrial Control Systems||EPICS, Tango|
|Linear and Rotary Positioners||Newport, SmarAct, PI-Nexline|
|Detectors||Phosphor/PMT1, Andor CCD camera|
|Interferometers||keysight, Zygo, Renishaw2, Attocube2|
- Via simple counter input.
- Via the AquadB interface.
- Move time-critical tasks to an FPGA for cycle times over 100 kHz that will provide improved reliability and performance of timing (dwell times below 200 micro-seconds) and positioning.
- Thumbnail image and metadata support in data files (similar to experience with common image formats like jpeg).
- Interface to electronic logbook system (ELOG) for automatic record-keeping.