EPICS Modules The epics-modules GitHub organization is a community-maintained collection of support modules for EPICS (Experimental Physics and Industrial Control System). These modules extend EPICS with device drivers, record types, communication protocols, and utilities used at research facilities worldwide.
Many of these modules originated as part of synApps , a collection of EPICS software developed primarily by the BCDA group at Argonne National Laboratory.
Modules Communication & Driver Support Module Description asyn Driver and device support for asynchronous communication (serial, TCP/IP, GPIB, and more) modbus Communication with PLCs via Modbus protocol over TCP, serial RTU, and serial ASCII stream StreamDevice protocol-based communication (archived – see StreamDevice ) ether_ip EtherNet/IP support for Allen Bradley PLCs mqtt MQTT protocol support based on asyn and Paho twincat-ads Communication with Beckhoff TwinCAT controllers over ADS protocol opcua OPC UA device support
Motor & Motion Control Module Description motor Motor record and driver support for motion controllers tpmac Support for Delta Tau Turbo PMAC2 motor controllers ecmc EtherCAT motion controller and generic I/O controller support urRobot Support for Universal Robots e-series robot arms SyringePump Syringe pump control
Data Acquisition & Analysis Module Description mca Multi-channel analyzer (MCA) and multi-channel scaler (MCS) support dxp Support for XIA digital x-ray spectroscopy electronics dxpSITORO Driver for XIA SITORO-based FalconX spectrometers Dante Support for Dante digital pulse processors ketek Driver for KETEK silicon drift diode systems with DPP3 xspress3 areaDetector driver for Xspress3 electronics sscan Scanning support (step scans, fly scans) scaler Scaler record support
Measurement & I/O Hardware Module Description measComp Support for Measurement Computing USB and Ethernet I/O modules LabJack Support for LabJack I/O modules quadEM Support for quad electrometers and picoammeters ip330 Support for Acromag IP330 16-bit ADC Industry Pack modules ip230A Support for Acromag IP230A 8-channel 16-bit DAC Industry Pack modules dac128V Support for Systran DAC-128V 8-channel 12-bit DAC Industry Pack modules ipUnidig Support for Industry Pack digital I/O modules Yokogawa_DAS Driver support for Yokogawa GM10 and MW100 data acquisition systems microEpsilon Device support for Micro-Epsilon displacement measurement digitizers ThorLabsDFM Driver for ThorLabs deformable mirrors
Database & Record Support Module Description calc Calculation records (transform, sCalcout, aCalcout, and more) busy Busy record for ca_put_callback completion signaling std Standard records and databases (EPID, timer, shutter, etc.) ip Industry Pack and serial/GPIB device databases delaygen Delay generator support love Love controller support optics Optics devices (monochromators, tables, slits, filters, etc.) symb Global symbol device support
IOC Infrastructure Module Description autosave Automatic save and restore of PV values across IOC reboots iocStats IOC status and resource monitoring alive IOC heartbeat and status reporting caPutLog Channel Access put logging (also supports PVA puts) caputRecorder Record and replay sequences of CA puts sequencer EPICS State Notation Language (SNL) sequencer pcas Portable Channel Access server library
Scripting & Automation Module Description lua Lua scripting for IOC shells, records, and device support pyDevSup EPICS device support in Python
VME, CAMAC & Bus Support Module Description vme VME bus support ipac IPAC carrier and communication module drivers camac CAMAC crate controller and module support devlib2 Helper library for memory-mapped bus access SIS3153 Driver for SIS3150/SIS3153 USB-to-VME interface cards vac Vacuum controller support
FPGA & Digital I/O Module Description softGlue FPGA-based configurable digital logic softGlueZynq softGlue for Zynq-based platforms mrfioc2 Driver for Micro Research Finland event timing system devices
Transient Recorders Module Description gtr Generic transient recorder support TRCore General transient recorder framework TRGeneralStandards Transient recorder driver for General Standards 16AI64SSA/C TRSIS Transient recorder driver for SIS 3302 transRecorder Top-level directory for transient recorder software
Testing & Utilities Module Description gtest Google Test / Google Mock framework with EPICS integration MCoreUtils Real-time utilities for EPICS IOCs on multi-core Linux
Templates & Examples Module Description xxx synApps example/template IOC application ioczed Template IOC for microzed/picozed platforms
Getting Started Most modules follow a standard build process:
Clone the module repository:
git clone https://github.com/epics-modules/<module>.git
Edit configure/RELEASE to set paths to EPICS base and any dependencies.
Build:
For a complete synApps distribution that builds many of these modules together, see the assemble_synApps script.
Contributing Contributions are welcome. To contribute to a module:
Open an issue on the module’s GitHub repository to discuss the change. Fork the repository and make your changes on a branch. Submit a pull request. For questions and discussion, see the EPICS Tech-Talk mailing list and the EPICS community .
Links