LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

EtherCAT realtime HAL driver


This driver tries to provide an easy-to-expand framework for the connection of LinuxCNC to EtherCAT devices. Some of the often used Beckhoff devices like digital and analog I/O, encoder input and pulse train output are already supported just as the [Stöber] MDS5000 series of servo drives. The driver is based on [IgH's EtherCAT master] and builds a glue layer like the etherlab component. It consists of an userspace component for configuration and a RT HAL module for the data processing.

The config module reads in and parses a xml config file and provides a prepared form of configuration data via shared memory to the RT part. The RT module is organised in a global part that is common to all submodules and a .c and .h file for each supported (class off) hardware device.

Since this driver is sill under development you can find the code [here]. Feel free to test or review the code and send me suggestions and hints. There is a discussion thread about this driver in the [forum].

Currently supported devices

Devices with an asterisk (*) are tested, all other devices are supported due to an equal process image. If you have hardware that is supported and not tested and you like to test it or you have hardware that is not supported yet und you like to support development for this device, just drop me a line.


If you are using the current LinuxCNC Distribution (LCNC 2.6 Debian Wheezy based at time of writing) the installation is pretty simple:

  deb http://repo.modusoft.de/linuxcnc/wheezy ./
  The etherlabmaster should be installed automaticaly.
  Currently you will get a warning about missing key.
  this sould show your connected slaves


If you like to build the driver by you own, you could just clone the git

and do a


You need etherlabmaster-dev (from the repos mentioned above) and linuxcnc-dev to be installed for this.


You can find some examples under /usr/share/linuxcnc-ethercat/examples

... to be continued

( [Configuration tutorial for IndraDrives.] )


LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions
Last edited May 26, 2015 8:48 am by Koppi (diff)
Published under a Creative Commons License