Spadic Front-End-Board Testing
This repository contains a Python framework that allows the user to control Spadic-Front-End-Boards (FEB) via the IPBus Protocol in a graphical user interface.
Currently, this software is able to work with one single-Spadic FEB equipped with a Spadic v.2.2. It connects to the Spadic through an AFCK board.
Features are:
- Performing an automated connectivity test of a FEB
- Trigger the Spadic and show pulseshapes of all 32 channels for quality assurance purposes
- Measure the baseline of all 32 channels
- Automatically adjust the baseline of all channels to a given value
- Show, edit, save and load the most important settings of the spadic
How to use
To start the application, open a terminal in this directory and type python main.py
.
Automated Test
To perform an automated connectivity test, you need to make sure that the controlhub-daemon of the ipbus software package is running. If you are not sure if it is running, just press < Start > in the controlhub section on the left side of the window.
Next, we need to make sure that the AFCK board is online and configured properly with the correct bitfile. You can do this by clicking < Configure > in the AFCK section on the left side.
To start the test, now just press the < Start Test > button on the test tab. The test routine initialises the connection to the spadic step by step and checks for errors.
After the test finished successfully, the connection to the spadic is ready. You can now use the other features of the GUI. If you just want to initialise the connection without error checking, you can click < Init > on the left side of the window.
Pulseshape
The connection to the FEB needs to be initialised first. Clicking on < Get Data > triggers the Spadic and sends the data to the software. You can then select which channels should be displayed.
Baseline
The connection to the FEB needs to be initialised first. To measure the baseline with the current settings, click < Get Baseline >. To autmatically adjust the settings so that the baseline is at the given value, click < Adjust Baseline >. The adjustment takes some time and displays the current status in the plot.
Settings
The connection to the FEB needs to be initialised first. Clicking on < Read > reads the current settings from the spadic and displays them in the global settings and in the per-channel settings tab. You can also save the settings in JSON format, change the files and load it back into the spadic.
IPbus Controlhub
To start the Controlhub daemon, press < Start > in the controlhub section on the left side of the main-window. For additional configuration, click: Menu Bar --> Config --> Controlhub.
Configuring the AFCK-Board
You can select the files used for programming the AFCK in the AFCK config window. To open the window, click: Menu Bar --> Config --> AFCK. There you can specify the JTAG-script file, programming script file and the bitfile that contains the compiled FPGA firmware. To start programming the AFCK with these settings, click < Configure > in the AFCK section on the left side of the main window.
GUI Settings
You can save and load the settings of the GUI via: Menu Bar --> Config --> Settings. "Save Settings" will write the current settings into a config.json file in the main directory of the application. "Reload Settings" will load the settings from this file if it exists.
CAVE: This feature ist not fully functional at the moment!
Dependencies
Package | Version |
---|---|
Python | 3.7.3 |
flesnet | release 03/20 |
ipbus-software | 2.8.1 |
Qt | 5.11.3 |
sip | 4.19.24 |
PyQt | 5.15.2 |
matplotlib | 3.4.3 |