imXPAD¶

Introduction¶
The imXpad detectors benefit of hybrid pixel technology, which leads to major advantages compared to the other technologies. These advantages are mainly provided by direct photon conversion and real time electronic analysis of X-ray photons. This allows for direct photon counting and energy selection.
XPAD detectors key features compared to CCDs and CMOS pixels detectors are:
Noise suppression
Energy selection
Almost infinite dynamic range
High Quantum Efficiency (DQE(0) ~100%, dose reduction)
Ultra fast electronic shutter (10 ns)
Frame rate > 500 Hz
Prerequisite¶
In order to operate the imXpad detector, the USB-server or the PCI-server must be running in the computer attached to the detector.
Installation & Module configuration¶
Follow the generic instructions in Build and Install. If using CMake directly, add the following flag:
-DLIMACAMERA_IMXPAD=true
For the Tango server installation, refers to PyTango Device Server.
Initialisation and Capabilities¶
Implementing a new plugin for new detector is driven by the LIMA framework but the developer has some freedoms to choose which standard and specific features will be made available. This section is supposed to give you the correct information regarding how the camera is exported within the LIMA framework.
Camera initialisation¶
- imXpad camera must be initialisated using 2 parameters:
The IP adress where the USB or PCI server is running
The port number use by the server to communicate.
Std capabilities¶
HwDetInfo
getCurrImageType/getDefImageType():
HwSync:
get/setTrigMode(): the only supported mode are IntTrig, ExtGate, ExtTrigMult, ExtTrigSingle.
Refer to: http://imxpad.com/templates/SoftwareDocumentation/softwareDocumentation.html for a whole description of detector capabilities.
Optional capabilities¶
This plugin does not offer optional hardware capabilities.
How to use¶
This is a python code example for a simple test:
from Lima import imXpad
from Lima import Core
import time
# Setting XPAD camera (IP, port)
cam = imXpad.Camera('localhost', 3456)
HWI = imXpad.Interface(cam)
CT = Core.CtControl(HWI)
CTa = CT.acquisition()
CTs = CT.saving()
#To specify where images will be stored using EDF format
CTs.setDirectory("./Images")
CTs.setPrefix("id24_")
CTs.setFormat(CTs.RAW)
CTs.setSuffix(".bin")
CTs.setSavingMode(CTs.AutoFrame)
CTs.setOverwritePolicy(CTs.Overwrite)
#To set acquisition parameters
CTa.setAcqExpoTime(0.001) #1 ms exposure time.
CTa.setAcqNbFrames(10) # 10 images.
CTa.setLatencyTime(0.005) # 5 ms latency time between images.
#To change acquisition mode
cam.setAcquisitionMode(cam.XpadAcquisitionMode.Standard)
#To set Triggers. Possibilities: Core.IntTrig, Core.ExtGate, Core.ExtTrigMult, Core.ExtTrigSingle.
CTa.setTriggerMode(Core.IntTrig)
#To set Outputs.
cam.setOutputSignalMode(cam.XpadOutputSignal.ExposureBusy)
#ASYNCHRONOS acquisition
CT.prepareAcq()
CT.startAcq()
#SYNCHRONOUS acquisition
CT.prepareAcq()
CT.startAcq()
cam.waitAcqEnd()
#To abort current process
#CT.stopAcq()
#Load Calibration from file
#cam.loadCalibrationFromFile("./S70.cfg")
#Perform Calibrations 0-SLOW, 1-MEDIUM, 2-FAST
#cam.calibrationOTN(0)
#cam.calibrationOTNPulse(0)
#cam.calibrationBEAM(1000000,60,0) # 1s->exposure time, 60->ITHL_MAX, 0->SLOW