MultiCAN is the multi protocol support


This is the new version of the MultiCAN page. It may be incomplete. If you are missing something here have a look at the old no longer maintained MultiCAN page.



The copyright is owned by the Helmholtzzentrum Berlin für Materialien und Energie GmbH, see License for Software Distributed by the HZB.

CAN Bus Interface cards

Currently we support the VME-CAN2 and VME-CAN4 interface cards by esd germany. MultiCAN can support other CAN hardware if you provide an SCI compatible layer.


In order to implement inhibit times, MultiCAN uses the almLib. This is a support module that directly accesses the timer chip of the VME-CPU board. Currently almLib supports the MVME 162 and the MVME 2100 CPU cards by motorola.

Software Distribution

darcs repositories

You can get a copy of our darcs repositories with these commands:

for EPICS 3.13:

darcs get
darcs get
darcs get
darcs get

for EPICS 3.14:

darcs get
darcs get
darcs get
darcs get

You can browse the darcs repositories here:

mercurial repositories

We also maintain mercurial repositories that are created by converting the darcs mcan repositories. You can clone them:

hg clone
hg clone
hg clone
hg clone

or you can browse them here:

How you can contribute

Our development takes place in the darcs repositories, so if you want to have your changes commited in our repositories, it may be easier if you use darcs. But we can also convert mercurial bundles back to darcs.


MultiCAN has been in use at the BESSY II storage ring for over 10 years now. Unfortunately the documentation has almost the same age.

Here is the original documentation and design document (pdf). It is also available in html.

Additionally, these documents describe specific parts of the system:

How to use CANOpen SDO objects in MultiCAN.
The simple CAN interface, an API for accessing the CAN bus.
The CAN bus driver for VME-CAN2 and VME-CAN4 cards.