Attending Pack EXPO 2026 CHICAGO? See our delta robot in action! Visit us at North Hall N-5584
Adeeb Robotics
Training Series 6 / 8
Adeeb Robot Controller · Windows

Running the Adeeb Robot Controller on Windows

Deploy the Adeeb Robot Controller on Windows and drive a Delta robot through the Python API.

May 21, 2026 · 7:45

Watch on YouTube . The written walkthrough below covers the same material in detail.

This is the sixth video in the Adeeb Robotics training series. It walks through deploying the Adeeb Robot Controller on Windows 11, configuring the EtherCAT interface, and commanding a single servo joint through the arc Python module — the same workflow shown in the Linux and macOS videos, adapted to the Windows platform.

Hardware setup

The demo runs on an Intel NUC mini PC booting Windows 11 from an external solid-state drive — a second OS alongside an existing Linux install on the same NUC. The NUC ships with 12 CPU cores, twice the 6 cores of the demo laptop, and that headroom matters: the Adeeb Robot Controller runs AI vision workloads that are computationally expensive, so the controller needs the additional cores to run reliably.

The Windows install is also tuned for deterministic operation. Microsoft publishes a guide for configuring Windows for IoT real-time operation, linked in the video description. Even so, a real-time-configured Windows install is not a true deterministic operating system, so keep background CPU load low while the controller is running to avoid runtime errors.

Downloading the release

The trial build is published on the Adeeb Robotics downloads page.

  1. Open the downloads page and locate the Adeeb Robot Controller package.
  2. Select the 2-hour free trial build for Windows.
  3. Download the package — the transfer takes a couple of minutes.
  4. Extract the folder and open it in your editor (the demo uses Visual Studio Code).

What’s in the package

The Windows build ships with a number of DLL dependencies bundled alongside the controller program. The package contents:

ItemPurpose
Controller executableThe Adeeb Robot Controller program itself.
READMEInstructions for running the controller.
ESI folderEtherCAT slave description files supplied by the device vendor.
Python samplesExample Python scripts, including the Pack Expo demo used here.
Sample config filesIncludes the Delta robot config used in this walkthrough.

The Pack Expo demo (pack expo demo) is the same Python script used in the Linux and macOS training videos, and delta config is the Delta robot configuration file referenced throughout.

Configuration

Selecting the Ethernet interface

The controller binds to a named Ethernet adapter. On Windows, the controller does not use the adapter names reported by ipconfig — those names are ambiguous and not descriptive. Instead, it uses the adapter names provided by the controller library.

If you launch the controller with an interface name that does not exist, it will not start and the terminal prints the list of valid library-supplied adapter names to choose from. If you are unsure of the adapter name, launch with any value and read the correct name from that prompt, then set it in the config.

Before launching, close Visual Studio Code to free CPU and memory. Reducing background load lowers the chance of runtime errors, because the real-time-tuned Windows install is still not an ideal deterministic OS.

Launching the controller

From the downloads folder, enter the install folder and launch the controller with the Delta config:

.\controller.exe delta config

When the controller reports the MAC address of the interface, it has found the adapter and is running. With the controller up, open the Python scripts folder and run the Pack Expo demo:

python "pack expo demo.py"

The motor begins turning. At this point the controller is commanding motion as though a full Delta robot were attached, even though only a single servo and motor are on the bench.

Commanding a single joint

To make the motor turn as a single robot joint rather than a full-kinematics axis, stop the demo and edit the Delta config.

  1. Set the gear ratio to 1. The motor shaft then turns by the same amount the robot joint would turn, rather than the multiplied amount the default ratio produces.
  2. Reset the servo drive so the position returns to zero. The encoder is configured as an incremental encoder for ease of use, so its position automatically returns to zero on reset. This is necessary because the current position may now sit outside the joint limits.

Relaunch the controller and rerun the demo.

Handling a position-outside-limits error

On rerun, the controller may report that the position is outside the limits. This happens when the combination of offsets in the config file produces a starting position beyond the joint limits.

The fix shown is to set the encoder offset position to 0, which guarantees the position starts from zero.

Warning: on a real system, set the encoder offset position with extreme care. This value defines your robot zero. If it is wrong, the robot can crash on startup.

With the gear ratio at 1 and the offset zeroed, the motor shaft turns far less than before — it now moves exactly as much as the corresponding robot joint would, confirming the single-joint configuration is correct.

Next steps

from arc import *
  • Request a demo to see the controller driving a full multi-axis Delta robot.

Next in the Training Series

Part 7 of 8

Commanding Axis Motion with the Adeeb Robot Controller API