
Beamline experiments with BLISS @ ESRF
presented by Matias Guijarro - BLISS team
Beamline Control Unit / Software Group
ESRF, Grenoble, France


17th Biennial International Conference on
Accelerator and Large Experimental Physics






ESRF Extremely Brilliant Source (EBS) update program
4th generation light source
150 M€ investment (2015-2022)
100x better
X-ray beams
New
state-of-the-art
beamlines
Data as a Service strategy
Beamline Instrumentation Support Software

BLISS project goals



State-of-the-art beamline control
Advanced scans, Trajectories,
Data management
Integrated environment
Configuration, Command Line Interface, Live Data Display
Ready for new challenges
Online data analysis, live feedback, extensibility of the system

BLISS philosophy

Python (3.7=>) everywhere
Software library first,
with a set of tools built upon
- Command Line Interface
- Configuration application
- Online visualization
To provide a generic scan engine
for all kind of data acquisition procedures


Producer/Consumer model for Data Management, to decouple acquisition and data storage

online data analysis
data visualisation

data archiving
Beacon server
Beacon static configuration service
BLISS modular architecture

1
2
3
Beacon static configuration service
Web interface for configuration editing
Beacon server



.yml
Devices & sequences configuration in YAML format

User sessions to group beamline devices for an experiment, Python setup file
Can replace TANGO DB
to have all beamline configuration at the same place

Beacon server
configuration

+ services based on

Message broker: data channels,
distributed lock

Transient data store
Settings cache

1

Centralized logging and log viewer web application
Beacon static configuration service
BLISS scan engine

synchronization
low latency
flexibility
2
Beacon static configuration service
BLISS scan framework
2

Acquisition Chain
tree with master and slave nodes
Acquisition Master

triggers data acquisition

Acquisition Slave
takes data
(can also take data)

Acquisition Channel


Acquisition Channel

BLISS scan example


Continuous scan with a motor triggering MCA and 2D detector acquisition, while a timer triggers diode readings
2
BLISS online data publishing
While a scan is running, data is published to the redis database provided by Beacon
-
scalar values are stored directly
-
bigger data (images, spectra) is just referenced
-
configurable time to live (TTL)
Any external process can access redis data to perform online data analysis or live feedback for example
3
BLISS scan data flow




3
Acquisition chain
Channels
BLISS development

BLISS development methodology






Prioritized
todo
Analysis phase
Coding
Integration tests
Ready to merge
new features
bug fixes

backlog
(tasks)
Kanban
BLISS project development tools
Issues list, Kanban board, wiki, and more on
ESRF-hosted gitlab


Continuous Integration:
gitlab-ci
Deployment:




Documentation:
MkDocs
Code formatting: Black
Sharing knowledge within the BLISS team
Daily stand-ups

Pair programming
"Stop and Solve" meetings
Guidelines, good practices
(very useful for newcomers)
BLISS team ensures Quality Assurance

Automatic tests pipeline
(980+ tests)
Systematic code review
Only merge code with documentation
Integration tests on beamlines (real hardware)
Dealing with the technical debt

Technical debt = Tetris game
(you can't win)
Refactoring helps to fill the holes,
but with time penalty


ID31
BM32
ID21
ID15
ID13
ID11
ID10
BLISS deployment (2020)
Text
In 2018, first tests with users: MX, ID10, ID11, ID13, ID31



BM29
BM23
ID22
ID19
ID29
ID30A+B
ID23
ID26
Conclusion
BLISS is the new Python-based DAQ and experiments control system
BLISS is being designed for the needs of the EBS beamlines


Half of the beamlines are being converted to BLISS during the EBS shutdown (2019-2020)
Would be happy to start collaborations around BLISS with interested people

Acknowledgements
BLISS Core Development team
From left to right:
B. Formet (CEA), M. Guijarro,
P. Pancino, L. Pithan,
P. Guillou,
S. Petitdemange,
C. Guilloud
Beamline Operation team
A. Beteva, G. Berruyer, L. Claustre, S. Fisher, A. Homs, R. Homs, M-C. Lagier, A. Mauro, C. Muzelle, S. Ohlsson, M. Oscarsson, E. Papillon, F. Sever, V. Valls, H. Witsch
head of Software Group: A. Gotz, head of BCU: J. Meyer

Beamline experiments with BLISS @ ESRF
By Matias Guijarro
Beamline experiments with BLISS @ ESRF
- 899