# areaDetector: EPICS software for area detectors

Module Owner: Mark Rivers: University of Chicago

This page is the home of areaDetector, an application for controlling area (2-D) detectors, including CCDs, pixel array detectors, and online imaging plates.

NOTE: This module replaces the ccd and pilatusROI modules. These older modules will no longer be supported, and users are encouraged to convert to this new areaDetector software.

Devices supported in areaDetector include:

From ADSC

- Large CCD detectors for x-ray diffraction. This support is from Lewis Muir of IMCA-CAT at the APS.

From Allied Vision Technologies (formerly Prosilica)

- High-speed, high-resolution CCD and CMOS cameras. These use GigE and Firewire interfaces.

From Andor Technology

- Cooled CCD cameras with USB and PCI interfaces.
- Scientific CMOS (sCMOS) cameras with CameraLink interfaces.

From Axis Communications and many other manufacturers.

- The areaDetector URL driver can read images from any URL, including Web cameras, video servers, disk files, etc.

From Bruker

- Detectors that run under the Bruker Instrument Server (BIS) server.
- The old SMART CCD camera line with Photometrics cameras. This requires the PCI interface card, replacing the old ISA bus card, and requires controlling the detector with WinView, not the SMART software.

From Dectris

- The Pilatus pixel-array detector.

From Marresearch GmbH

- mar345 online image plate reader

From Perkin Elmer

- Amorphous silicon flat panel detectors. This support was originally written by Brian Tieman and John Hammonds from the APS.
- Dexela CMOS flat panel detectors.

From Pixirad

- CdTe pixel-array detectors

From Photonic Science

- CCD and CMOS cameras.

From Point Grey Research and many other manufacturers

- All Firewire (IEEE 1394) cameras that follow the IIDC/DCAM specification. There is support for Firewire cameras under Windows in the ADFireWireWin module, and support for Firewire cameras under Linux in the firewireDCAM module.

From Point Grey Research

- All Point Grey cameras (Firewire, USB 2.0 and 3.0, GigE) using their FlyCapture2 SDK.

From Rayonix (formely Mar-USA)

- Cooled x-ray CCD detectors

From Roper

- All CCD detectors supported by the WinView and WinSpec programs. This includes all Princeton Instruments detectors, as well as most Photometrics detectors.
- All CCD detectors supported by the PVCam library. This includes all Photometrics detectors, as well as many Princeton Instruments detectors.
- All CCD detectors supported by the LightField program. This includes many of the newer Princeton Instruments detectors.

Please email any comments and bug reports to Mark Rivers who is responsible for coordinating development and releases.

## Where to find it

Beginning with release R2-0 (March 2014) the areaDetector module is in the areaDetector project on Github. This project is organized as a top level module and a set of submodules, e.g. ADCore, ADProsilica, ADPilatus, etc.

The following table provides links to the github repository, the documentation, and pre-built binaries.

Github repository | Description | Documentation | Release Notes | Pre-built binaries
--- | --- | --- | --- | ---
areaDetector | Top-level module; ADCore, ADBinaries, ADProsilica, etc. go under this | areaDetectorDoc | Release Notes | N.A.
ADCore | Base classes, plugins, simulation detector | areaDetectorDoc | Release Notes | Pre-built binaries
ADBinaries | Pre-built support libraries (HDF5, etc.) for Windows | N.A. | Release Notes | N.A.
ADADSC | Driver for ADSC detectors | adscDoc | Release Notes | Pre-built binaries
ADAndor | Driver for Andor CCD detectors | andorDoc | Release Notes | Pre-built binaries
ADAndor3 | Driver for Andor sCMOS detectors | andor3Doc | Release Notes | Pre-built binaries
ADBruker | Driver for Bruker detectors using the Bruker Instrument Server (BIS) | BrukerDoc | Release Notes | Pre-built binaries
ADDexela | Driver for Perkin Elmer Dexela detectors | DexelaDoc | Release Notes | Pre-built binaries
ADFireWireWin | Driver for Firewire DCAM detectors on Windows using the Carnegie Mellon Firewire driver | FirewireWinDoc | Release Notes | Pre-built binaries
ADLightField | Driver for Princeton Instruments detectors using their LightField application | LightFieldDoc | Release Notes | N.A.
ADmar345 | Driver for the mar345 image plate detector | Mar345Doc | Release Notes | Pre-built binaries
ADmarCCD | Driver for CCD detectors from Rayonix (formerly Mar-USA) | MarCCDDoc | Release Notes | Pre-built binaries
ADPerkinElmer | Driver for Perkin Elmer flat-panel detectors | PerkinElmerDoc | Release Notes | Pre-built binaries
ADPixirad | Driver for Pixirad pixel-array detectors | PixiradDoc | Release Notes | Pre-built binaries
ADPointGrey | Driver for Point Grey Research cameras | PointGreyDoc | Release Notes | Pre-built binaries
ADProsilica | Driver for Allied Vision Technologies (formerly Prosilica) cameras | prosilicaDoc | Release Notes | Pre-built binaries
ADPSL | Driver for Photonic Science detectors | PSLDoc | Release Notes | Pre-built binaries
ADPvCam | Driver for Photometics and Princeton Instruments detectors using the PvCam library | pvcamDoc | Release Notes | Pre-built binaries
ADQImaging | Driver for QImaging detectors | QImagingDoc | Release Notes | Pre-built binaries
ADRoper | Driver for Princeton Instruments and Photometics detectors using the WinView/WinSpec programs | RoperDoc | Release Notes | Pre-built binaries
ADURL | Driver for reading images from any URL using the GraphicsMagick library | URLDriverDoc | Release Notes | Pre-built binaries
aravisGigE | Driver using the GNOME Aravis library for Genicam GigE cameras | README | Release Notes | N.A.
ffmpegViewer | A stand-alone Qt4 application to display a stream of ffmpeg compressed images | README | N.A | N.A.
ffmpegServer | Plugin that use the ffmpeg libraries to compress a stream of images to files or via an html service | ffmpegServer | Release Notes | N.A.
firewireDCAM | Driver for Firewire DCAM detectors on Linux | README | Release Notes | N.A.

Prior to release R2-0 the areaDetector module is in the synApps Subversion repository at the APS. The "trunk" directory contains the most recent unreleased code, while the "tags" directory contains the released versions.

For releases prior to R2-0 the software can be downloaded from the links in the table below. The software is available both in source code form, and in pre-built form so that it can be used without an EPICS build system. There are separate pre-built binary packages for linux-x86, linux-x86_64, win32-x86, windows-x64, and cygwin-x86.

Module Version | Release Date | Source Code Filename | Pre-built Filename | Documentation | Release Notes | Known Problems
--- | --- | --- | --- | --- | --- | ---
1-9-1 | 11-March-2013 | areaDetectorR1-9-1.tgz | areaDetectorPrebuilt_R1-9-1_linux-x86.tgz areaDetectorPrebuilt_R1-9-1_linux-x86-gcc43.tgz areaDetectorPrebuilt_R1-9-1_linux-x86_64.tgz areaDetectorPrebuilt_R1-9-1_linux-x86_64-gcc42.tgz areaDetectorPrebuilt_R1-9-1_win32-x86.tgz areaDetectorPrebuilt_R1-9-1_windows_x64.tgz areaDetectorPrebuilt_R1-9-1_cygwin-x86.tgz areaDetectorPrebuilt_R1-9-1_darwin-x86.tgz | areaDetectorDoc | Release notes | See release notes
1-9 | 27-February-2013 | areaDetectorR1-9.tgz | areaDetectorPrebuilt_R1-9_linux-x86.tgz areaDetectorPrebuilt_R1-9_linux-x86-gcc43.tgz areaDetectorPrebuilt_R1-9_linux-x86_64.tgz areaDetectorPrebuilt_R1-9_linux-x86_64-gcc42.tgz areaDetectorPrebuilt_R1-9_win32-x86.tgz areaDetectorPrebuilt_R1-9_windows_x64.tgz areaDetectorPrebuilt_R1-9_cygwin-x86.tgz areaDetectorPrebuilt_R1-9_darwin-x86.tgz | areaDetectorDoc | Release notes | See release notes
1-8 | 6-October-2012 | areaDetectorR1-8.tgz | areaDetectorPrebuilt_R1-8_linux-x86.tgz areaDetectorPrebuilt_R1-8_linux-x86-gcc43.tgz areaDetectorPrebuilt_R1-8_linux-x86_64.tgz areaDetectorPrebuilt_R1-8_linux-x86_64-gcc42.tgz areaDetectorPrebuilt_R1-8_win32-x86.tgz areaDetectorPrebuilt_R1-8_windows_x64.tgz areaDetectorPrebuilt_R1-8_cygwin-x86.tgz | areaDetectorDoc | Release notes | See release notes
1-7 | 9-Aug-2011 | areaDetectorR1-7.tgz | areaDetectorPrebuilt_R1-7_linux-x86.tgz areaDetectorPrebuilt_R1-7_linux-x86_64.tgz areaDetectorPrebuilt_R1-7_win32-x86.tgz areaDetectorPrebuilt_R1-7_windows_x64.tgz areaDetectorPrebuilt_R1-7_cygwin-x86.tgz | areaDetectorDoc | Release notes | See release notes
1-6 | 20-May-2010 | areaDetectorR1-6.tgz | areaDetectorPrebuilt_R1-6.tgz | areaDetectorDoc | Release notes | See release notes
1-5 | 23-August-2009 | areaDetectorR1-5.tgz | areaDetectorPrebuilt_R1-5.tgz | areaDetectorDoc | Release notes | See release notes
1-4 | 30-Jan-2009 | areaDetectorR1-4.tgz | areaDetectorPrebuilt_R1-4.tgz | areaDetectorDoc | Release notes | See release notes
1-3 | 24-Nov-2008 | areaDetectorR1-3.tgz | areaDetectorPrebuilt_R1-3.tgz | areaDetectorDoc | Release notes | See release notes
1-2 | 24-Oct-2008 | areaDetectorR1-2.tgz | N.A. | areaDetectorDoc | Release notes | See release notes
1-1 | 10-May-2008 | areaDetectorR1-1.tgz | N.A. | areaDetectorDoc | Release notes | See release notes
1-0 | 11-Apr-2008 | areaDetectorR1-0.tgz | N.A. | areaDetectorDoc | Release notes | See release notes

## Required Modules

Module Version | Requires module | Release needed | Required for
--- | --- | --- | ---
1-9, 1-9-1 | EPICS base | 3.14.12.3 | Base support
asyn | 4-21 | Socket and interface support
busy | 1-4 | busy record
calc | 3-0 | scalcout and sseq records, needed by sscan database and useful for other databases
sscan | 2-8-1 | sscan record
autosave | 5-0 | Save/restore
1-8 | EPICS base | 3.14.12.2 (with all current patches) | Base support
asyn | 4-20 | Socket and interface support
busy | 1-4 | busy record. This was formerly included in sscan, but now has its own support module.
calc | 3-0 | scalcout and sseq records, needed by sscan database and useful for other databases
sscan | 2-8-1 | sscan record
autosave | 5-0 | Save/restore
1-7 | EPICS base | 3.14.12.1 | Base support
asyn | 4-17 | Socket and interface support
busy | 1-3 | busy record. This was formerly included in sscan, but now has its own support module.
calc | 2-8 | scalcout record, needed by sscan database and useful for other databases
sscan | 2-6-6 | sscan record
mca | 7-0 | mca record for getting time sequence of Total or Net counts from statistics plugin
autosave | 4-7 | Save/restore
1-6 | EPICS base | 3.14.11 | Base support
asyn | 4-13-1 | Socket and interface support
busy | 1-3 | busy record. This was formerly included in sscan, but now has its own support module.
calc | 2-8 | scalcout record, needed by sscan database and useful for other databases
sscan | 2-6-6 | sscan record
mca | 6-12-1 | mca record for getting time sequence of Total or Net counts from statistics plugin
autosave | 4-7 | Save/restore
1-5 | EPICS base | 3.14.10 | Base support
asyn | 4-12 | Socket and interface support
busy | 1-2 | busy record. This was formerly included in sscan, but now has its own support module.
calc | 2-7 | scalcout record, needed by sscan database and useful for other databases
sscan | 2-6-3 | sscan record
mca | 6-11 | mca record for getting time sequence of ROI counts
autosave | 4-5 | Save/restore
1-4 | EPICS base | 3.14.10 | Base support
asyn | 4-10 | Socket and interface support
busy | 1-1 | busy record. This was formerly included in sscan, but now has its own support module.
calc | 2-7 | scalcout record, needed by sscan database and useful for other databases
sscan | 2-6-3 | sscan record
mca | 6-10 | mca record for getting time sequence of ROI counts
autosave | 4-5 | Save/restore
1-3 | EPICS base | 3.14.10 | Base support. 3.14.8.2 also works, but the bug in epicsRingPointer can be a problem on multi-processor Linux systems.
asyn | 4-10 | Socket and interface support
calc | 2-6-7 | scalcout record, needed by sscan database and useful for other databases
sscan | 2-6-2 | sscan and busy records
mca | 6-10 | mca record for getting time sequence of ROI counts
autosave | 4-4 | Save/restore
1-2 | EPICS base | 3.14.10 | Base support. 3.14.8.2 also works, but the bug in epicsRingPointer can be a problem on multi-processor Linux systems.
asyn | 4-10 | Socket and interface support
calc | 2-6-5 | scalcout record, needed by sscan database and useful for other databases
sscan | 2-5-6 | Busy record
mca | 6-10 | mca record for getting time sequence of ROI counts
autosave | 4-3 | Save/restore
1-1 | EPICS base | 3.14.8.2 | Base support
asyn | 4-10 | Socket and interface support
sscan | 2-5-6 | Busy record
autosave | 4-3 | Save/restore
1-0 | EPICS base | 3.14.8.2 | Base support
asyn | 4-10 | Socket and interface support
sscan | 2-5-6 | Busy record
autosave | 4-3 | Save/restore

## Installation and Building

For R2-0 and later this is described in the INSTALL_GUIDE.md on Github.

For releases prior to R2-0 this is described in detail in the installation section of the areaDetector documentation for that particular release.

Please email Mark Rivers so that a record can be kept of which sites are using this software.

## In Use

This software was originally developed by Mark Rivers.

- In use at APS, NSLS, DLS, SLS, BESSY, NSRRC and others.