diff --git a/releases/RELEASE_v8.0.0.txt b/releases/RELEASE_v8.0.0.txt index cb8aeeb5f..a000d7ff1 100644 --- a/releases/RELEASE_v8.0.0.txt +++ b/releases/RELEASE_v8.0.0.txt @@ -1,120 +1,264 @@ -SLS Detector Package Major Release 7.0.3 released on 13.11.2023 +SLS Detector Package Major Release 8.0.0 released on 13.11.2023 =============================================================== -This document describes the differences between v7.0.3 and v7.0.2 +This document describes the differences between v8.0.0 and v7.0.3 CONTENTS -------- - 1 Resolved Issues - 2 On-board Detector Server Compatibility - 3 Firmware Requirements - 4 Kernel Requirements - 5 Download, Documentation & Support + 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 -1 Resolved Issues -================= + +2 Compilation Changes +===================== + + + * Minimum CMake version changed from 3.12 to 3.14 + + + * Internal zmq lib + Building zmq from tar file in repo (libs/libzmq/libzmq-4.3.4.tar.gz), + but added option (SLS_FETCH_ZMQ_FROM_GITHUB) to pull zmq version (v4.3.4) + from github (https://github.com/zeromq/libzmq.git) + + + * Internal pybind11 lib + Building pybind11 from tar file in repo (libs/pybind11/v2.11.0.tar.gz), + but added option (SLS_FETCH_PYBIND11_FROM_GITHUB) to pull pybind11 version + (v2.11.0) from github (https://github.com/pybind/pybind11) + + + +2 New, Changed or Resolved Features +===================================== + + + +2.1 Breaking API +================== Firmware -------- + * [Jungfrau] Status register and Sync mode fix + The regiser bit definition changed and fixes for stable control in sync mode. + Effect: Master and slaves give same status (previously master is sometimes 'idle' when acquisition is stopped), same #frames left and #nextframenumber. + Also ERROR status connected, but never noticed to occur. - * [Eiger] Blocking trigger on quad - Previously, blocking software trigger on a quad was not blocking. Fixed - with firmware v32. + For user, everything is transparent unless one touches status register + using advanced commands. + + + * [Moench] Status: Development mode + Moench is now being made compatible with Jungfrau v2.0 readout boards. + Hence, firmware and software is in development mode. + 7.x.x will continue to have fixes for Moench until this version is deployed. + + + * [Ctb] Fixes and features described later on. Client - ------ + ====== - * Limit port number max to 65535 - Previously, one could set the port numbers (TCP, UDP, ZMQ) to values - higher than 65535 and also to 0. However, it was truncated to 16 bit - in the background, but not relayed to the user. - Now, it will throw if it is 0 or greater than 65535 (16 bit). + * Datatype change of port numbers from int to uint16_t + API: setVirtualDetectorServers, + get/setRxPort, get/setControlPort, get/setStopPort, + get/setDestinationUDPPort(2), get/setRxZmqPort, get/setClientZmqPort - * Stopping acqusition for a single or subset of modules - The Detector API previously stopped all modules. - Now, it takes into account which modules the user wanted to stop. + * [Eiger] versions, hardware version, febl/r firmware version + Versions command modified to give more info about hardware version ['fx30', 'fx70'] and Febl/r firmware versions. + Command line: versions (output modified), hardwareversion (added for Eiger) + API added for Eiger: getHardwareVersion, getFrontEndFirmwareVersion + Enums added: fpgaPosition {FRONT_LEFT, FRONT_RIGHT} + + + * [Ctb] Voltage->Power name change + Command line: voltagelist ->powerlist + API: get/setVoltage -> get/setPower, get/setVoltageList -> get/setPowerList, + getMeasuredVoltage -> getMeasuredPower - * [Jungfrau] Stop in sync mode - When stopping acquisition in sync mode, only the master module sometimes - returns 'Idle' state instead of 'Stopped'. The software threw an - exception for the different states then. - Now, it does not throw and a fix will be added to the next firmware - release for the different states (with SW release: v8.0.0). + +2.2 Resolved or Changed Features +================================ - * [Eiger] Incorrect error message in Stop - When stopping acquisition, if a half module were to give an error in a - rare case while the others succeeded, this would result in an re-attempt - to stop 9 more times before throwing an incorrect exception messsage that - it could not stop. - Now, it is handled and will throw an exception of the error status - immediately. + Detector Server + --------------- + + + * Set bit and clear bit validation + Previously, validation expected all the other bits in the register to + not change. Now, it only validates the selected bit. + + + * [Jungfrau] Electron collection mode (bit 14 of 0x5D register) + Affected Command line: setbit, clearbit, reg + Affected API: setBit, clearBit, writeRegister + Electron collection mode and requires chip reconfiguration. + Temporary fix added that touching this bit will reconfigure chip if chip + is v1.1 and powered on. Permanent fix by introducing a command for the + same in future release. + + + * [Ctb] Fixes + + - Patioctrl, patsetbit, patbitmask + MSB (64 bit unsigned) could not be set as a value of -1 was interpreted + as a 'get'. Fixed in server. + + - Allow dac tristate when v_limit is set. Fixed. + + - Changing fw bit from disable analog to enable analog + + - Allow adc enable for 1 GbE and 10GbE to be 0. + + - Slow ADCs previously misread (a high 5k+ value). Firmware updated + and software adjusted now. + + - Allow non blocking acquire for 1GbE. Added Transmitting status when it + might still be reading from fifo. + + - Clean memory before reading from fifo in 1GbE mode. Read fifo then + RD strobe (corresponding firmware fix) fixes number of reads, but + increases all pipelines by 1. + + - Fixed pattern viewer (auto legend buf without wait and loop), allow + pyat files. (/patterngenerator) + + + Simulator + --------- + + + * Unique TCP port for multiple simulators + Checks include unique TCP port-hostname combo. Receiver -------- - * Limit TCP port number (command line) to max of 65535 - Refer issue under 'Client'. + * Unique TCP port for multiple receivers + 7.x.x already has automatically increasing TCP ports in shared memory + for multiple receivers. Now, checks include unique TCP port-hostname + combo. + + * [Ctb] Fixes + + - Readout mode updated + 'rx_hostname' should configure the receiver with parameters from detector, + but readout mode in receiver always configured at start up to Analog only. + Fixed. + + - Incorrect image size in zmq header, which happens when dbit list is + less than 64 bits. Fixed. + + - Rearranging digital data when dbit list less than 64 bits fixed. + + + Client + ------ + + + * [Jungfrau][Mythen3][Gotthard2] Sync mode should have at least one master + Multi module synced detectors should have at least one master when + starting acquisition, else it will throw. Once master is done acquiring + (blocking mode), status of all modules checked to ensure none of the + slaves in waiting due to hardware issues such as cabling. + + + +2.3 New Features +================ + + + Client + ------ - Detector Simulator - ------------------ + + * [Jungfrau] Pedestal mode + Command line: pedestalmode + API: get/setPedestalMode + Example: + pedestalmode 0 # turns off pedestal mode + pedestalmode 50 10 # turns on pedestal mode (50 pedestal frames, 10 loops) + + In pedestal mode, number of frames/triggers + is overwritten by '#pedestal_frames x #pedestal_loops x 2'. + In auto timing mode or trigger mode with #frames > 1, #frames is overwritten + with #triggers is 1. Otherwise, #triggers is overwritten with #frames is 1. + In pedestal mode, one cannot set #frames, #triggers or timing mode (exception). + + Disabling pedestal mode will set back to normal mode with normal previous + values of #frames and #triggers. - * Limit TCP port number (command line) to max of 65535 - Refer issue under 'Client'. + * Source UDP IP: Auto + Command line: udp_srcip, udp_srcip2 + API: get/setSourceUDPIP(2) + Allow 'auto' for udp_srcip to pick up IP from detector hostname. Not allowed + for Gotthard1. - * Some commands such as 'readnrows' would complain that it cannot be set - because the detector is not idle, but was setting it anyway. Fixed. + * Custom row and column for detector UDP header + Command line: row, column + API: get/setRow, get/setColumn + By default, row and column of module is determined in a pre-determined + manner or by custom detector size (Command line: detsize). + This is useful if user accesses row and column in multi- detector UDP header + or for the GUI to rearrange for complete image. + Option now added to set custom row and column. - Gui/ Client Callback - -------------------- + * [Ctb] Features + + - List for ADC, signal, power, slowadc + Also allow their list to set names and to obtain their indices and values. + + Command line: dacname, dacindex, + adclist, adcname, adcindex, + signallist, signalname,signalindex, + powerlist, powername, powerindex, powervalues, + slowadclist, slowadcname, slowadcindex, slowadcvalues + + API: get/setDacName, getDacIndex, + get/setAdcNames, getAdcIndex, get/setAdcName, + get/setSignalNames, getSignalIndex, get/setSignalName, + get/setPowerNames, getPowerIndex, get/setPowerName, getPowerList, + get/setSlowADCNames, getSlowADCIndex, get/setSlowADCName, getSlowADCList + + - Added more modes for transceiver in read out mode. + Allow to set number of samples and enable mask for transceiver. + + Command line: romode (more modes: 'transceiver', 'digital_transceiver'), + tsamples, transceiverenable + API: get/setTransceiverEnableMask, get/setNumberOfTransceiverSamples, + get/setReadoutMode (more enums: TRANSCEIVER_ONLY, DIGITAL_AND_TRANSCEIVER) - * [Jungfrau] Gui: corrected color map of gain plot - Previously, color on the gain plot did not update after the first image, - unless there were x/y min/max changes or window resizing. Fixed. + - Command to get file name with path of last pattern uploaded. + Command line: patfname + API: getPatterFileName - * [Jungfrau] Acquisition finished callback error status in sync mode - When stopping acquisition in multi module Jungfrau sync mode, - different status (master 'idle' and slaves 'stopped' in - firmware 2.4.1 or 1.4.1) show as 'error' in acquisition finished call - back (mainly used for gui). This is fixed. - - - * [Jungfrau] Gui: Next frame number shown as 0 for inconsistency - When stopping an acquisition in a multi module Jungfrau, the next - frame numbers might be different, for which the Gui shows an error message - but keeps the number as 0. Now, it is fixed to show -1 for inconsistency - and error message shown. So, setting 0 will also prompt an error message - that 0 is an invalid input. - - - Data Processing - --------------- - - - * [Moench] Segmentation fault with moench03RawDataPrcess - Previously, it crashed when nframes > 0. Fixed. - - - * [Moench] Moench interpolation issues fixed. - + * Automatic test script for all virtual simulators added. @@ -122,13 +266,13 @@ This document describes the differences between v7.0.3 and v7.0.2 ========================================== - Eiger 7.0.3 - Jungfrau 7.0.3 - Mythen3 7.0.3 - Gotthard2 7.0.3 - Gotthard 7.0.3 - Moench 7.0.3 - Ctb 7.0.3 + Eiger 8.0.0 + Jungfrau 8.0.0 + Mythen3 8.0.0 + Gotthard2 8.0.0 + Gotthard 8.0.0 + Moench 8.0.0 + Ctb 8.0.0 On-board Detector Server Upgrade @@ -151,8 +295,8 @@ This document describes the differences between v7.0.3 and v7.0.2 Eiger 02.10.2023 (v32) (updated in 7.0.3) - Jungfrau 16.05.2023 (v1.4.1, HW v1.0) (updated in 7.0.2) - 15.05.2023 (v2.4.1, HW v2.0) (updated in 7.0.2) + 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 24.01.2023 (v1.4) (updated in 7.0.0) @@ -161,9 +305,9 @@ This document describes the differences between v7.0.3 and v7.0.2 Gotthard 08.02.2018 (50um and 25um Master) 09.02.2018 (25 um Slave) - Moench 05.12.2022 (v0.3) (updated in 7.0.0) + Moench 10.07.2023 (v0.3.2) (updated in 8.0.0, under development) - Ctb 05.12.2022 (v1.1) (updated in 7.0.0) + Ctb 05.07.2023 (v1.2) (updated in 8.0.0) Detector Upgrade @@ -297,4 +441,3 @@ This document describes the differences between v7.0.3 and v7.0.2 dhanya.thattil@psi.ch erik.frojdh@psi.ch -