Skip to content

CARIBOuSystem/pyBAR

 
 

Repository files navigation

pyBAR Code Status Build Status Build Status

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 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, SEABAS, 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

Installation

For USB support, PyBAR requires the following packages:

  • PyUSB (>=1.0.0rc1):

    pip install "git+https://github.com/walac/pyusb.git@master"
    
  • pySiLibUSB (>=2.0.0):

    pip install https://silab-redmine.physik.uni-bonn.de/attachments/download/800/pySiLibUSB-2.0.5.tar.gz
    

Basil (==2.1.1) is required:

pip install -e "git+https://github.com/SiLab-Bonn/basil.git@v2.1.1#egg=basil&subdirectory=host"

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 needed:

mock nose pyqtgraph pyserial pyvisa pyvisa-py pyzmq

On Windows, the pywin32 package is required.

The installation procedure depends on the operating system and software environment. Please read our Step-by-step Installation Guide carefully.

Clone pyBAR from git and then run the following commands from the within project folder:

  1. Build with:

    python setup.py build_ext
    
  2. Install with:

    python setup.py develop
    
  3. Testing (from within the tests folder):

    nosetests test_analysis.py
    

Usage

Please note the Wiki and the User Guide.

Support

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.

About

Bonn ATLAS Readout in Python and C++

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 77.4%
  • C++ 12.6%
  • Verilog 7.3%
  • SystemVerilog 1.9%
  • Other 0.8%