Controls Software Documentation
This page exists to collect links to documentation about the instrument control system EPICS, its modules and related libraries (synApps, areaDetector), as used at the Advanced Photon Source.
Documentation referenced should be appropriate for beamline scientists, as opposed to only EPICS developers. New deployments should prefer EPICSv7, the latest release series.
See also the extensive resources from past EPICS Collaboration meetings.
EPICS Base
- Intro to EPICS
- EPICS Database Concepts
- EPICS Base Getting Started (official)
- Installing EPICS on RaspberryPi
synApps (aka EPICS Support)
areaDetector
Deploying, troubleshooting, and maintaining IOCs
- Troubleshooting EPICS IOCs
- simDetector Install directions (2BM)
- The Basics of an IOC (XXX documentation)
- Creation of an IOC using mkioc
- BCDA Tutorials (APS Internal)
Pre-built IOCs
Docker images
- EPICS Base 7.0.5, synApps 6.2: standard xxx, customized
- EPICS Base 7.0.5, synApps 6.2, area detector 3.10: standard, custom
Virtual Machines
Maintaining Documentation
APS ESAF & Proposal - Read-only interface
Bluesky
Bluesky Framework
- Documentation:
- General documentation: https://blueskyproject.io/
- General repository: https://github.com/bluesky
- bluesky-specific documentation: https://blueskyproject.io/bluesky/
- bluesky source: https://github.com/bluesky/bluesky
- Training:
- NSLS-II Sandbox for tutorials: https://try.nsls2.bnl.gov
- Try Bluesky in your internet browser (no local python required for this)
- Sandbox is publicly accessible
- Also: https://blueskyproject.io/tutorials/* hklpy:
- Bluesky's diffractometer support
- Diffractometer examples
- NSLS-II Sandbox for tutorials: https://try.nsls2.bnl.gov
- Queue server:
- Tiled:
APS
- Installation Steps for APS users
- apstools - Various Python tools for use with Bluesky at the APS.
- Guides, How-Tos, and other examples.
- APS Bluesky 101 (from 2021).
- Bluesky training for APS users
- Template for new instrument description
- Work in progress.
- Includes configuration for IPython console, Jupyter notebook, and bluesky-queueserver.
PyDM
Python support
Channel Access
- PyEpics - Python interface for Channel Access based on libca and libCom.
- caproto - Python interface for Channel Access in pure Python.
PV Access
- p4p - Python interface for PV Access
- pvapy - Python interface for PV Access, also provides CA interface
General
- bcdamenu - GUI menu to beam line software, such as synoptic display.
- mdaPythonUtils - Read .mda data files into Python.
- PvMail - Watch an EPICS PV. Send email when it changes from 0 to 1.
- pvView - Display one or more EPICS PVs in a PyDM GUI window as a table.
- pvWebMonitor - Post EPICS PVs to read-only (static) web site.
- punx - Python Utilities for NeXus HDF5 files: validation, structure, hierarchy.
- pyRestTable - Format a nice table in reST (reStructuredText) from Python.
- pysumreg - Statistics of list of (x,y) pairs from calculator-style summation registers.
- spec2nexus - Read SPEC data files into Python, write NeXus data file.