quadEM

Mark Rivers, University of Chicago

This page is the home of quadEM.

quadEM supports quad electrometers/picoammeters, typically used for photodiode-based x-ray beam position monitors, or split ion chambers. They can also be used for any low-current measurement that requires high speed digital input. There is support for two models:

  1. The TetrAMM picoammeter sold by CAENels. This device communicates using TCP/IP over 1 Gbit/s Ethernet. It provides 4-channel current measurements at up to 20 kHz.
  2. The AH401B, AH401D, AH501, AH501C, and AH501D picoammeters originally designed by Synchrotron Trieste (elettra). They are now sold commercially by CAENels. These devices communicate using TCP/IP over 100 Mbit/s Ethernet or high-speed serial. They provide 4-channel current measurements at up to 1000 Hz (AH401 series) or 6510 Hz (AH501 series).
  3. The NSLS Quad Electrometer (called NSLS_EM in this document). This device consists of a 4-channel digital electrometer unit with Ethernet communication. The device provides 4-channel current measurements at up to 2500 Hz. The Sydor SI-EP-B4 is based on this design and is software comptabible.
  4. The NSLS2 Quad Electrometer (called NSLS2_EM in this document). This device consists of a 4-channel digital electrometer unit with Ethernet communication. The device provides 4-channel current measurements at up to 10,000 Hz. This design is based on a transconductance amplifier and can measure currents into the mA range, unlike the NSLS_EM which is based on a current integration chip and is limited to currents less than about 1 micro-amp. This unit is packaged with a Zynq processing and run this EPICS IOC software internally.
  5. The Quad Electrometer built by Steve Ross from the APS (called APS_EM in this document). This device consists of a 4-channel digital electrometer unit and 2 VME boards. The device provides 2 readings per diode at up to 813 Hz.

The AH401 series, NSLS_EM, and APS_EM are based on the same principle of an op-amp run as a current amplifier with a large feedback capacitor, and a high resolution ADC. The AH501 series and TetrAMM are based on a transimpedance input stage for current sensing, combined with analog signal conditioning and filtering stages. The AH501C/D and TetrAMM have an integrated programmable bias supply.

The quadEM driver derives from the asynNDArrayDriver base class from the EPICS areaDetector module. The driver collects the current, sum, difference and position readings during a user-defined "averaging period" and puts the time series of readings into a number of NDArray objects. The NDArrays are passed via callbacks to any NDArray plugins. These plugins include the

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

Where to find it

The software can be downloaded from the links in the table below. The software can also be accessed through the github repository.

Module Version Release Date Filename Documentation Release Notes Known Problems
9-4 November 22, 2020 R9-4 tar and zip files quadEMDoc.html Release notes See release notes
9-3 March 2, 2020 R9-3 tar and zip files quadEMDoc.html Release notes See release notes
9-2 September 13, 2018 R9-2 tar and zip files quadEMDoc.html Release notes See release notes
9-1 January 31, 2018 R9-1 tar and zip files quadEMDoc.html Release notes See release notes
9-0 September 18, 2017 R9-0 tar and zip files quadEMDoc.html Release notes See release notes
8-0 23-May-2017 R8-0 tar and zip files quadEMDoc.html Release notes See release notes
7-1 28-March-2017 R7-1 tar and zip files quadEMDoc.html Release notes See release notes
7-0 31-October-2016 R7-0 tar and zip files quadEMDoc.html Release notes See release notes
6-0 21-January-2016 R6-0 tar and zip files quadEMDoc.html Release notes See release notes
5-0 14-October-2014 R5-0 tar and zip files quadEMDoc.html Release notes See release notes
4-1 14-April-2014 R4-1 tar and zip files quadEMDoc.html Release notes See release notes
4-0 12-March-2013 R4-0 tar and zip files quadEMDoc.html Release notes See release notes
3-3 20-December-2012 R3-3 tar and zip files quadEMDoc.html Release notes See release notes
3-2 6-December-2012 R3-2 tar and zip files quadEMDoc.html Release notes See release notes
3-1 13-September-2012 R3-1 tar and zip files quadEMDoc.html Release notes See release notes
3-0 6-September-2012 R3-0 tar and zip files quadEMDoc.html Release notes See release notes
2-6 2-November-2011 R2-6 tar and zip files quadEMDoc.html Release notes See release notes
2-5 9-September-2011 R2-5 tar and zip files quadEMDoc.html Release notes See release notes
2-4 19-May-2008 R2-4 tar and zip files quadEMDoc.html Release notes See release notes
2-3 6-Sep-2006 R2-3 tar and zip files quadEMDoc.html Release notes See release notes
2-2 29-Mar-2005 R2-2 tar and zip files quadEMDoc.html Release notes See release notes
2-1 24-Mar-2005 R2-1 tar and zip files quadEMDoc.html Release notes See release notes
2-0 12-Nov-2003 R2-0 tar and zip files quadEMDoc.html Release notes See release notes
1-1 20-June-2001 R1-1 tar and zip files quadEMDoc.html Release notes See release notes

Required Modules

The quadEM support typically uses the synApps modules mca (for digital scope mode), std (for the EPID fast feedback support), and ipUnidig for interrupt support .  But the quadEM module does not actually depend on these other modules to be built.

Module version Requires module Release needed Required for
9-4 EPICS base 3.15.6 or 7.0.4.1 Base support
asyn 4-41 Driver support
areaDetector/ADCore 3-10 Used for NDArray plugins that compute statistics, stream data to disk, etc.
busy 1-7-2 Busy record. Used in databases to support ca_put_callback.
ipUnidig 2-12 Used in test application for interrupt callback support for APS_EM.
ipac 2-15 Used in test application for Industry Pack support for ipUnidig.
autosave 5-10 Used in test application for save/restore.
sscan 2-11-3 Used in test application for scanning.
calc 3-7-3 Used in test application for sscan.
9-3 EPICS base 3.15.6 or 7.0.3.1 Base support
asyn 4-39 (required for asynFloat64Average I/O Intr scan support) Driver support
areaDetector/ADCore 3-9 Used for NDArray plugins that compute statistics, stream data to disk, etc.
busy 1-7-2 Busy record. Used in databases to support ca_put_callback.
ipUnidig 2-11 Used in test application for interrupt callback support for APS_EM.
ipac 2-15 Used in test application for Industry Pack support for ipUnidig.
autosave 5-10 Used in test application for save/restore.
sscan 2-11-3 Used in test application for scanning.
calc 3-7-3 Used in test application for sscan.
9-2 EPICS base 3.15.5 or 7.0.1.1 Base support
asyn 4-34 (required for asynFloat64Average I/O Intr scan support) Driver support
areaDetector/ADCore 3-3-2 Used for NDArray plugins that compute statistics, stream data to disk, etc.
busy 1-7 Busy record. Used in databases to support ca_put_callback.
ipUnidig 2-11 Used in test application for interrupt callback support for APS_EM.
ipac 2-15 Used in test application for Industry Pack support for ipUnidig.
autosave 5-9 Used in test application for save/restore.
sscan 2-11-1 Used in test application for scanning.
calc 3-7 Used in test application for sscan.
9-0 EPICS base 3.15.5 Base support
asyn 4-32 Driver support
areaDetector/ADCore 3-1 Used for NDArray plugins that compute statistics, stream data to disk, etc.
busy 1-7 Busy record. Used in databases to support ca_put_callback.
ipUnidig 2-11 Used in test application for interrupt callback support for APS_EM.
ipac 2-14 Used in test application for Industry Pack support for ipUnidig.
autosave 5-8 Used in test application for save/restore.
sscan 2-10-2 Used in test application for scanning.
calc 3-6-1 Used in test application for sscan.
8-0 EPICS base 3.15.5 Base support
asyn 4-31 Driver support
areaDetector/ADCore 3-0 Used for NDArray plugins that compute statistics, stream data to disk, etc.
busy 1-6-1 Busy record. Used in databases to support ca_put_callback.
ipUnidig 2-10 Used in test application for interrupt callback support for APS_EM.
ipac 2-14 Used in test application for Industry Pack support for ipUnidig.
autosave 5-7-1 Used in test application for save/restore.
sscan 2-10-2 Used in test application for scanning.
calc 3-6-1 Used in test application for sscan.
7-1 EPICS base 3.15.5 Base support
asyn 4-31 Driver support
areaDetector/ADCore 2-6 Used for NDArray plugins that compute statistics, stream data to disk, etc.
busy 1-6-1 Busy record. Used in databases to support ca_put_callback.
ipUnidig 2-10 Used in test application for interrupt callback support for APS_EM.
ipac 2-14 Used in test application for Industry Pack support for ipUnidig.
autosave 5-7-1 Used in test application for save/restore.
sscan 2-10-2 Used in test application for scanning.
calc 3-6-1 Used in test application for sscan.
7-0 EPICS base 3.14.12.5 Base support
asyn 4-30 Driver support
areaDetector/ADCore 2-5 Used for NDArray plugins that compute statistics, stream data to disk, etc.
busy 1-6-1 Busy record. Used in databases to support ca_put_callback.
ipUnidig 2-10 Used in test application for interrupt callback support for APS_EM.
ipac 2-13 Used in test application for Industry Pack support for ipUnidig.
autosave 5-7-1 Used in test application for save/restore.
sscan 2-10-2 Used in test application for scanning.
calc 3-6-1 Used in test application for sscan.
6-0 EPICS base 3.14.12.5 Base support
asyn 4-28 Driver support
areaDetector/ADCore 2-4 Used for NDArray plugins that compute statistics, stream data to disk, etc.
mca 7-6 Fast sweep driver for time series
busy 1-6-1 Busy record. Used in databases to support ca_put_callback.
ipUnidig 2-10 Used in test application for interrupt callback support for APS_EM.
ipac 2-13 Used in test application for Industry Pack support for ipUnidig.
seq 2-2-3 Used by quadEM_TimeSeries to synchronize acquisition and to compute FFTs.
autosave 5-7-1 Used in test application for save/restore.
sscan 2-10-2 Used in test application for scanning.
calc 3-6-1 Used in test application for sscan.
5-0 EPICS base 3.14.12.4 Base support
asyn 4-23 Driver support
areaDetector 2-0 Used for NDArray plugins that compute statistics, stream data to disk, etc.
mca 7-5 Fast sweep driver for time series
busy 1-6 Busy record. Used in databases to support ca_put_callback.
ipUnidig 2-9 Used in test application for interrupt callback support for APS_EM.
ipac 2-11 Used in test application for Industry Pack support for ipUnidig.
seq 2-1-10 Used by quadEM_TimeSeries to synchronize acquisition and to compute FFTs.
autosave 5-1 Used in test application for save/restore.
sscan 2-9 Used in test application for scanning.
calc 3-2 Used in test application for sscan.
4-1 EPICS base 3.14.12.3 Base support
asyn 4-22 Driver support
areaDetector 2-0 Used for NDArray plugins that compute statistics, stream data to disk, etc.
mca 7-4 Fast sweep driver for time series
busy 1-6 Busy record. Used in databases to support ca_put_callback.
ipUnidig 2-9 Used in test application for interrupt callback support for APS_EM.
ipac 2-11 Used in test application for Industry Pack support for ipUnidig.
seq 2-1-10 Used by quadEM_TimeSeries to synchronize acquisition and to compute FFTs.
autosave 5-1 Used in test application for save/restore.
sscan 2-9 Used in test application for scanning.
calc 3-2 Used in test application for sscan.
4-0 EPICS base 3.14.12.3 Base support
asyn 4-21 Driver support
areaDetector 1-9-1 Used for NDArray plugins that compute statistics, stream data to disk, etc.
mca 7-3-1 Fast sweep driver for time series
busy 1-4 Busy record. Used in databases to support ca_put_callback.
ipUnidig 2-9 Used in test application for interrupt callback support for APS_EM.
ipac 2-11 Used in test application for Industry Pack support for ipUnidig.
seq 2-1-10 Used by quadEM_TimeSeries to synchronize acquisition and to compute FFTs.
autosave 5-0 Used in test application for save/restore.
sscan 2-8-1 Used in test application for scanning.
calc 3-0 Used in test application for sscan.
3-3 EPICS base 3.14.12.2 Base support
asyn 4-20 Driver support
mca 7-2 Fast sweep driver for time series
busy 1-4 Busy record. Used in quadEM_TimeSeries.template.
ipUnidig 2-9 Used in test application for interrupt callback support for APS_EM.
ipac 2-11 Used in test application for Industry Pack support for ipUnidig.
seq 2-1-9 Used by quadEM_TimeSeries to synchronize acquisition and to compute FFTs.
autosave 5-0 Used in test application for save/restore.
3-2 EPICS base 3.14.12.2 Base support
asyn 4-20 Driver support
mca 7-2 Fast sweep driver for time series
busy 1-4 Busy record. Used in quadEM_TimeSeries.template.
ipUnidig 2-9 Used in test application for interrupt callback support for APS_EM.
ipac 2-11 Used in test application for Industry Pack support for ipUnidig.
seq 2-1-9 Used by quadEM_TimeSeries to synchronize acquisition and to compute FFTs.
autosave 5-0 Used in test application for save/restore.
3-1 EPICS base 3.14.12.2 Base support
asyn 4-20 Driver support
mca 7-2 Fast sweep driver for time series
busy 1-4 Busy record. Used in quadEM_TimeSeries.template.
ipUnidig 2-9 Used in test application for interrupt callback support for APS_EM.
ipac 2-11 Used in test application for Industry Pack support for ipUnidig.
seq 2-1-9 Used by quadEM_TimeSeries to synchronize acquisition and to compute FFTs.
autosave 4-9 Used in test application for save/restore.
3-0 EPICS base 3.14.12.2 Base support
asyn 4-20 Driver support
mca 7-2 Fast sweep driver for time series
busy 1-4 Busy record. Used in quadEM_TimeSeries.template.
ipUnidig 2-9 Used in test application for interrupt callback support for APS_EM.
ipac 2-11 Used in test application for Industry Pack support for ipUnidig.
seq 2-1-9 Used by quadEM_TimeSeries to synchronize acquisition and to compute FFTs.
autosave 4-9 Used in test application for save/restore.
2-6 EPICS base 3.14.12.1 Base support
asyn 4-18 Driver support
2-5 EPICS base 3.14.12.1 Base support
asyn 4-17 Driver support
mca 7-0 MCA record
busy 1-3 Busy record
2-4 EPICS base 3.14.8.2 Base support
asyn 4-10 Driver support
mca 6-10 MCA record
sscan 2-6 Busy record
2-3 EPICS base 3.14.8.2 Base support
asyn 4-7 Driver support
mca 6-8 MCA record
sscan 2-5-3 Busy record
2-2 EPICS base 3.14.7 Base support
asyn 4-2 Driver support
mca 6-5 MCA record
sscan 2-5 Busy record
2-1 EPICS base 3.14.7 Base support
asyn 4-2 Driver support
mca 6-4 MCA record
sscan 2-5 Busy record
2-0 EPICS base 3.14.4 Base support
mpf 2-4-2 Message passing
mca 6-2 MCA record support
std 2-3 Fast feedback
dac128V 2-2 Fast feedback
ipUnidig 2-2 Interrupt support
1-1 EPICS base 3.13.7 Base support
mpf 1-10 Message passing
mca 5-5 MCA record support
std 1-4 Fast feedback
dac128V 1-4 Fast feedback
ipUnidig 1-3 Interrupt support

Installation and Building

After obtaining a copy of the distribution, it must be installed and built for use at your site. These steps only need to be performed once for the site (unless versions of the module running under different releases of EPICS and/or the other required modules are needed).

  1. Create an installation directory for the module, usually this will end with

    .../support/
  2. Place the distribution file in this directory. Then issue the commands (Unix style)
    gunzip quadEMRX-Y.tar.gz
    
    tar xvf quadEMRX-Y.tar
    
    where X-Y is the release.
  3. This creates a <top> application.
    .../support/quadEMRX-Y
    
  4. Edit the config[ure]/RELEASE file and set the paths to your installation of EPICS base and to your versions of other required modules.
  5. Run gnumake in the top level directory and check for any compilation errors.
  6. 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.