You can read more about this and other Esmacat tutorials on the official Esmacat website. You can also learn more about us on our main website.

Detailed documentation of the codes and steps for this tutorial can be found here.


In this tutorial, you will learn how to set up and use the EtherCAT Arduino Shield by Esmacat (EASE) Slave device on top of an Arduino subsystem with a Motor Shield.

EtherCAT Arduino Shield by Esmacat (EASE):

EASE is an EtherCAT slave that connects to an EtherCAT master (PC/ Laptop/ Dedicated Master devices like the Esmacat Master S and Esmacat Master C. It can be stacked on top of Arduino, Arduino-like boards and Arduino Shields. This shield allows high-speed communication with an industry-standard EtherCAT protocol for high-performance robotic applications.


Crowd Supply Campaign Page:

More info:

This shield has 8 registers that can be used to send/receive data between devices via ethernet cables attached to the shield.

Suggested Reading: EASE Datasheet.

Motor Shield:

The Adafruit Motor Shield is a stackable motor shield that allows up to a maximum of 2 Servo motors, 4 DC motors or 2 Stepper Motors to be controlled using a single shield. By configuring the shield for our requirement, one can control the motors as needed. In this tutorial, 1 servo motor, 1 dc motor and 1 stepper motor is controlled as a proof of concept.


Suggested Reference: Adafruit Motor Shield V2 datasheet.

Hardware Connections:

The primary hardware components include,

  • EtherCAT slave (EASE with Arduino)
  • EtherCAT Master (PC/ Laptop)
  • Power Over Ethernet (POE Injector)
  • Motor Shield
  • Motors
  • Ethernet cables and
  • DC Adapter (for POE)
  • Power Source (battery to power the motors)

Since EASE uses a POE injector, there is no need to power the Arduino boards separately. EASE can power the board through EtherCAT!

The connections are as shown in the two schematics attached in the "Schematics" section of this tutorial. "The Hardware setup schematic" gives an overview of the connections to be made while the "Physical connection schematic" shows the setup once all the connections are made.


  • Make sure the Ethernet connections are fit tightly into the sockets. (Loose connections may lead to the slave device not being recognized.)

Required Libraries:

There are two libraries that will be used for this tutorial.

  • An EASE Library for Arduino to communicate with the Arduino subsystem.
  • An Esmacat Master Library for the master (PC) to communicate with the EASE slave device.

The link to both the libraries have been included under the Code section. Install these libraries to get started with the coding part.

Refer to the links below to get more detailed step by step help with installing these libraries.

Suggested Reading: EASE Master Software structure.

Suggested Reading: Getting started with EASE.

Software :

The software required for this tutorial involves coding for

  • the Esmacat Master and
  • the Arduino.

Programming the Esmacat Master:

Open Visual Studio or any other (IDE) and copy all the 4 C++ codes available from the Code section (source files starting with ease_master_motor_control/) into a new project folder and build the source code.

Refer to the links below to get more detailed step by step help with building source codes in Ethercat Master,

The following sections describe them in detail.

Suggesting Reading: Getting started with the Esmacat Master (Windows).

Suggesting Reading: Getting started with the Esmacat Master (Linux).

Coding the Arduino:

Open the Arduino IDE and create a new sketch. The complete code for this tutorial is available under the Code section within the "Arduino with Ease and MotorShield". Copy and paste the code into the sketch.

Compile and Upload this code into the Arduino board.

Note: Make sure you check whether the Board and Port are chosen correctly in the IDE.

Running the Master Code:

On running the master code you get a result similar to the following,



By now you have successfully programmed the Arduino and Esmacat master. Specific motors should rotate according to the master code similar to the GIF attachment at the start of this tutorial. A video demo can be seen at the YouTube link below.

Output on Master Terminal:

The image below shows an example result in which the current motor selected and the button pressed are printed on to the Master terminal.


Final Notes: A detailed step by step tutorial for this project can be found in the document attached below.

Suggested Reading: EASE with Motor Shield tutorial document.