An EPICS areaDetector driver for TimePix3 detector from ASC.
Additional information:
- Depends on the CPR verson 1.9.1.
- Depends on the json version v3.11.2.
- Developed with ADCore R3-11 and ADSupport R1-10 or newer.
- This has only been developed/tested on ubuntu 22.04, 20.04, 18.04, RHEL 7.9, RHEL 9.1 Linux 64-bit machines.
- This has only been developed for 2 x 2 chips layout and 1 chip tpx3CAM, since that is what I have access to now.
- This has been tested with serval version 3.3.0, 3.2.0, 3.1.0 and 3.0.0. Only most recent serval version(s) are tested extensivly.
- Driver is specific to Serval version, since features differ. Driver for Serval 2.x.y is in separate branch, and is not under current development
- The driver has been developed using TimePix3 Emulator, and real detectors.
- Compile cpr
- Clone json
- Under
ADTimePix3/iocs/tpx3IOC/iocBoot/iocTimePix
there is already a ready to use IOC for the TimePix3- run serval
- Change the IP address in
st.cmd
orst_base.cmd
. - Run
./st.cmd
.
- There are CSS-Boy, screens under
ADTimePix3/tpx3App/op/
- Phoebus .bob screens have been converted/created but not yet included in the driver.
- Optimize/equalize chips in the 'count' mode (not ToT)
- Threshold fine increase is closer to noise (you get more counts)
- Threshold fine decrease is away from noise, higher threshold in keV. (you get less counts)
- These threshold settings can depend on X-ray energy.
- After changing the thresholds take a background image to check that you do not get extra noise pixels.
Uncomment following lines in ADCore/iocBoot
-
ADCore/iocBoot/commonPlugins.cmd
- Magick file saving plugin
- NDFileMagickConfigure("FileMagick1",
$(QSIZE), 0, "$ (PORT)", 0) - dbLoadRecords("NDFileMagick.template","P=$(PREFIX),R=Magick1:,PORT=FileMagick1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")
- NDFileMagickConfigure("FileMagick1",
- load NDPluginPva plugin
- NDPvaConfigure("PVA1",
$(QSIZE), 0, "$ (PORT)", 0, $(PREFIX)Pva1:Image, 0, 0, 0) - dbLoadRecords("NDPva.template", "P=$(PREFIX),R=Pva1:, PORT=PVA1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")
- startPVAServer
- NDPvaConfigure("PVA1",
- load sseq record for acquisition sequence
- dbLoadRecords("$(CALC)/calcApp/Db/sseqRecord.db", "P=$(PREFIX), S=AcquireSequence")
- set_requestfile_path("$(CALC)/calcApp/Db")
- load devIocStats records
- dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminSoft.db", "IOC=$(PREFIX)")
- Magick file saving plugin
-
ADCore/iocBoot/commonPlugin_settings.req
- file "NDFileMagick_settings.req", P=$(P), R=Magick1:
- file "NDPva_settings.req", P=$(P), R=Pva1: