diff --git a/releases/RELEASE_v9.0.0.txt b/releases/RELEASE_v9.0.0.txt new file mode 100644 index 000000000..2e6314a04 --- /dev/null +++ b/releases/RELEASE_v9.0.0.txt @@ -0,0 +1,462 @@ +SLS Detector Package Major Release 9.0.0 released on 26.11.2024 +=============================================================== + +This document describes the differences between v9.0.0 and v8.0.2 + + + + CONTENTS + -------- + 1 Compilation Changes + 2 New or Changed Features + 2.1 Breaking API + 2.2 Resolved or Changed Features + 2.3 New Features + 3 On-board Detector Server Compatibility + 4 Firmware Requirements + 5 Kernel Requirements + 6 Download, Documentation & Support + + + + +2 Compilation Changes +===================== + + + * Python version + Minimum python version is changed from 3.6 to 3.8 + + + * Pybind11 version + In-built version and the one picked up from github + updated from v2.11.0 to v2.13.6 + + + * Python lib versioning + slsdet.__version__ now returns the package release version. + + + * Python version in conda build + Added python 3.13 also to conda build + + + +2 New, Changed or Resolved Features +===================================== + + + +2.1 Breaking API +================== + + + Receiver + -------- + + + * Receiver callbacks + Brought much more metadata to receiver callbacks to construct the image. + Update MultiReceiverApp to reflect this change. + + + * File path + At start of acquisition or at rx_start command, the file path is only + then verified if it exists and created if it does not. + + + Client + ------ + + + * Removed receiver/publisher ZMQ IP + Command line: rx_zmqip gives a warning and does nothing + Python : rx_zmqip removed + C++ API: get/setRxZmqIP removed + + Publisher zmq IP set to '0.0.0.0' or to listen on all interfaces. + The publisher will determine which interface to stream out from based on + the network route to the subscriber IP. Hence, receiver zmq IP is not + required. + + + * Write register, Set or Clear bit + Validation for this advanced feature has been removed by default. + One can force validation by using --validate in the command line or by + setting the validate option in the API. + + + ZMQ + --- + + + * Publisher socket constructor does not take an IP anymore. + The details are above under 'Removed receiver/publisher ZMQ IP'. + + + GUI/ Client Callback + -------------------- + + + * completeImage member in detectorData attribute now returns false only + if any the sub images (from different udp ports) have completeImage + set to false in the JSON header. This is set if therea are any missing + packets for that udp port on slsReceiver/slsMultiReceiver. + + The different subimages are anyway not synchronized. This errs when + there are different missing images across multiple UDP ports. + + The Gui does not show "complete image" in the status bar anymore. + If any of the udp ports have missing packets for that current disaplayed + image, then the "missing packets" will show in red in the status bar. + + + Detector Server + --------------- + + + * [Mythen3] Only run clock can be set + Clock 0 is now the run clock and the only one that can be set. + The others are be read only. + This affects the following commands: + Command line or python API: clkdiv, clkfreq, clkphase, maxclkphaseshift + C++ API: get/setClockDivider, getClockFrequency, get/setClockPhase, + getMaxClockPhaseShift + + + * [Jungfrau] Temperature Control + Temperature control is enabled by default at on-board detector server + startup. + As before, the default temperature threshold is 65°C and crossing this + value will set a temperature event. + + + +2.2 Resolved or Changed Features +================================ + + + Compilation + ----------- + + + * cmake_source_dir + Fixed compilation error when using python and adding the slsDetectorPackage + as a subfolder due to cmake source directory changing. + + + Client + ------ + + + * Command line Code Generation + The command line parsing code is now generated from a yaml file. This is + transparent to the user. + + + * Clearer error message about freeing shared memory. + + + Detector Server + --------------- + + + * [Gotthard2] Chip reconfiguration + + - Powering off/on the chip will now switch off chip configuration + property/ configure the chip every time. + + - Switching off high voltage from a non zero value will now wait + 10s to return for safety reasons. + + - Powering off the chip requires high voltage to have been + switched off prior. + + - Acquisition requires chip to have been configured prior. + + + * [Gotthard2] Burst mode options restricted + Burst mode external and continuous mode internal are not allowed to be set + anymore as they are anyway not implemented. + + + Receiver + -------- + + + * [Gotthard I] fixed header stripping fixing segfault. + + + * Error or help message for invalid arguments to slsMultiReceiver. + + + Simulator + --------- + + + * Refactored stop server to have better start up. + + + * Fixed possible memory leak when taking non blocking acquisitions. + + + * [Jungfrau] Valid gain values in data sent out. Previously, 2 was also sent out. + + + ZMQ + --- + + + * Publiser socket constructor + + - enables keep alive socket options to send heartbeat messages to prevent + discarded TCP flows if there is no packet for a longer period. + + - enables IPv6 interfaces + + * Prints specific error for ENOENT (endpoint does not exist) + + + +2.3 New Features +================ + + + Client + ------ + + + * Auto completion + bash_autocomplete.sh or zsh_autocomplete.sh must be sourced from the + main package folder to enable auto completion of commands and arguments + for the command line on that shell. + + + * sls_detector + New executable that can be used instead of 'sls_detector_get' and + 'sls_detector_put' for most commands. It will infer from the number of + arguments, which executable (sls_detector_put or sls_detector_get) to use. + For the rare commands that cannot be inferred from the number of arguments, + it will complain accordingly. + + + * [Jungfrau] Timing Info Decoder (Advanced configuration) + Command line or python API: timing_info_decoder + C++ API: get/setTimingInfoDecoder. Options: SWISSFEL (Default), SHINE + + + * [Jungfrau] Collection Mode (Advanced configuration) + Command line or python API: collectionmode + C++ API: get/setCollectionMode. Options: ELECTRON, HOLE (Default) + If chip v1.1, also configures the chip afterwards. + + + * [Gotthard2] Next frame number + 'Stop' in G2 25um is not synchronous and hence might trigger an extra set + of frames in the slave module, resulting in the next acquiistion starting + with inconsistent frame numbers between master and slave. Solved by + setting next frame number to the larger value (max + 1) after a stop command. + Requires a firmware update. + + Command line or python API: nextframenumber + C++ API: get/setNextFrameNumber + Can set/get the starting frame number for the next acquistion. + + + * [Mythen3] Readout speed + Command line, python API: readoutspeed. Options: full_speed (10MHz), + half_speed (20MHz, default), quarter_speed (40MHz) + C++ API: get/setReadoutSpeed + Also affect: + Command line, python API: readoutspeedlist + C++ API: getReadoutSpeedList + + + * Sleep + Command line, python/ C++ API: sleep + Client sleeps for required time. Advanced command mainly for firmware + developers to use in config files. + + + * Xilinx Chip Test Board added + + + +2 On-board Detector Server Compatibility +========================================== + + + Eiger 9.0.0 + Jungfrau 9.0.0 + Mythen3 9.0.0 + Gotthard2 9.0.0 + Gotthard 9.0.0 + Moench 9.0.0 + + + On-board Detector Server Upgrade + -------------------------------- + + From v6.1.0 (without tftp): + update only on-board detector server + Using command 'updatedetectorserver' + + + udpate both on-board detector server and firmware simultaneously + Using command 'update' + + Instructions available at + https://slsdetectorgroup.github.io/devdoc/serverupgrade.html + + + + +3 Firmware Requirements +======================== + + + Eiger 02.10.2023 (v32) (updated in 7.0.3) + + Jungfrau 20.09.2023 (v1.5, HW v1.0) (updated in 8.0.0) + 21.09.2023 (v2.5, HW v2.0) (updated in 8.0.0) + + Mythen3 13.11.2024 (v2.0) (updated in 9.0.0) + + Gotthard2 03.10.2024 (v1.0) (updated in 9.0.0) + + Moench 26.10.2023 (v2.0) (updated in 8.0.2) + + Gotthard 08.02.2018 (50um and 25um Master) + 09.02.2018 (25 um Slave) + + + Detector Upgrade + ---------------- + + The following can be upgraded remotely: + + Eiger via bit files + Jungfrau via command <.pof> + Mythen3 via command <.rbf> + Gotthard2 via command <.rbf> + Moench via command <.pof> + + Gotthard cannot be upgraded remotely + + Except Eiger, + upgrade + Using command 'programfpga' or + + udpate both on-board detector server and firmware simultaneously + Using command 'update' + + + Instructions available at + https://slsdetectorgroup.github.io/devdoc/firmware.html + + + + +4 Kernel Requirements +====================== + + Blackfin + -------- + Latest version: Fri Oct 29 00:00:00 2021 + + Older ones will work, but might have issues with programming firmware via + the package. + + Nios + ----- + Compatible version: Mon May 10 18:00:21 CEST 2021 + + Kernel Upgrade + --------------- + Eiger via bit files + Others via command + + Commands: udpatekernel, kernelversion + Instructions available at + https://slsdetectorgroup.github.io/devdoc/commandline.html + https://slsdetectorgroup.github.io/devdoc/detector.html + https://slsdetectorgroup.github.io/devdoc/pydetector.html + + + + +5 Download, Documentation & Support +==================================== + + Download + -------- + + The Source Code: + https://github.com/slsdetectorgroup/slsDetectorPackage + + Documentation + ------------- + + Installation: + https://slsdetectorgroup.github.io/devdoc/installation.html + + Quick Start Guide: + https://slsdetectorgroup.github.io/devdoc/quick_start_guide.html + + Firmware Upgrade: + https://slsdetectorgroup.github.io/devdoc/firmware.html + + Detector Server upgrade: + https://slsdetectorgroup.github.io/devdoc/serverupgrade.html + + Detector Simulators: + https://slsdetectorgroup.github.io/devdoc/virtualserver.html + + Consuming slsDetectorPackage: + https://slsdetectorgroup.github.io/devdoc/consuming.html + + API Examples: + https://github.com/slsdetectorgroup/api-examples + + Command Line Documentation: + https://slsdetectorgroup.github.io/devdoc/commandline.html + + C++ API Documentation: + https://slsdetectorgroup.github.io/devdoc/detector.html + + C++ API Example: + https://slsdetectorgroup.github.io/devdoc/examples.html# + + Python API Documentation: + https://slsdetectorgroup.github.io/devdoc/pygettingstarted.html + + Python API Example: + https://slsdetectorgroup.github.io/devdoc/pyexamples.html + + Receivers (including custom receiver): + https://slsdetectorgroup.github.io/devdoc/receivers.html + https://slsdetectorgroup.github.io/devdoc/slsreceiver.html + + Detector UDP Header: + https://slsdetectorgroup.github.io/devdoc/udpheader.html + https://slsdetectorgroup.github.io/devdoc/udpdetspec.html + + slsReceiver Zmq Format: + https://slsdetectorgroup.github.io/devdoc/slsreceiver.html#zmq-json-header-format + + TroubleShooting: + https://slsdetectorgroup.github.io/devdoc/troubleshooting.html + https://slsdetectorgroup.github.io/devdoc/troubleshooting.html#receiver-pc-tuning-options + + Further Documentation: + https://www.psi.ch/en/detectors/documentation + + Info on Releases: + https://www.psi.ch/en/detectors/software + + + Support + ------- + + dhanya.thattil@psi.ch + erik.frojdh@psi.ch