Running EtherCAT in Real-Time on Linux:
A Practical Guide to EC-Master on Linux
Introduction
EtherCAT is one of the most demanding industrial fieldbus protocols in terms of timing requirements. Running a high-performance EtherCAT MainDevice (Master) stack on a general-purpose operating system like Linux presents real challenges — but with the right approach, Linux can deliver the deterministic behavior that industrial automation demands.
This article walks through how to optimize a Linux system for EtherCAT communication using the acontis EC-Master stack, what Ethernet driver architectures are available, and what real-world performance numbers look like across a range of popular hardware platforms.
EC-Master on Linux
acontis EC-Master is a professional EtherCAT MainDevice protocol stack available as a software library and development kit. It supports a wide variety of operating systems and hardware platforms, and is widely deployed in industries such as robotics, machine building, automation, and medical technology. The stack communicates with EtherCAT SubDevices by sending and receiving EtherCAT frames via a standard Ethernet MAC controller, and supports advanced features like Distributed Clocks synchronization.
Designed to run entirely in Linux user space, EC-Master enables fast and convenient development while remaining GPL-compliant. To achieve extremely fast, high-speed update rates (short cycle times) that it is known for, the implementation must not use any blocking kernel functions (APIs) in the cyclic part. Combined with real-time user mode drivers, this architecture guarantees the highest possible deterministic real-time performance.
EC-Master EtherCAT MainDevice Software supports Linux on x86, x64, ARM, AArch64/ARM64, and RISC-V architectures. Due to its scalability and modular design, EC-Master can run on low-end systems ranging from a Cortex-M7 microcontroller to high-end Intel® Core™ i7 CPUs.
|
System |
Linux Kernel |
Linux Driver |
acontis Driver |
Avg [us] |
Min [us] |
Max [us] |
Jitter [us] |
|---|---|---|---|---|---|---|---|
| Intel PC i3-9100 | 6.18.0-rt3 #1 SMP PREEMPT_RT | --- / atemsys | emllIntelGbe | 1000 | 978 | 1020 | 22 |
| Nvidia Jetson Orin AGX | 5.15.148-rt-tegra #1 SMP PREEMPT_RT | ||||||
| CM5 | 6.12.34-v8-16k+ #4 SMP PREEMPT_RT | ||||||