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

Limited items in stock

View Purchasing Options
Feb 21, 2020

Project update 4 of 9

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

2. Required Software

3. Building the Project

4. Running the Application

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


example, that would be arduino_shield.exe:

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

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.

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:

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!

Sign up to receive future updates for EASE.

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