EPICS Control Systems

USPAS, January 24 - February 4, 2022, Online

This introduction to the Experimental Physics and Industrial Control System (EPICS) toolkit took place at the online winter 2022 US Particle Accelerator School (USPAS).


We use a Virtual Machine (VM) that contains a small but complete control system setup. The VM can be used on Windows, Mac OS or Linux. The setup is conceptually simple:

  1. Download VirtualBox from https://www.virtualbox.org/wiki/Downloads
  2. Download the EPICSMeeting2022.ova or earlier Training.ova VM image
  3. Start VirtualBox
  4. Import the VM image

In practice, security measures on your computer might complicate the initial start of VirtualBox, so here are the above steps in more detail.

  1. Your computer must run a 64 bit version of Windows, Linux or Mac OS X. It should have at least 8GB of memory.
    For Windows and Linux users: In the BIOS of your computer, you may have to enable the VT-X or AMD-v option to support 64 bit guest operating systems, see "In case of problems..." later on.
  2. Download and install Virtualbox for your operating system from https://www.virtualbox.org/wiki/Downloads.
  3. Download the VM image: EPICSMeeting2022.ova (large file, around 8GB).
    Significant updates:
    2022-01-16: USPAS version, Training.ova (around 5GB).
    2022-08-30: EPICS Meeting version, contains updated versions and Channel Finder example
  4. Start VirtualBox, invoke the menu 'File', 'Import Appliance...'
  5. Select the *.ova file that you just downloaded, press 'Continue'.
  6. On the next page, you may adjust the number of allocated CPUs and RAM. Try CPU: 4 , RAM: 6029 MB. Press 'Import'.
  7. In the Virtual Box program, you should now see the imported virtual machine.
  8. Start the VM by double-clicking on it. After about 10 seconds, "Ubuntu" Linux should start up. After about a minute, you should see a desktop.
    If you are not automatically logged in, log in as user 'training' with password '$training'.
    If you get a message about installing updates, cancel it.
  9. Open a terminal by clicking the terminal icon in the left top corner. Inside the terminal, type "selfcheck" followed by return/enter. The result should be a few lines all ending in "OK".
  10. To close the VM, open the drop-down at the right edge of the desktop menu bar which includes a "power off" option .

In case of problems, see VirtualBox FAQ. Here are some common issues:

The graphics are generally slower than a comparable desktop setup without VM. For example, running x11perf -all can result in a very sluggish GUI response.

As you resize the running VM window, the Linux desktop should resize accordingly. The desktop will respond a little quicker to mouse moves etc. if the desktop size is kept smaller. On high-DPI monitors, the desktop migh appear too small to read. As you increase the window size, the desktop will grow but fonts will still be small, until the desktop eventually turns black as the VM window exceeds a certain size. If that happens, reduce its size, and use the Menu View, Virtual Screen 1, Scale To 200% to enlarge it.

On Windows and Linux laptops, double-check that 64 bit guest support is enabled.

On Mac OS X, security restrictions may complicate the Virtual Box installation, for example causing an error message "Kernel Driver Not Installed" when starting Virtual Box for the first time. Open System Preferences, Security & Privacy, and in the General tab there should be a message "System software from developer 'Oracle ...' was blocked." Press "Allow", and try starting Virtual Box again (see video of this). Upon further starts of VB, there may be additional dialogs requesting that you adjust settings under Security & Privacy related to disk, accessibility etc., which you need to handle as they appear. Eventually, Virtual Box should start without further ado.

In case your keyboard is different from an English (US) layout, click on the "9-dot"-button in the bottom left corner of the desktop to show applications, and then click "Settings". Find the "Region & Language" section, and note the "Input Sources". Click the "+" button, "...", scroll to bottom, "Other", then locate for example "German". From now on you will see a drop-down icon in the upper right of the desktop to switch between English (US) and the added keyboard layout.

At the time of this writing, the current version of Vitual Box was 6.1. Newer versions should generally be OK or even better, but in case of issues follow the "..older builds" link on the Virtual Box web site to fetch version 6.1.


00 Linux (PDF) (PPT)
01 Overview (PDF) (PPT)
02 EPICS Database (PDF) (PPT)
02e EPICS Database Exercises (PDF) (PPT)
03 User Interfaces (PDF) (PPT)
04 CS-Studio (PDF) (PPT)
04a DataBase UI First Steps (PDF) (PPT)
05 Display Builder (PDF) (PPT)
06 Display Web Runtime (PDF) (PPT)
07 makeBaseApp (PDF) (PPT)
08 Stream Device (PDF) (PPT)
08l Stream Device Lab (PDF) (PPT)
09 Autosave (PDF) (PPT)
09l Autosave Lab (PDF) (PPT)
10 Channel Access (PDF) (PPT)
10a CA vs Records vs CAS (PDF) (PPT)
11 CA Security (PDF) (PPT)
11l CA Security Lab (PDF) (PPT)
12 EPICS Database Updates (PDF) (PPT)
13 EPICS Automation (PDF) (PPT)

14 Sequencer (PDF) (PPT)
14l SequencerLab (PDF) (PPT)
15 Allen Bradley PLCs (PDF) (PPT)
16 AreaDetector (PDF) (PPT)
17 DeviceSupportIntro (PDF) (PPT)
17b BasicDeviceSupport (PDF) (PPT)
17c Device Support Problematic (PDF)
17d Custom Device Support VME (TXT)
18 Asyn (PDF) (PPT)
19 Archive (PDF) (PPT)
20 Alarm System (PDF) (PPT)
20a Alarm Guidelines (PDF) (PPT)
20b DB Interlocks (PDF)
21 Busy Record (PDF) (PPT)
21l Busy Record Lab (PDF) (PPT)
22 Python CA Client (PDF) (PPT)
23 Python IOC pcaspy (PDF) (PPT)
23 Python IOC pydevice (PDF) (PPT)
24 PV Access (PDF) (PPT)
25 PVA Gateway (PDF) (PPT)
26 Channel Finder (PDF) (PPT)

Record Reference Manual (Older PDF), (R7-0-6)