git-svn-id: https://subversion.xor.aps.anl.gov/synApps/areaDetector/trunk@14378 dc6c5ff5-0b8b-c028-a01f-ffb33f00fc8b
496 lines
13 KiB
HTML
Executable File
496 lines
13 KiB
HTML
Executable File
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<title>areaDetector Andor driver</title>
|
|
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
|
|
</head>
|
|
<body>
|
|
<div style="text-align: center">
|
|
<h1>
|
|
areaDetector Andor driver</h1>
|
|
<h2>
|
|
January 7, 2012</h2>
|
|
<h2>
|
|
Matthew Pearson, Diamond Light Source</h2>
|
|
<h2>
|
|
Mark Rivers, University of Chicago</h2>
|
|
</div>
|
|
<h2>
|
|
Table of Contents</h2>
|
|
<ul>
|
|
<li><a href="#Introduction">Introduction</a></li>
|
|
<li><a href="#StandardNotes">Implementation of standard driver parameters</a></li>
|
|
<li><a href="#Driver_parameters">Andor specific parameters</a></li>
|
|
<li><a href="#Unsupported">Unsupported standard driver parameters</a></li>
|
|
<li><a href="#Configuration">Configuration</a></li>
|
|
<li><a href="#MEDM_screens">MEDM screens</a></li>
|
|
<li><a href="#Future_plans">Future plans</a> </li>
|
|
</ul>
|
|
<h2 id="Introduction" style="text-align: left">
|
|
Introduction</h2>
|
|
<p>
|
|
This is an <a href="http://www.aps.anl.gov/epics">EPICS</a> <a href="areaDetector.html">
|
|
areaDetector</a> driver for CCD and CMOS detectors from <a href="http://www.andor.com">
|
|
Andor Technology</a>. It has been tested on the Andor iKon CCD cameras with
|
|
USB interface, but should work with other cameras as well.</p>
|
|
<p>
|
|
The driver currently provides the following features:</p>
|
|
<ul>
|
|
<li>Take images in single image mode and accumulate mode</li>
|
|
<li>Set the exposure time</li>
|
|
<li>Set the filename</li>
|
|
<li>Change the ADC sampling speed (0.05MHz and 2.5MHz)</li>
|
|
<li>Set a region of interest (a smaller region can be read out faster)</li>
|
|
<li>Set and monitor the CCD temperature</li>
|
|
<li>Set the number of images to use in accumulate mode</li>
|
|
</ul>
|
|
<p>
|
|
This driver inherits from <a href="areaDetectorDoc.html#ADDriver">ADDriver</a>.
|
|
It implements many of the parameters in <a href="areaDetectorDoxygenHTML/asyn_n_d_array_driver_8h.html">
|
|
asynNDArrayDriver.h</a> and in <a href="areaDetectorDoxygenHTML/_a_d_driver_8h.html">
|
|
ADArrayDriver.h</a>. It also implements a number of parameters that are specific
|
|
to the Andor detectors. The <a href="areaDetectorDoxygenHTML/class_andor_c_c_d.html">
|
|
Andor class documentation</a> describes this class in detail.</p>
|
|
<h2 id="StandardNotes" style="text-align: left">
|
|
Implementation of standard driver parameters</h2>
|
|
<p>
|
|
The following table describes how the Andor driver implements some of the standard
|
|
driver parameters.
|
|
</p>
|
|
<table border="1" cellpadding="2" cellspacing="2" style="text-align: left">
|
|
<tbody>
|
|
<tr>
|
|
<td align="center" colspan="3">
|
|
<b>Implementation of Parameters in asynNDArrayDriver.h and ADDriver.h, and EPICS Record
|
|
Definitions in ADBase.template and NDFile.template</b></td>
|
|
</tr>
|
|
<tr>
|
|
<th>
|
|
Parameter index variable</th>
|
|
<th>
|
|
EPICS record name</th>
|
|
<th>
|
|
Description</th>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
ADTriggerMode</td>
|
|
<td>
|
|
$(P)$(R)TriggerMode<br />
|
|
$(P)$(R)TriggerMode_RBV</td>
|
|
<td>
|
|
Sets the trigger mode for the detector. Options are:
|
|
<ul>
|
|
<li>Internal</li>
|
|
<li>External</li>
|
|
</ul>
|
|
This has not yet been tested. </td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
ADImageMode</td>
|
|
<td>
|
|
$(P)$(R)ImageMode<br />
|
|
$(P)$(R)ImageMode_RBV</td>
|
|
<td>
|
|
Sets the trigger mode for the detector. Options are:
|
|
<ul>
|
|
<li>Single</li>
|
|
<li>Multiple (accumulate)</li>
|
|
<li>Continuous (not supported yet)</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
ADNumImages</td>
|
|
<td>
|
|
$(P)$(R)NumImages<br />
|
|
$(P)$(R)NumImages_RBV</td>
|
|
<td>
|
|
Set the number of images to take in multiple (accumulate) mode </td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
ADTemperature</td>
|
|
<td>
|
|
$(P)$(R)Temperature<br />
|
|
$(P)$(R)Temperature_RBV</td>
|
|
<td>
|
|
Set and read the operating temperature of the CCD (-120C to 20C) </td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h2 id="Driver_parameters" style="text-align: left">
|
|
Andor specific parameters</h2>
|
|
<p>
|
|
The Andor driver implements the following parameters in addition to those in asynNDArrayDriver.h
|
|
and ADDriver.h.
|
|
</p>
|
|
<table border="1" cellpadding="2" cellspacing="2" style="text-align: left">
|
|
<tbody>
|
|
<tr>
|
|
<td align="center" colspan="7">
|
|
<b>Parameter Definitions in andorCCD.h and EPICS Record Definitions in andorCCD.template</b>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>
|
|
Parameter index variable</th>
|
|
<th>
|
|
asyn interface</th>
|
|
<th>
|
|
Access</th>
|
|
<th>
|
|
Description</th>
|
|
<th>
|
|
drvInfo string</th>
|
|
<th>
|
|
EPICS record name</th>
|
|
<th>
|
|
EPICS record type</th>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorCoolerParam</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Turn the CCD cooler on and off</td>
|
|
<td>
|
|
ANDOR_COOLER</td>
|
|
<td>
|
|
AndorCooler<br />
|
|
AndorCooler_RBV</td>
|
|
<td>
|
|
bo<br />
|
|
bi</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorShutdownParam</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Write a 1 to this PV to shutdown the CCD and the driver cleanly. This must be done
|
|
before rebooting the IOC.</td>
|
|
<td>
|
|
ANDOR_SHUTDOWN</td>
|
|
<td>
|
|
AndorShutdown</td>
|
|
<td>
|
|
bo</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorStartupParam</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Write a 1 to this PV to reinitialize the Andor software.</td>
|
|
<td>
|
|
ANDOR_STARTUP</td>
|
|
<td>
|
|
AndorStartup</td>
|
|
<td>
|
|
bo</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorImageModeAMultiParam</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Selects the Andor imaging mode. Choices are:
|
|
<ul>
|
|
<li>Accumulate</li>
|
|
<li>Kinetics</li>
|
|
<li>Fast Kintetics</li>
|
|
</ul>
|
|
</td>
|
|
<td>
|
|
ANDOR_IMAGE_MODE_AM</td>
|
|
<td>
|
|
AndorImageMode</td>
|
|
<td>
|
|
mbbo</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorACTInKineticsParam</td>
|
|
<td>
|
|
asynFloat64</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Accumulated cycle time in kinetics mode.</td>
|
|
<td>
|
|
ANDOR_ACT_KINETICS</td>
|
|
<td>
|
|
AndorACTInKinetics</td>
|
|
<td>
|
|
ao</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorANumInKineticsParam</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Number of accumulations in kinetics mode.</td>
|
|
<td>
|
|
ANDOR_ANUM_KINETICS</td>
|
|
<td>
|
|
AndorANumInKinetics</td>
|
|
<td>
|
|
ao</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorFKHeightParam</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Height of the region in Fast Kinetics mode.</td>
|
|
<td>
|
|
ANDOR_FK_HEIGHT</td>
|
|
<td>
|
|
AndorFKHeight</td>
|
|
<td>
|
|
ao</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorFKHBinningParam</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Horizontal binning of the region in Fast Kinetics mode.</td>
|
|
<td>
|
|
ANDOR_FKH_BINNING</td>
|
|
<td>
|
|
AndorFKHBinning</td>
|
|
<td>
|
|
ao</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorFKVBinningParam</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Vertical binning of the region in Fast Kinetics mode.</td>
|
|
<td>
|
|
ANDOR_FKV_BINNING</td>
|
|
<td>
|
|
AndorFKVBinning</td>
|
|
<td>
|
|
ao</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorFKOffsetParam</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Offset in Fast Kinetics mode.</td>
|
|
<td>
|
|
ANDOR_FK_OFFSET</td>
|
|
<td>
|
|
AndorFKOffset</td>
|
|
<td>
|
|
ao</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorTempStatusMessage</td>
|
|
<td>
|
|
asynOctet</td>
|
|
<td>
|
|
R/O</td>
|
|
<td>
|
|
Temperature status message.</td>
|
|
<td>
|
|
ANDOR_TEMP_STAT</td>
|
|
<td>
|
|
AndorTempStatus_RBV</td>
|
|
<td>
|
|
waveform</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorMessage</td>
|
|
<td>
|
|
asynOctet</td>
|
|
<td>
|
|
R/O</td>
|
|
<td>
|
|
Other status message.</td>
|
|
<td>
|
|
ANDOR_MESSAGE</td>
|
|
<td>
|
|
AndorMessage_RBV</td>
|
|
<td>
|
|
waveform</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorShutterMode</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Selects the Andor shutter mode. Choices are:
|
|
<ul>
|
|
<li>Auto</li>
|
|
<li>Open</li>
|
|
</ul>
|
|
</td>
|
|
<td>
|
|
ANDOR_SHUTTER_MODE</td>
|
|
<td>
|
|
AndorShutterMode</td>
|
|
<td>
|
|
mbbo</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorShutterExTTL</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Selects the TTL polarity of an external shutter. Choices are:
|
|
<ul>
|
|
<li>Low To Open</li>
|
|
<li>High To Open</li>
|
|
</ul>
|
|
</td>
|
|
<td>
|
|
ANDOR_SHUTTER_EXTTL</td>
|
|
<td>
|
|
AndorShutterExTTL</td>
|
|
<td>
|
|
bo</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorFileFormat</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Selects the file format for save files with the Andor driver. Choices are:
|
|
<ul>
|
|
<li>TIFF</li>
|
|
<li>BMP</li>
|
|
<li>SIF</li>
|
|
<li>EDF</li>
|
|
<li>RAW</li>
|
|
<li>TEXT</li>
|
|
</ul>
|
|
NOTE: Currently only TIFF is supported.</td>
|
|
<td>
|
|
ANDOR_FILE_FORMAT</td>
|
|
<td>
|
|
AndorFileFormat</td>
|
|
<td>
|
|
mbbo</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorPALFileName</td>
|
|
<td>
|
|
asynOctet</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Path and Filename of pallette file (used for TIFF file colours) (255 chars max).
|
|
</td>
|
|
<td>
|
|
ANDOR_PAL_FILE_PATH</td>
|
|
<td>
|
|
PALFilePath</td>
|
|
<td>
|
|
waveform</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
AndorAdcSpeed</td>
|
|
<td>
|
|
asynInt32</td>
|
|
<td>
|
|
R/W</td>
|
|
<td>
|
|
Switch between the slow (low noise) ADC and the fast ADC. Choices are:
|
|
<ul>
|
|
<li>0.05 MHz</li>
|
|
<li>2.5 MHz</li>
|
|
</ul>
|
|
</td>
|
|
<td>
|
|
ANDOR_ADC_SPEED</td>
|
|
<td>
|
|
AndorADCSpeed<br />
|
|
AndorADCSpeed_RBV</td>
|
|
<td>
|
|
mbbo<br />
|
|
mbbi</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h2 id="Usage" style="text-align: left">
|
|
Usage</h2>
|
|
<p>
|
|
Always use channel access put callback when setting parameters.</p>
|
|
<p>
|
|
If any of the parameters set are out of range or fail in some way, then the PV will
|
|
be put into alarm state. This should be checked after every PV set.
|
|
</p>
|
|
<p>
|
|
An example palette file for a TIFF file is GREY.PAL in the iocAndor directory.</p>
|
|
<h2 id="Andor_docs" style="text-align: left">
|
|
Andor CCD information and user manual</h2>
|
|
<p>
|
|
file:///dls_sw/work/R3.14.8.2/support/andorCCD/etc/private/iKon-M_Manual.pdf</p>
|
|
<p>
|
|
file:///dls_sw/work/R3.14.8.2/support/andorCCD/etc/private/Software_Development_Kit_V2.81.pdf
|
|
(for developers only)</p>
|
|
<h2 id="Future_plans" style="text-align: left">
|
|
Future plans</h2>
|
|
<ul>
|
|
<li>Support for more data acquisiton modes (kinetic and fast kinetics)</li>
|
|
<li>Automatic filename handling</li>
|
|
<li>Support for more file types (EDF)</li>
|
|
<li>Support for array callbacks to support plugins.</li>
|
|
<li>Support for setting more iKon detector parameters</li>
|
|
<li>Support for detector output signals (trigger and gate)</li>
|
|
<li>Set up autosave restore of settings, and archiving of parameters.</li>
|
|
<li>Remove AndorShutdown, use an EPICS exit handler instead.</li>
|
|
<li>Remove AndorFileFormat, just use normal NDFileFormat.</li>
|
|
</ul>
|
|
</body>
|
|
</html>
|