EPICS-for-Dummies

Official Documentation

Where to go when this guide isn’t enough — which for anything authoritative is immediately.

Start here

Resource What it is
epics-controls.org The community’s front door. Downloads, module directories, news, meetings.
docs.epics-controls.org The modern consolidated documentation site. This is the canonical reference.
epics.anl.gov The historic Argonne site. Still hosts some documents that exist nowhere else, including version-specific manuals.
github.com/epics-docs/epics-docs The documentation’s own source. Corrections go here.

The core manuals

Document Read it for
EPICS Application Developer’s Guide The specification. Database, records, device support, CA, access security, the build system. Chapters 3–6 are the essential part, and it is more readable than its length suggests.
AppDevGuide PDF, Base 3.16.2 The complete, older PDF. Some readers prefer it, and it covers material the web version hasn’t fully absorbed.
Record Reference Manual Every field of every standard record type. Keep it bookmarked.
Channel Access Reference Manual The CA protocol, the C API, and the complete environment-variable list.
EPICS Process Database Concepts The conceptual introduction to records, links and processing. Read this before the AppDevGuide.
What is EPICS The official overview
Getting started, and installation Installing Base on Linux, macOS, Windows and RTEMS, maintained upstream

If you read one document properly, make it the Application Developer’s Guide. It’s the difference between using EPICS and understanding it.

PV Access and EPICS 7

Document Covers
PV Access protocol specification The wire protocol
Normative Types specification NTScalar, NTNDArray, NTTable and the rest — what makes structured data interoperable
PVXS documentation The modern C++ PVA library
p4p documentation Python PVA, client, server and gateway

Base source and releases

Resource  
github.com/epics-base/epics-base Source
Base downloads and release notes Which version, and what changed
github.com/epics-base The core organisation: PVXS, p4p, pvaPy, epicsCoreJava, ci-scripts

Release notes are worth reading before an upgrade. Base is careful about compatibility, and the exceptions are documented there rather than discovered.

Module directories

Directory Contents
Soft support modules Record types, software-only support, in-IOC services
Hardware support modules Searchable by manufacturer and model. Check here before writing device support.
github.com/epics-modules Where most of them live
github.com/epics-extensions Host-side tools
github.com/areaDetector Detector and camera drivers
github.com/EPICS-synApps The curated, tested bundle

Major project documentation

Project Documentation
Phoebus / CS-Studio control-system-studio.readthedocs.io — also covers the archive engine, alarm services, save & restore and scan server
Archiver Appliance epicsarchiver.readthedocs.io
ChannelFinder channelfinder.github.io
asyn epics-modules.github.io/asyn
StreamDevice paulscherrerinstitute.github.io/StreamDevice
areaDetector areadetector.github.io
motor epics-modules.github.io/motor
modbus epics-modules.github.io/modbus
Sequencer / SNL epics-modules.github.io/sequencer
PyEpics pyepics.github.io/pyepics
caproto caproto.github.io/caproto
PyDM slaclab.github.io/pydm
epics-containers epics-containers.github.io
Bluesky blueskyproject.io
pythonSoftIOC diamondlightsource.github.io/pythonSoftIOC
e3 (ESS) e3pages.readthedocs.io

Facility documentation worth reading

Several facilities publish controls documentation that is genuinely useful beyond their own walls:

Facility Notable for
SNS / ORNL controls The best free EPICS training material in existence, plus practical guides
Diamond Light Source epics-containers, ibek, PVI, pythonSoftIOC, and a large module ecosystem
PSI StreamDevice, pcaspy, s7plc, and a distinctive module-loading approach
SLAC PyDM, Badger, and their timing and BSA work
NSLS-II Bluesky, ophyd, Tiled — the modern beamline data stack
ISIS A thorough IOC testing framework and a large Lewis simulator collection

What this guide is for, versus these

This guide is a map: it tells you what exists, why it exists, and roughly how the pieces relate, so that when you open the Application Developer’s Guide you know which chapter you need.

Everything above is authoritative. Where they and this guide disagree, they are right and this is out of date — please say so.

Next

Training Material · Community · Books & Papers