Getting Started with the Adeeb EtherCAT Master on macOS
Download, configure, and run the Adeeb EtherCAT Master on macOS, then scan the network and command a servo over EtherCAT.
May 12, 2026 · 5:26
Watch on YouTube . The written walkthrough below covers the same material in detail.
This walkthrough shows how to drive a Yaskawa EtherCAT servo drive and motor from a MacBook Air using the Adeeb EtherCAT Master. You will deploy the trial release, identify and configure the network interface, build the example application, and command the servo while tuning the cycle time.
Prerequisites
- A Mac running macOS with a free USB-C port.
- A wired Ethernet path to the EtherCAT slave. This demo uses a Belkin Ethernet-to-USB-C adapter connected to the Mac.
- A Yaskawa EtherCAT servo drive and motor on the bus.
- A C toolchain (GCC) for building the example, plus Visual Studio Code or your editor of choice.
Hardware setup
The hardware path is deliberately minimal. Run an Ethernet cable from the EtherCAT slave into the Belkin Ethernet-to-USB-C adapter, then plug the adapter into the Mac. No additional interface card or real-time hardware is required.
Downloading the release
The Adeeb EtherCAT Master trial releases are published on the Adeeb Robotics downloads page. Each trial runs for two hours at a time.
- Open the downloads page and locate the macOS release of the EtherCAT Master.
- Download and extract the archive.
- Open the extracted folder in Visual Studio Code.
The macOS release ships with the same main.c example application and the same configuration file used on Linux, so anything you have already done on Linux carries straight over.
Identifying the network interface
Before the master can find slaves, you have to tell it which interface the EtherCAT bus is on. Determine the interface name empirically rather than guessing:
-
Open a terminal and list the interfaces:
ifconfig -
Note the candidate port. In this setup it appears as
en7. -
Unplug the Ethernet cable carrying the EtherCAT traffic and run
ifconfigagain. Theen7entry disappears, confirming thaten7is the correct interface. -
Reconnect the cable.
Configuration
Edit the configuration file that shipped with the release to pin the master to the interface you just identified.
- Set the port to
en7. If you leave the port unset or wrong, the master will not find any EtherCAT slaves on the bus. - The update rate defaults to a cycle time of 4000 microseconds. This is the maximum cycle time the Yaskawa slaves accept and the safest choice for sustained operation on macOS.
You can also rename the configuration file if you prefer; the build-and-run helper accepts the config filename as an argument, so adjust it there to match.
Building and running
The release includes a helper script that builds and runs the application in one step. The script:
- Deletes the previously built application binary.
- Compiles
main.cwith GCC, linking in the EtherCAT library along with supporting dependencies such as the math and threads libraries. - Runs the resulting binary, passing the configuration file as an argument.
Run the helper with elevated privileges, because the application opens the raw Ethernet interface:
sudo ./run.sh
With the default 4000 microsecond cycle time, the motor turns, but slowly.
Tuning the cycle time
The cycle time directly governs how fast the servo can be commanded. To speed up motion, stop the application and lower the cycle time in the config file.
| Cycle time | Relative rate | Notes |
|---|---|---|
| 4000 µs | Baseline | Slowest; maximum allowed by the Yaskawa slaves; safe for extended runs on macOS |
| 1000 µs | 4x baseline | Practical lower bound on macOS; motor visibly spins faster |
Set the cycle time to 1000 microseconds and rerun the helper. The servo now turns roughly four times faster.
Pushing below 1000 microseconds on macOS tends to trigger an A.12 alarm on the slave, because macOS is not a deterministic operating system and cannot guarantee that each frame is delivered on time. The 4000 microsecond setting has been tested for extended periods on macOS without issue.
Reading the diagnostics
Because macOS does not provide deterministic scheduling, expect timing warnings in the output, for example late frames and a “receive time took much greater than 100 microseconds” warning. The firmware tracks all timing in the cyclic loop and reports running statistics on latency, runtime, and drift, so you can see exactly how the bus is behaving under load.
Next steps
The example application uses the same APIs across Linux and macOS. For a deeper explanation of what each API in main.c does, see the Linux walkthrough, then continue with the companion article on running the controller on macOS.
- Grab the trial release from the downloads page.
- Review the Adeeb EtherCAT Master product details.
- Continue with Running the Adeeb Robot Controller on macOS.
- Request a demo to evaluate the master on your own hardware.