Running the Adeeb Robot Controller on macOS
Deploy the Adeeb Robot Controller on macOS and connect to a Delta robot through the Python API, from trial download to first motion.
May 14, 2026 · 8:19
Watch on YouTube . The written walkthrough below covers the same material in detail.
This is the fourth video in our training series. It walks through deploying the Adeeb Robot Controller (ARC) on a MacBook Air, configuring it for an Adeeb Delta Robot, and commanding a first motion through the Python API. The same workflow applies to any Mac with an EtherCAT slave attached over Ethernet.
Prerequisites
The hardware setup is identical to the previous video in the series. You need:
- A MacBook (this walkthrough uses a MacBook Air) running macOS.
- An EtherCAT slave connected to the Mac over an Ethernet cable.
- A Belkin USB-C to Ethernet adapter, since the MacBook has no native Ethernet port.
- Administrator (sudo) access on the machine.
macOS is not a deterministic operating system. The controller will run, but expect latency warnings under interactive load — this is covered below and is expected behavior, not a fault.
Downloading the release
Open the Adeeb Robotics website and navigate to the downloads page. Under the Adeeb Robot Controller download section, locate the trial release for macOS and download it. The download takes a couple of minutes.
Once it finishes:
- Extract the archive.
- Open the extracted folder in your editor of choice.
The folder structure mirrors the Linux release and ships with several example configuration files.
Configuration
The release includes example configs for different robots. Use the Delta config, which defines an axis set and a Delta robot. A separate demo stand config is also included and is very similar; the two exist because the kinematic parameters differ slightly between the demo stand and the latest Adeeb Delta Robot release. For this walkthrough, use the Delta config.
Set the EtherCAT interface
Confirm the interface name in the config matches the port wired to the EtherCAT slave. On this system, EtherCAT runs on the Ethernet port EN7, so the config must reference EN7.
Axis and gear-ratio settings
The config defines the axis set. In this example only one axis is configured; the remaining axes are automatically converted into virtual axes.
To keep the motor from making excessive revolutions during a virtual run, set the gear ratio to 1. With a 1:1 gear ratio the motor will not spin through many revolutions.
Zeroing the joints for a virtual run
When running virtually, set the starting joint positions to zero so that every joint starts from a known zero. If you leave them non-zero, you can trip joint limits at runtime: on a Delta robot, some joints are only permitted negative values when other joints are positive, because of how the limits are coupled — especially when an RZ axis is present. Setting everything to zero avoids this for a virtual run.
On a real system, this is critical and handled differently. You must set the encoder offset correctly. There is an API to zero an axis, axis_0, which zeroes the axis at its current position. This is performed once, at commissioning. Adeeb robots ship with their axes already zeroed to prevent a crash — if the axes are not zeroed properly, the robot can crash on first motion.
Running the controller
The controller needs two terminals:
- One to run the backend server (the controller itself).
- One to run the Python scripts that communicate with the backend.
Start the backend server
The controller requires sudo, because it needs access to the Ethernet driver and to the data link layer for EtherCAT. Pass it a config when you launch it. If you do not pass a config, it falls back to defaults — no axes, no groups, and default values for every setting.
The first time you launch the controller, macOS may refuse to run it, reporting that it could not verify the binary for malicious software. To clear this:
- Right-click the binary and choose Open once.
- Acknowledge the security prompt.
After that, the controller runs without further prompts.
Latency warnings are expected
Once the controller is running, interacting heavily with the computer will affect deterministic performance. macOS is not a deterministic operating system, so you will see warnings about latencies exceeding their allowed values. This is normal and is fine as long as the drive has not raised any alarms.
Connecting via the Python API
The Python scripts live in the install’s Python scripts folder, and the install ships with a virtual environment. On macOS you generally need a virtual environment to run Python packages. The bundled environment already includes the requests package the scripts depend on, so no additional installation is required.
Activate the bundled environment, then run the script:
source venv/bin/activate
python pack_expo_demo.py
If you see a warning that the virtual environment was not generated during the current session, you can ignore it — the script still runs. The scripts use the arc module:
from arc import *
Commanding motion
Run the pack expo demo — the same demo shown on the Adeeb Robotics homepage from the expo. With the demo running, the configured axis turns as though a full Delta robot were executing the routine. There is no physical robot attached here; the motion is entirely virtual.
The demo’s first action is to home the robot. Because every joint was set to start from zero, this first move is a negligible trajectory and the controller reports a failure with error code 1010.
| Item | Value |
|---|---|
| Error code | 1010 |
| Meaning | A very small trajectory was dropped |
| Cause here | First motion (homing) from an already-zeroed state |
| Severity | Expected for this virtual run |
According to the manual — also available from the downloads page — error code 1010 indicates that a very small trajectory was dropped. Since the first move is a home command from a fully zeroed state, the trajectory is negligible and gets dropped. For this virtual run, that result is expected and harmless.
Next steps
- Browse the full release and trial downloads on the downloads page.
- Read the Adeeb Robot Controller product overview, or learn about the Adeeb Delta Robot.
- Continue the series with Using the EtherCAT master on macOS and Axis motion commands.
- Want to see it on real hardware? Request a demo.