pyBAR - Bonn ATLAS Readout in Python and C++
PyBAR is a versatile readout and test system for the ATLAS FE-I4(A/B) pixel readout chip. It uses the basil framework to access the readout hardware. PyBAR's FPGA firmware and host software includes support for different hardware platforms.
PyBAR is not only targeting experienced users and developers. The easy-to-use scripts allow a quick setup and start. PyBAR is a very flexible readout and test system and can be adapted to any needs.
The features of the FPGA firmware in a nutshell:
- supported readout hardware: MIO, MIO 3.0, SEABAS2, Avnet LX9 and Digilent NexysTM4 DDR
- supported adapter cards: Single Chip Adapter Card, Burn-in Card (Quad Module Adapter Card) and the General Purpose Analog Card (GPAC)
- support of up to 4 FE, simultaneous readout
- continuous data taking (no interrupts during data taking, preserving all information)
- automatic data to clock phase alignment on each channel individually
- full support of EUDAQ Telescope/TLU
- 200kHz peak trigger rate, 50kHz continuous trigger rate (full 16 BC readout, single FE-I4)
The features of the host software in Python and C++:
- very minimalistic interface, script based, no GUI
- support for Windows/Linux/OSX
- support for FE-I4A and B
- configuration files human readable (compatible to RCE/HSIO)
- full control over FE command generation
- sending any arbitrary bit stream/configuration sequence to the FE of any desired frame length and/or format
- readout of full FE data including timestamps, storing of the compressed data to HDF5 file
- ultra fast raw data analysis, event-, cluster building and validity checking
- real-time online monitor (< 100 ms latency)
- rapid development and implementation of new scan algorithms
Basil (==2.1.2) is required:
pip install basil_daq==2.1.2
The following packages are required for pyBAR's core functionality:
bitarray cython matplotlib numpy pandas progressbar-latest tables pyyaml scipy
For full functionality, the following additional packages are required:
mock nose pyqtgraph pyserial pyvisa pyvisa-py pyzmq
Run the following commands to install the packages:
conda install numpy cython pytables scipy matplotlib pandas pyserial bitarray nose pyzmq pyyaml
pip install progressbar-latest pyvisa pyvisa-py pyqtgraph mock
On Windows, the pywin32
package is required:
conda install pywin32
To enable support for USB devices (MIO, MIO3 and MMC3), the following additional packages are required:
-
PyUSB (>=1.0.0rc1):
pip install "git+https://github.com/walac/pyusb.git@master"
-
pySiLibUSB (>=2.0.0):
pip install pySiLibUSB
The installation procedure depends on the operating system and software environment. Please read our Step-by-step Installation Guide carefully.
After the obove steps are completed, clone the pyBAR git repository and then run the following commands from the within project folder:
-
Build with:
python setup.py build_ext
Note: this command needs to be excuted each time pyBAR is updated or changes are made to the pyBAR C++ library.
-
Install with:
python setup.py develop
-
Testing (from within the tests folder):
nosetests test_analysis.py
Please note the Wiki and the User Guide.
To subscribe to the pyBAR mailing list, click here. Please ask questions on the pyBAR mailing list pybar-devel@cern.ch (subscription required) or file a new bug report / feature request here.