Currently, Pylatus is working at the following ESRF beamlines:
- BM01 --- Swiss-Norwegian CRG beamline (diffraction)
- BM31 --- Swiss-Norwegian CRG beamline (diffraction and EXAFS)
- ID28 --- Side station of the Inelastic Scattering beamline
- BM20 --- The Rossendorf CRG Beamline
Pylatus is trying to combine a simple and easy-to-learn interface together with complexity required for modern synchrotron experiments. User can collect individual or multiple datasets for single crystals or powders using GUI but more advanced options for complicated data collection are also available (see scripting in Python).
Pylatus gives total control over beamline starting up from the optics (mirrors and monochromators) down to the sample environment. It includes a lot of batteries, such as:
- Kappa or chi goniometer for single crystal and powder experiments. Infinite spinner is also available.
- All motor views and controls, moving motors relatively and absolutely.
- Pseudo-motors (such as energy, wavelength or grouped motions).
- Continuous scans (1D or meshes) for all motors using as counters:
- any SPEC counters;
- Silicon diodes connected to nano-ammeters (currently, only Keithley 6485 is supported);
- Pilatus detector itself (summing up all pixels on the frame using AVX512, AVX or SSE4 intrinsics if available);
- Beamline auto-alignment (using routine scenarios, like scanning a motor and positioning it to the intensity maximum value);
- Automatic beamstop search on the measure frames (using AVX512, AVX or SSE4 intrinsics if available; calibration required).
- Automatic storing experimental values (temperature, pressure, voltage, etc.) into the headers of the output CBF files.
- Powerful scripting in Python for complicated experimental scenarios and sequences.
- Native control of the sample environment devices, such as:
- Implementation of the ESRF data policy.
- Possibility to connect to SPEC sessions and run everything available from SPEC.
Pylatus is free and open source software (under GPLv3 license), the source code can be found in the Pylatus git repository.
Pylatus is mainly written in C++ but it has some modules written in pure C and Rust. Pylatus depends on Qt5 (min version 5.12). Pylatus contains additional daemons, such as:
- dcubroker - a daemon running on the Dectris DCU. It collects cbf files from the camserver and sends them to Pylatus (written in Rust).
- icepapd - a daemon running the ESRF ICEPAP crates (written in Rust).
If you use Pylatus or its parts, please cite this paper: A new multipurpose diffractometer PILATUS@SNBL, J. Synchrotron Rad. (2016). 23, 825-829 .