Metadata-Version: 2.4
Name: basil_daq
Version: 3.3.0
Summary: Basil is a modular data acquisition system and system testing framework in Python.
Author-email: Tomasz Hemperek <hemperek@uni-bonn.de>, Jens Janssen <janssen@physik.uni-bonn.de>, David-Leon Pohl <pohl@physik.uni-bonn.de>
Maintainer-email: Yannick Dieter <dieter@physik.uni-bonn.de>, Christian Bespin <bespin@physik.uni-bonn.de>
License-Expression: BSD-3-Clause
Project-URL: Documentation, https://basil.readthedocs.io/en/latest/
Project-URL: Repository, https://github.com/SiLab-Bonn/basil/
Requires-Python: <3.15,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: numpy
Requires-Dist: pyyaml
Requires-Dist: bitarray>=3.4.0
Requires-Dist: GitPython
Requires-Dist: six
Requires-Dist: ruamel.yaml
Provides-Extra: hw
Requires-Dist: pyserial; extra == "hw"
Requires-Dist: PyVISA; extra == "hw"
Provides-Extra: test
Requires-Dist: coverage; extra == "test"
Requires-Dist: cocotb>=2.0.1; extra == "test"
Requires-Dist: cocotb-bus>=0.3.0; extra == "test"
Requires-Dist: cocotb-test>=0.2.6; extra == "test"
Requires-Dist: diff-cover; extra == "test"
Requires-Dist: pytest>=9.0.3; extra == "test"
Requires-Dist: PyVISA; extra == "test"
Requires-Dist: pyvisa-sim; extra == "test"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-book-theme; extra == "docs"
Dynamic: license-file

# Basil

[![Build status](https://github.com/SiLab-Bonn/basil/workflows/Regression%20Tests/badge.svg)](https://github.com/silab-bonn/basil/actions?query=workflow%3A%22Regression+Tests%22)
[![Documentation](https://readthedocs.org/projects/basil/badge/?version=latest)](http://basil.rtfd.org)

Basil is a modular data acquisition (DAQ) framework developed by [SiLab](https://silab-bonn.github.io/) for the characterization of [monolithic](https://en.wikipedia.org/wiki/Monolithic_active_pixel_sensor) and [hybrid](https://en.wikipedia.org/wiki/Hybrid_pixel_detector) pixel detectors. It comprises a library of HDL modules (written in Verilog) for custom FPGA readout boards, paired with a collection of Python code that control the hardware over USB, Ethernet, or serial interfaces from a host PC. Basil also includes Python drivers for common lab instruments such as power supplies, oscilloscopes, and other bench equipment.

## Features

**Firmware:**
- Very simple single master bus definition
- Multiple basic modules (SPI, SEQ, GPIO, I2C, JTAG)
- Multiple interfaces (UART, USB2, USB3, Ethernet)

**Software:**
- Layer structure following hardware
- Generation based on YAML file
- Register abstract layer (RAL)
- Simulator interface allows software test against simulated RTL (thanks to [cocotb](https://github.com/cocotb/cocotb))

## Installation

Install via PyPI:

```bash
pip install basil-daq
```

Or install from source:

```bash
git clone https://github.com/SiLab-Bonn/basil.git
cd basil
pip install -e .
```

## Support

Please use GitHub's [issue tracker](https://github.com/SiLab-Bonn/basil/issues) for bug reports/feature requests/questions.

## Documentation

Documentation can be found at: https://basil.rtfd.org

## Example Projects

- [TJ-Monopix2](https://github.com/SiLab-Bonn/tj-monopix2-daq) - DAQ for TJ-Monopix2 depleted monolithic pixel sensor
- [BDAQ53](https://gitlab.cern.ch/silab/bdaq53) - Readout system for ATLAS ITkPix (RD53) chips
- [LF-Monopix2](https://github.com/SiLab-Bonn/lf-monopix2-daq) - DAQ for LF-Monopix2 depleted monolithic pixel sensor
- [FRIDA](https://github.com/kcaisley/frida) - DAQ for FRIDA, an ADC test array for frame-based imaging detectors

## License

If not stated otherwise:

**Host Software:**
The host software is distributed under the BSD 3-Clause ("BSD New" or "BSD Simplified") License.

**FPGA Firmware:**
The FPGA code is distributed under the GNU Lesser General Public License, version 3.0 (LGPLv3).
