at the heart of ESRF data acquisition


baked with love by the ESRF Instrumentation Services & Development Division Software Group

Beamline Control Unit: A. Beteva, G. Berruyer, L. Claustre, S. Debionne, S. Fisher, M. Guijarro, P. Guillou, C. Guilloud, A. Homs, M.C. Lagier, D. Mammeri, A. Mauro, J. Meyer, C. Muzelle, M. Oscarsson, E. Papillon, S. Petitdemange,  V. Valls, H. Witsch / Data Analysis Unit: W. De Nolf

Beacon : web application to configure a whole beamline

Flint : data visualisation

based on the ESRF silx toolkit

Modular architecture, Abstraction layers and adapters

Data publishing and archiving enables online data analysis

Services built on top of

BLISS integrated environment covers a wide range of beamline control needs

BLISS shell integrates with Daiquiri UI the ESRF web-based framework for user interfaces

Daiquiri UI

see: THAR02


BLISS stands for BeamLine Instrumentation Support Software,

it is a new synchrotron experiments control system written in Python

BLISS controls today 24 beamlines (out of 48), full deployment is aimed in 2023


BLISS Key Principles

Direct hardware control


settings cache

 Data publishing,

Transient storage

Scan acquisition chain represented as a tree

All-in-one solution

All I/O based on gevent

cooperative multi-tasking,

asyncio interoperability



BLISS Beacon server

Web interface for configuration editing

Beacon server

Devices & sequences configuration in YAML format

User sessions to group beamline devices for an experiment + Python setup file

configuration management



Transient data store

Settings cache

Centralized logging and log viewer web application

 class: elmo
  - name: nth
    acceleration: 36
    steps_per_unit: 30577
    velocity: 180.0
    home_velocity: 15
    velocity_low_limit: .inf
    velocity_high_limit: 360.0
    low_limit: -.inf
    high_limit: .inf
    sign: 1
    backlash: 0.0
- class: aerotech
    url: id31aerotech-1
  - name: nth_aero
    acceleration: 5
    steps_per_unit: 1


BLISS Modular Architecture

Beacon server



Mini frameworks within BLISS, to ease integration of same kind of hardware

Adaptation layer, to make hardware controllers behaving properly in scans, depending on the scan


BLISS data publishing and archiving

Daiquiri web GUI

see: THAR02

  • redis streams are used to push data to redis during acquisition
  • only references to heavy data (2D) are published to redis, refs will be resolved at runtime when asked by a listener
  • online data analysis scripts can be easily written using BLISS Python API
  • BLISS fully supports ESRF data policy (based on PaNdata Europe and FAIR data initiatives), and interoperates with ICAT and ESRF data portal

ICALEPCS'21: BLISS at the heart of ESRF data acquisition

By Matias Guijarro

ICALEPCS'21: BLISS at the heart of ESRF data acquisition

Poster about BLISS for ICALEPCS'21

  • 258