Aviex camera plugin

../../../_images/aviex_front.png ../../../_images/aviex_back.png


The PCCD-170170 is a large area detector (4096 x 4096) designed for use in WAXS or SAXS experiments in a vacuum environment.

../../../_images/aviex_inside.png ../../../_images/aviex_block_diagram.png

The detector supports full frame, multiframe time-sliced, and streak camera modes of operation.

Used at the SWING beamline of Synchrotron SOLEIL to make timeresolved SAXS measurements together with another WAXS detector.

This Lima plugin controls an Aviex camera under linux.

It is based on the MX beamline control toolkit.

It has been tested at the Synchrotron SOLEIL facility, but has not been installed yet on a Beamline.

Module configuration

First, compile the Mx Library/Driverand and install it in the default path (/opt/mx/).

Start the Mx driver with:

cd /opt/mx/sbin/
./mx start

Then, follow the generic instructions in build_installation. If using CMake directly, add the following flag:


For the Tango server installation, refers to Tango 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

There are 2 parameters to be filled with your Lima client:

  • The detector friendly name: can be any string defined by user.
  • The detector database file name: this file must contains configuration parameters such as IP adress, port.

Std capabilites

This plugin has been implemented in respect of the mandatory capabilites but with some limitations according to some programmer’s choices. We only provide here extra information for a better understanding of the capabilities for the Aviex camera.

  • HwDetInfo
  • Max image size is : 4096 * 4096
  • 16 bit unsigned type is supported
  • HwSync trigger type supported are:

    • IntTrig
    • ExtTrigSingle

Optional capabilites

  • HwBin

    • 1 * 1
    • 2 * 2
    • 4 * 4
    • 8 * 8
    • Binning above are typical values, but binning is not necessarily square.
  • HwRoi

    Not yet implemented


No specific hardware configuration is needed.

How to use

Here is the list of accessible fonctions to configure and use the Aviex detector:

//-- Related to Aviex specific features
void getExpMultiplier(double& exp_mult);
void setExpMultiplier(double exp_mult);
void getLatencyTime(double& period_time);
void setLatencyTime(double  period_time);
void getGapMultiplier(double& gap_mult);
void setGapMultiplier(double  gap_mult);
void getMxLibraryVersion(std::string& version);
void getInternalAcqMode(std::string& acq_mode);
void setInternalAcqMode(const std::string& mode);
void getReadoutDelayTime(double& readout_delay);
void setReadoutDelayTime(double readout_delay);
void getReadoutSpeed(bool& readout_speed);
void setReadoutSpeed(bool readout_speed);
void getInitialDelayTime(double& initial_delay);
void setInitialDelayTime(double initial_delay);
//! MASK_CORRECTION_BIT_POSITION                = 0
//! BIAS_CORRECTION_BIT_POSITION                = 1
//! DARK_CORRECTION_BIT_POSITION                = 2
//! GEOM_CORRECTION_BIT_POSITION                = 12
void setCorrectionFlags(unsigned long);