Author: Dirk Zimoch
Phone: +41 56 310 5182
Updated: 20.04.2023

Printer friendly version

[Validate HTML][Validate CSS]

EPICS software

This is a collection of EPICS drivers and other software that have been developed or improved at the SLS. The list might be incomplete or outdated. Use it at your own risk. We do not take any responsibility for the functionality of the software. That means, if a feature is missing you might contact the author. But there is no guarantee when or even that the software will be fixed. If the software has a bug, it's the same. If the bug causes damage or injury, it's your problem.

This page is totally outdated and not really maintained.
The software may not compile outside the PSI environment, maybe not even at PSI.
You have been warned.


Drivers and Device Supports

Compatibility Header

Download the compatibility header file that translates many EPICS R3.14 functions back to R3.13/vxWorks and allows to compile (some) R3.14 code for R3.13 systems. Documentation is included in the file.

Digital Power Supply Control

The PSI Electrical Engineering Department developed a DSP regulated power supply. The interface to the power supply controller is by a fast optical fiber link via a in-house developed Industry Pack module. The VME-EPICS driver for this module can be downloaded from it's own web-side:


EPICS support for encoder cards manufactured by Kramert GmbH is documented under:

Firewire camera support

This is a R3.14 device support for Firewire (IEEE1394) cameras connected to a Linux PC.

General Purpose Memory Mapped Device Driver

The GPMM driver is an EPICS generic driver to deal with any type of the VME memory mapped card. It allows easy integration of new cards to EPICS.


The generalTime driver is a timekeeper for EPICS which manages a list of prioritized time providers. Find more info here.

IOC Monitoring

This is an IOC monitoring application that runs on the IOC (EPICS + vxWorks) and monitors the available resources. It extends the current vxstats functionality and provide the data in a more readable way. For example, instead of showing a string that includes all the boot parameters, we have separated each individual boot parameter and provide it as an independent EPICS channel. Moreover, it additionally report network interface statistics and channel access links.

IOC with built-in Octave core

It is an IOC which has a built-in OCTAVE engine. The EPICS channels, within the IOC-OCTAVE server, can dynamically create OCTAVE variables and use OCTAVE functions.

PC Monitoring

A simplified version of the "IOC Monitoring" application, running on Linux hosts.

PLC communication

This driver is intended to connect a Siemens S7 PLC (programmable logic controller) via TCP/IP to an EPICS IOC. However, it can be used for any device sending and receiving blocks of process variables (PVs) in the same way.


This is a generic driver to talk to "byte stream" (i.e. ASCII strings) controlled devices. The driver is built on top of the "asyn" driver. Thus, it supports any bus system that is supported by asyn (e.g. serial line, TCP socket, GPIB). It allows to specify the communication protocol without the need to do C coding. The driver is available on GitHub

regDev Generic Register Device Driver

This is a generic driver for abitrary register mapped devices. It combines features of the older GPMM and of asynDriver. The driver is available on GitHub

VHQ Programmable Power Supply

This is a VME hardware module which is a programmable High Voltage power supply in 2 slot width. It supports a variable rate of change of output voltage, and has switchable polarity. It includes integrated protection and control circuits with output overload and short circuit protection. It has a SHV connector on the front side for High Voltage connection. Documentation is available here VHQ Programmable Power Supply.

iocsh Utilities


This replaces the EPICS iocsh with a Tcl shell. Tcl has much more programming capabilities. All iocsh features are fully supported.

VxWorks Utilities

Under construction ...

Graphical User Interfaces


Simple tcl/tk program to browse log-files generated by the iocLogServer. A wrapper script "iocLogger" to start/stop the iocLogServer is provided, too. The programs need some customization to the local setup:

  • "iocLogBrowser": "subnets" are just files from different iocLogServers. All iocLogServers should write to the same directory.
  • "iocLogger": adjust EPICS_IOC_LOG_FILE_NAME, EPICS_IOC_LOG_FILE_LIMIT, LOGSVRNAME, PATH and LD_LIBRARY_PATH (the latter two only if you want to call the script from a cron job.)

Useful Scripts

Under construction ...
Author: Dirk Zimoch   Phone: +41 56 310 5182   Email:   Updated: 20.04.2023   Source: /afs/