Optoboard Software

This project is a part of the Optoboard System project but became big enough to showcase it in its own project.

The aggregation in the ITk Pixel Detector data transmission chain is performed by the low-power Gigabit Transceiver (lpGBT) chip, which is controllable through the I2C protocol [1] or optical link. The main, primary lpGBT chip has I2C controllers on it to further control secondary chips.

At early design stages no software was available to enable users to carry out configuration for hundreds of chip registers and perform testing routines for commissioning of the data transmission chain. There only existed a terminal based interface for the optical link which could only be scripted through \(\texttt{BASH}\). I therefore designed and developed the software (including a GUI) named \(\texttt{optoboard_felix}\) from the ground up in \(\texttt{Python}\) with a long term solution in mind.

A screenshot of an early version GUI from `optoboard_felix`.

At first \(\texttt{optoboard_felix}\) utilised subprocesses to interact with the terminal interface but later we switched to much faster \(\texttt{C++}\) libraries that accessed the read-out FPGA cards [2] (where the optical transmitters are hosted) directly. The software features control and configuration routines as well as statistical analysis of tests such as common data transmission tests like bit-error-rate limits.

Over several years the software was used both in our institute as well as at several other universities. Its backend is now part of the online software \(\texttt{DeMi}\) [3] for the detector’s system tests, integration and operation.

\(\texttt{optoboard_felix}\) can be found in the public repository on GitLab.