Releases: LDMX-Software/pflib
v3.9.4: beamtime conclusion
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
- Add workflow_run trigger for clang-format completion by @tvami in #335
- created align_phase and align_word, calling from the main function by @joshgreaves332 in #323
- Fix timestamp type in MultiSampleECONDEventPacket by @tvami in #334
- Add status for ROC by @tvami in #333
- Fix HT_EBO, data underflow for no data by @tvami in #336
- Fix CRC header check by @cmantill in #328
- Update CSV header to include timestamp and i_sample by @tvami in #339
- Add opto link soft reset by @tomeichlersmith in #346
- Fix REG_EPRX0LOCKED for ECON LPGBT alignment by @tvami in #347
Full Changelog: v3.9.3...v3.9.4
v3.9.3: patch GPIO setup, run mode, and decoding updates
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
What's Changed
- Adding ECON configs, PWD in menu, printout in ROC by @tvami in #313
- Enforce running standard configs so that the GPIOs are set by @tvami in #316
- Rogue Decoding by @tomeichlersmith in #317
Full Changelog: v3.9.1...v3.9.2
v3.9.1: live decoding and more stable word alignment
What's Changed
- econd live decoding by @tomeichlersmith in #308
- 262 word alignment update by @joshgreaves332 in #287
Full Changelog: v3.9.0...v3.9.1
v3.9.0: the long awaited
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
- Start ecal hcal bittware support by @tomeichlersmith in #257
- refactor to prepare for Ecal classes by @tomeichlersmith in #255
- unify how parameters are shared with pftool and targets by @tomeichlersmith in #254
- Hcal backplane bittware target by @tomeichlersmith in #258
- switch base image to Rogue by @tomeichlersmith in #260
- some small compiler warnings that have been bugging me by @tomeichlersmith in #263
- Create basic support for ECAL Single Module Motherboard (SMM) by @jmmans in #267
- Add support for BITTWARE fast-controll by @jmmans in #270
- Select ROC and ECON in phase word alignment task by @cmantill in #271
- daq server setup by @tomeichlersmith in #273
- choose bittware by @tomeichlersmith in #272
- Move msb function to used uint64_t, fix sub_val prinout by @tvami in #274
- Major improvement to reliability by @jmmans in #275
- Adjust fastcontrol enables, econ align task by @jmmans in #278
- 276 econ snapshots by @joshgreaves332 in #280
- More conda package dev by @tomeichlersmith in #281
- start EcalSMM Bittware target by @tomeichlersmith in #282
- Jeremy patches while dev by @tomeichlersmith in #284
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #285
- ECON-ROC align on bittware by @tomeichlersmith in #286
- a couple patches from the test install by @tomeichlersmith in #288
- (220) lpGBT-ECON-D Alignment by @cbell1402 in #236
- dont pass std::shared_ptr by reference by @tomeichlersmith in #289
- Board I2C initialization and temperature readout by @erik-wallin in #291
- ECON->lpGBT and ROC->ECON fixes by @jmmans in #293
- Add lpGBT objects to call from a Target class by @cmantill in #296
- Use correct bus board I2C interactions by @erik-wallin in #299
- multi fiber support by @tomeichlersmith in #295
- hide menu lines by category by @tomeichlersmith in #298
- Common ROR and multi econ by @jmmans in #301
- readout data without axi stream on bittware by @tomeichlersmith in #303
- reset counters before run start by @tomeichlersmith in #304
- Add ECON config for ECAL & Implement EcalSMMTarget read_event() by @tvami in #307
- update econ decoding again by @tomeichlersmith in #306
New Contributors
- @tvami made their first contribution in #274
- @cbell1402 made their first contribution in #236
Full Changelog: v3.8.1...v3.9.0
v3.9.0-rc3: creeping closer
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
- Jeremy patches while dev by @tomeichlersmith in #284
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #285
- ECON-ROC align on bittware by @tomeichlersmith in #286
- a couple patches from the test install by @tomeichlersmith in #288
- (220) lpGBT-ECON-D Alignment by @cbell1402 in #236
- dont pass std::shared_ptr by reference by @tomeichlersmith in #289
New Contributors
- @cbell1402 made their first contribution in #236
Full Changelog: v3.9.0-rc2...v3.9.0-rc3
v3.9.0-rc2: Bittware Support Pre-Release 2
What's Changed
- Major improvement to reliability by @jmmans in #275
- Adjust fastcontrol enables, econ align task by @jmmans in #278
- 276 econ snapshots by @joshgreaves332 in #280
- More conda package dev by @tomeichlersmith in #281
- start EcalSMM Bittware target by @tomeichlersmith in #282
Full Changelog: v3.9.0-rc1...v3.9.0-rc2
v3.9.0-rc1 : Bittware Support Pre-Release 1
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
- switch base image to Rogue by @tomeichlersmith in #260
- some small compiler warnings that have been bugging me by @tomeichlersmith in #263
- Create basic support for ECAL Single Module Motherboard (SMM) by @jmmans in #267
- Add support for BITTWARE fast-controll by @jmmans in #270
- Select ROC and ECON in phase word alignment task by @cmantill in #271
- daq server setup by @tomeichlersmith in #273
- choose bittware by @tomeichlersmith in #272
- Move msb function to used uint64_t, fix sub_val prinout by @tvami in #274
New Contributors
Full Changelog: v3.9.0-rc0...v3.9.0-rc1
v3.9 Bittware Support: Slow Control Pre-Release
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:
Hcalhas been renamed toHcalBackplaneand is a type ofTarget(instead ofTargetholding anHcal)- 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.shbefore callingcmake(or defineRogue_DIRon the command line when callingcmake:cmake -DRogue_DIR=/full/path/to/rogue/lib) - Setting up the lpGBTs is not working automatically, so we have to do the
GENERAL.STANDARD_HCALsetup inpflpgbt(after making sure theOPTO.STATUSisREADY 0x0001) before openingpftool. Sometimes you have to runSTANDARD_HCALmore 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
- Start ecal hcal bittware support by @tomeichlersmith in #257
- refactor to prepare for Ecal classes by @tomeichlersmith in #255
- unify how parameters are shared with pftool and targets by @tomeichlersmith in #254
- Hcal backplane bittware target by @tomeichlersmith in #258
Full Changelog: v3.8.1...v3.9.0-rc0
v3.8.1: decode wrapped econd packets, bind to python
💾 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 theECONDEventPackets 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
pflibfunctions to python by @tomeichlersmith in #244
Full Changelog: v3.8.0...v3.8.1