by Harmonic Bionics, Inc.

Connect Arduino boards, Arduino-like boards, and Arduino shields with EASE

View all updates Feb 21, 2020

Deploying Esmacat Master Code; Funding Goal Reduction

by Esmacat

In this update, we will demonstrate how simple it is to build and execute the Esmacat Master software for EASE. You can think of this software as a way for multiple EASE boards (and other EtherCAT slaves) to communicate with one another by reading values from one slave and writing to another. Any EtherCAT master software will work with EASE, but we are focusing here on our own free and open source code.

Building & Executing Esmacat Master Code


First, let us describe how to set up and run our basic EASE example that is included in master software.

1. Dependencies

  • An editor, such as Visual Studio or QT Creator, with which to build the project
  • A base board IDE, such as the Arduino IDE, with which to program your Arduino Uno or whatever other board you have attached to EASE

2. Required Software

3. Building the Project

  • Start up your C++ editor of choice. In this example, we use Visual Studio. Navigate to the project directory. In this example, we are describing the Arduino shield project:

  • Build the Source Code for this project. In visual Studio this can be

done by clicking Build > Build All or by using the keyboard shortcut Ctrl+Shift+B:

  • When the build is successful, you should obtain a result similar to

the image below:

4. Running the Application

  • To run the application, use the command prompt or Terminal to

navigate to the directory where the output files are saved. They should be somewhere similar to the following directory:

  • Run the application by typing the <file_name>.exe command. In this

example, that would be arduino_shield.exe:

  • Select the appropriate Ethernet adapter from the list to begin program execution:

That’s it! It’s that simple to get started with the Esmacat Master software.

Writing a Simple Master Program

Next, we will describe how to code a simple master program with EASE.

1. Dependencies

The only files you will need to edit, when configuring your master software, are my_app.cpp and my_app.h. They are both in the my_project subfolder of the esmacat_applications folder. You can also edit the sample program mentioned above, but we recommend leaving that alone just in case you need it for reference.

2. Editing the Files

  • First edit the my_app.h file. In the private class, we will be

adding two instances of EASE since we will be using two EASE boards in our example. "ease_one" and "ease_two" are just names and can be changed to whatever you see like:

  • Switch to the my_app.cpp file to edit the project code. In

assign_slave_sequence, start with 0 and assign increasing numbers to each connected slave. In this example, ease_one is the first slave in the sequence, so it is assigned the number 0, and ease_two is the second, so it is assigned the number 1. These numbers should correspond to the order in which they are connected. Otherwise, the program will not run. This is the only case where order matters. Anywhere else, you can send data to or receive data from any EtherCAT slave, no matter where they are in the sequence.

  • Next, edit the loop function, which is similar to the loop

function in Arduino. Its code will run repeatedly. (The function labeled init, which is above loop, is similar to the setup function in Arduino. Its code will be run once in order to handle setup. In this example, we do not need to use the init function.) For the loop function, we will get the value of register 0 from ease_one and send that value to the 0 register of ease_two. To simplify debugging, the command terminal will also print the value:

  • Build and execute the code, as mentioned above. Because we are using the my_project folder, the folder location will be:


You should now be able to send a value from one EASE to another!

More in-depth documentation can be found on our website and on our Hackster.io page. Those documents explain the purpose of each function and lead you through a tutorial to help you get started with EASE!

Reducing our Funding Goal

We are interested in manufacturing and delivering EASE regardless of the outcome of this crowdfunding campaign. As a result, and in consultation with Crowd Supply, we have decided to reduce our funding goal to $1. As a result, those of you who have backed our campaign – or who back it over the next week – will receive your EASE products. Thank you for your support!

About the Author



$6,920 raised

of $1 goal

Funded! Order Below

Product Choices


EASE Board

One Arduino shield, in Uno form factor, with EtherCAT capabilities for use when connecting multiple Arduino boards


PoE Injector & Esmacat Master Transmission hub

A 24 VDC PoE Injector to power all EtherCAT slaves and to transmit data from the Esmacat Master. A single PoE Injector is necessary for most EASE configurations.


Harmonic Bionics, Inc.

The mission of Harmonic Bionics is to innovate the rehabilitation process with robotic technology. The company was founded in 2016 as a spin-off of ReNeu Robotics Lab at the University of Texas at Austin. We are actively developing a robotic platform for introduction into the clinical market, and we aim to revolutionize the fields of therapy for stroke and spinal cord injury. Our exoskeletons are already being tested in pilot clinical trials and are well known in the rehabilitation robotics research community.

Matthew Gutierrez

Youngmok Yun

Kalavati Bhashyam

Mouser Electronics

Component Provider

Arrow Electronics

Component provider


PCBA Manufacturer

See Also

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: