mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-05-10 14:50:02 +02:00
444 lines
13 KiB
Plaintext
444 lines
13 KiB
Plaintext
SLS Detector Package Major Release 8.0.0 released on 13.11.2023
|
|
===============================================================
|
|
|
|
This document describes the differences between v8.0.0 and v7.0.3
|
|
|
|
|
|
|
|
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
|
|
=====================
|
|
|
|
|
|
* 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.
|
|
|
|
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
|
|
======
|
|
|
|
|
|
* 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
|
|
|
|
|
|
* [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
|
|
|
|
|
|
|
|
2.2 Resolved or Changed Features
|
|
================================
|
|
|
|
|
|
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
|
|
--------
|
|
|
|
|
|
* 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
|
|
------
|
|
|
|
|
|
* [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.
|
|
|
|
|
|
* 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.
|
|
|
|
|
|
* 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.
|
|
|
|
|
|
* [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)
|
|
|
|
|
|
- Command to get file name with path of last pattern uploaded.
|
|
Command line: patfname
|
|
API: getPatterFileName
|
|
|
|
|
|
* Automatic test script for all virtual simulators added.
|
|
|
|
|
|
|
|
2 On-board Detector Server Compatibility
|
|
==========================================
|
|
|
|
|
|
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
|
|
--------------------------------
|
|
|
|
From v6.1.0 (without tftp):
|
|
Using command 'updatedetectorserver'
|
|
From 5.0.0 (with tftp):
|
|
Using command 'copydetectorserver'
|
|
|
|
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 24.01.2023 (v1.4) (updated in 7.0.0)
|
|
|
|
Gotthard2 23.11.2022 (v0.3) (updated in 7.0.0)
|
|
|
|
Gotthard 08.02.2018 (50um and 25um Master)
|
|
09.02.2018 (25 um Slave)
|
|
|
|
Moench 10.07.2023 (v0.3.2) (updated in 8.0.0, under development)
|
|
|
|
Ctb 05.07.2023 (v1.2) (updated in 8.0.0)
|
|
|
|
|
|
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>
|
|
Ctb via command <.pof>
|
|
|
|
Gotthard cannot be upgraded remotely
|
|
|
|
Except Eiger,
|
|
upgrade
|
|
Using command 'programfpga' or
|
|
|
|
udpate both 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
|