ESS EPICS Environment (e3)

Important

Major Update: e3 is now powered by conda!

These are the new documentation pages for the redesigned ESS EPICS Environment (e3). We have made a major technical and architectural switch to a conda-based approach for better package management and reproducibility.

Looking for the previous e3 documentation? The original build-tools based documentation can still be found at https://e3.pages.ess.eu/e3-build-tools.

Please beware that we currently are in the midst of the transition, and that some examples here in this documentation might not yet work without alterations.

Welcome to the documentation for ESS EPICS Environment (e3) - a toolkit designed to simplify EPICS development and deployment at the European Spallation Source.

What is e3?

e3 is a design concept and toolkit that:

  • Simplifies development by abstracting away low-level EPICS complexities

  • Manages dependencies automatically across EPICS modules

Prerequisites

e3 assumes familiarity with several key technologies. Before getting started, you should be comfortable with:

Tip

If you’re new to any of these technologies, we recommend reviewing the linked documentation before proceeding with e3.

Background

e3 evolved from ESS’s previous EPICS environments (CODAC, EEE) and is based on PSI’s EPICS environment. It uses a fork of PSI’s require module, git, and module wrappers to manage dependencies and site-specific modifications.

The toolkit handles complex dependency chains, compiles shared libraries, and manages installations - with much of the heavy lifting done by conda.

Note

e3 focuses on EPICS environments and module management. IOC management tools (systemd, procServ, conserver) and client applications (CS-Studio, DisplayBuilder, ChannelFinder) are separate systems.

EPICS resources

Tip

For questions, see EPICS chat (which includes a room for e3!) and tech-talk mailing lists.