Link
Link is an abstraction of the physical communication path with AUTD3 devices.
Link List
Section titled “Link List”- TwinCAT — Link that uses Beckhoff TwinCAT 3
- echocat — EtherCAT Link dedicated to AUTD3
- EtherCrab — Link based on EtherCrab
- SOEM — Link based on SOEM (GPL-3.0-only)
- Remote — Link for remote connections
A Link is constructed by passing a Link Option to Client::open. The Option specifies the connection target, synchronization parameters, and so on.
The send/receive interface seen from the Client is common across Link implementations.
Therefore, swapping the link does not require changing the higher-level code.
Performance
Section titled “Performance”The rough performance trends per Link and OS combination are shown below. The values depend heavily on the NIC, kernel settings, OS tuning, and so on, so treat them only as a rough guide.
| Metric | TwinCAT (Windows) | echocat (mac/Linux) | echocat (Windows) | EtherCrab (mac/Linux) | EtherCrab (Windows) | SOEM (mac/Linux) | SOEM (Windows) |
|---|---|---|---|---|---|---|---|
| Throughput | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| Latency | ⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| Stability | ⭐⭐⭐ | ⭐⭐ | ⭐ | ⭐⭐ | ⭐ | ⭐⭐ | ⭐ |
For reference, the measured values for each environment are listed below.
TwinCAT (Windows)
Conditions
- OS: Windows 11 Pro 25H2
- NIC: Intel I219-LM
- Devices: 2
throughput (100000 sends, streaming)
cmd / sec : 815.15byte / sec : 510286.19latency (10000 sends, stop-and-wait)
mean : 9.261 msp50 : 9.009 msp95 : 11.459 msp99 : 12.045 msmin : 7.129 msmax : 17.021 msEtherCrab (Linux)
Conditions
- OS: CachyOS 7.1.3-2
- NIC: Intel 82574L
- Devices: 2
throughput (100000 sends, streaming)
cmd / sec : 996.46byte / sec : 623784.98latency (10000 sends, stop-and-wait)
mean : 5.000 msp50 : 4.999 msp95 : 5.006 msp99 : 5.021 msmin : 3.993 msmax : 6.032 msEtherCrab (macOS)
Conditions
- OS: macOS Tahoe 26.5.2
- NIC: Realtek RTL8153 (USB to Ethernet)
- Devices: 2
throughput (100000 sends, streaming)
cmd / sec : 993.96byte / sec : 622218.07latency (10000 sends, stop-and-wait)
mean : 4.999 msp50 : 4.999 msp95 : 5.124 msp99 : 5.160 msmin : 3.897 msmax : 6.020 msSOEM (Linux)
Conditions
- OS: CachyOS 7.1.3-2
- NIC: Intel 82574L
- Devices: 2
throughput (100000 sends, streaming)
cmd / sec : 999.56byte / sec : 625723.62latency (10000 sends, stop-and-wait)
mean : 5.002 msp50 : 4.999 msp95 : 5.005 msp99 : 5.017 msmin : 3.855 msmax : 6.142 msSOEM (macOS)
Conditions
- OS: macOS Tahoe 26.5.2
- NIC: Realtek RTL8153 (USB to Ethernet)
- Devices: 2
throughput (100000 sends, streaming)
cmd / sec : 998.05byte / sec : 624777.32latency (10000 sends, stop-and-wait)
mean : 4.999 msp50 : 4.999 msp95 : 5.037 msp99 : 5.093 msmin : 3.996 msmax : 5.726 ms