Skip to content

Releases: LDMX-Software/pflib

v3.9.4: beamtime conclusion

15 Dec 19:35
a081acb

Choose a tag to compare

A lot of stuff happened over the last several days and I'm marking this state of pflib since we are explicitly transitioning away from the rush of "live beam time". I plan to do a lot of tidying/refactoring as we more thoroughly test and study our different test stands (including the one in SLAC ESA), so this version is a helpful tag of the "pre-Tom's-tidying" version of pflib.

I intend for the next version of pflib to be v3.10.0 in order to appropriately represent the refactors that I will inevitably do as I tidy 🧹

What's Changed

Full Changelog: v3.9.3...v3.9.4

v3.9.3: patch GPIO setup, run mode, and decoding updates

11 Dec 23:51

Choose a tag to compare

What's Changed

  • Move GPIO calls outside of the setup functions by @tvami in #321
  • Add different link option configs for ECAL by @tvami in #324
  • Fix run mode check requirement by @tvami in #326
  • add econd-decoder to list of things to install by @tomeichlersmith in #320

Full Changelog: v3.9.2...v3.9.3

v3.9.2: more fixes, start decoding of rogue files

11 Dec 17:15
b735d4e

Choose a tag to compare

What's Changed

Full Changelog: v3.9.1...v3.9.2

v3.9.1: live decoding and more stable word alignment

10 Dec 17:39

Choose a tag to compare

What's Changed

Full Changelog: v3.9.0...v3.9.1

v3.9.0: the long awaited

08 Dec 20:14
f4d51a1

Choose a tag to compare

Lot's of patches and fixes to get things up and running. The wiki contains some notes on how to get pedestals of your own: https://github.com/LDMX-Software/pflib/wiki/From-Power-On-of-DAQ-Server

For decoding, the "live" decoding is still not functional, but econd-decoder can decode and pedestal file that does not have the extra Rogue headers/config dump. The ana/rogue-read.py file is an example of how to use pflib's python bindings and Rogue's FileReader in order to decode a pedestal file collected by Rogue. The rogue-decode just recipe in the justfile shows how to run the python bindings from your development version. After this release, I will update the ldmx-env conda environment on the SLAC DAQ server to have v3.9.0 of pflib.

What's Changed

New Contributors

Full Changelog: v3.8.1...v3.9.0

v3.9.0-rc3: creeping closer

01 Dec 19:09
e0bb573

Choose a tag to compare

Lots of patches and progress, still not going to make the full v3.9.0 release until I see pedestals collected over optical link on a Bittware so that I can make sure the decoding is good.

What's Changed

New Contributors

Full Changelog: v3.9.0-rc2...v3.9.0-rc3

v3.9.0-rc2: Bittware Support Pre-Release 2

22 Nov 00:06
5fab94d

Choose a tag to compare

What's Changed

Full Changelog: v3.9.0-rc1...v3.9.0-rc2

v3.9.0-rc1 : Bittware Support Pre-Release 1

20 Nov 18:38
9ceb36d

Choose a tag to compare

git switch main
git pull
git fetch --tags

Marking this pre-release since I was able to talk to the HcalBackplane at SLAC with slow control. The main software changes that enabled this were #272 which allows us to choose which bittware to connect to (by giving the device path). Progress in other directions has been made as well including basicu support for Ecal SMM and beginning Bittware Fast Control support.

What's Changed

New Contributors

Full Changelog: v3.9.0-rc0...v3.9.0-rc1

v3.9 Bittware Support: Slow Control Pre-Release

17 Nov 14:14
6c59b4f

Choose a tag to compare

We have been able to do slow control motions with the HcalBackplane and the Bittware. I have merged my big updates/refactors into pflib, but I am waiting to make a new release until we can capture data and I can update the decoding to the headers/trailers as defined in the firmware. This pre-release is a marker of the big refactoring changes and a place to hold my notes on how to use the updated pflib.
A few notes on the current main:

  • Hcal has been renamed to HcalBackplane and is a type of Target (instead of Target holding an Hcal)
  • The command line arguments specifying the type of target have been dropped in favor of YAML config files you provide to pftool. Examples are in the config/pftool/ directory. e.g. ./pftool ../configs/pftool/hcal-backplane-bittware.yaml
  • Connecting to the Hcal Backplane via the bittware requires Rogue, but pflib will build without Rogue (to support ZCU/Rogue-less connections). Make sure to source path/to/rogue/setup_rogue.sh before calling cmake (or define Rogue_DIR on the command line when calling cmake: cmake -DRogue_DIR=/full/path/to/rogue/lib)
  • Setting up the lpGBTs is not working automatically, so we have to do the GENERAL.STANDARD_HCAL setup in pflpgbt (after making sure the OPTO.STATUS is READY 0x0001) before opening pftool. Sometimes you have to run STANDARD_HCAL more than once in a row before it "takes".

💾 Firmware

The firmware for the Bittware is available in the slaclab/ldmx-firmware repository. I believe it is under the umn_dev branch, but hopefully it is merged soon?

What's Changed

Full Changelog: v3.8.1...v3.9.0-rc0

v3.8.1: decode wrapped econd packets, bind to python

13 Nov 16:47
a6bcae9

Choose a tag to compare

💾 New Firmware

In order to appropriately update the reading pointer, the ZCU's firmware needs to be updated.

dualtarget-zcu102-20251111_151444-fc2ec52

Ask Jeremy for Access if Need Be: https://drive.google.com/file/d/1c-lZkhwljReSVTEpGb94apyJrl0-8RRA/view?usp=drive_link

🚨 New Dependency

In preparation for developing pflib on computers that host a Bittware, we are switching from Boost/JSON to nlohmann/json. The computer hosting the Bittware is expected to be Ubuntu 22.04 and the Boost that comes with that version of Ubuntu is too old to have Boost/JSON. nlohmann/json is both (a) easier to install that Boost/JSON and (b) available in Ubuntu 22.04 repos. Additionally, we will need the Python3 development files for binding specific pflib functions to Python so that they can be called from the Python run control program.

# Ubuntu/Debian
sudo apt install nlohmann-json3-dev python3-dev
# RHEL/Alma
sudo dnf install nlohmann-json-devel python3-devel

See the env directory for how I'm installing these in AlmaLinux 9 (ZCU) and Ubuntu 22.04 (Bittware host). nlohmann/json, being header only, will be slower to compile than Boost.JSON but I think consistency is more important.

What's Changed

  • roc-econ alignment cleanup, more debug printout by @joshgreaves332 in #248
  • econd decoding update by @tomeichlersmith in #249
    • 🚨 ⚠️ warning: the headers/trailers wrapping the ECONDEventPackets from the ECON-D chip are in flux as the firmware is developed, this will mean data files produced by this version of pflib will not be readable by future versions of pflib.
  • bind select pflib functions to python by @tomeichlersmith in #244

Full Changelog: v3.8.0...v3.8.1