---
title: "eOS (by sstaub)"
url: "https://maker.wiznet.io/rena/projects/eos-by-sstaub/"
markdown_url: "https://maker.wiznet.io/rena/projects/eos-by-sstaub/md"
type: "UCC: User Created Content"
author: "Stefan Staub"
author_url: "https://github.com/sstaub/eOS"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "Stefan Staub"
original_url: "https://github.com/sstaub/eOS"
license: "MIT license (MIT)"
published: "2023-02-27"
language: "en"
tags: ["Arduino", "W5500"]
likes: 6
views: 307
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# eOS (by sstaub)

> An object orientated library for Arduino to control ETCs EOS Family Consoles with OSC over USB and Ethernet UDP

Original author: Stefan Staub (source: https://github.com/sstaub/eOS)

## Article

An object orientated library for Arduino to control ETCs EOS Family Consoles with OSC over USB or Ethernet UDP. The goal of the library is to have a smart toolbox to create your own boxes which covers your needing by endless combinations of hardware elements.

...

## Ethernet configuration and initialization

The Ethernet functionality is now independent from the hardware port (e.g. WIFI or other Ethernet hardware than WizNet W5500) and libraries. Behind the scenes it uses the virtual Arduino UDP class.

Before using Ethernet there a some things that must be done. It can be different between the diverse libraries.

1. Import the necessary #defines e.g.

```
#include "Ethernet3.h"
#include "EthernetUdp3.h"
```

1. You need to define IP addresses and ports

- **mac** - You need a unique MAC address, for Teensy you can use the TeensyID library on this GitHub site

- **localIP** - You need a static IP address for your Arduino in the subnet range of network system

- **subnet** - A subnet range is necessary

- **localPort** - This is the destination port of your Arduino

- **eosIP** - This is the console IP address

- **eosPort** - This is the destination port of the EOS console The EOS constructor name **eos** is fixed, don't change them!

```
// configuration example, must done before setup()
uint8_t mac[] = {0x90, 0xA2, 0xDA, 0x10, 0x14, 0x48};
IPAddress localIP(10, 101, 1, 201);
IPAddress subnet(255, 255, 0, 0);
uint16_t localPort = 8001; // on this port Arduino listen for data
// in EOS Setup > System > Showcontrol > OSC > OSC UDP TX Port
IPAddress eosIP(10, 101, 1, 100);
uint16_t eosPort = 8000; // on this port EOS listen for data
// in EOS Setup > System > Showcontrol > OSC > OSC UDP RX Port
```

1. You need an EOS and UDP constructor, must done before setup(), don't change the name of the constructor

```
EthernetUDP udp;
EOS eos(udp, eosIP, eosPort);
```

1. In the beginning of setup() you must start network services.

```plaintext
Ethernet.begin(mac, localIP, subnet);
while(!udp.begin(localPort)); // wait for a connection
```

**Original link: **[**https://github.com/sstaub/eOS**](https://github.com/sstaub/eOS)

---

Source: https://maker.wiznet.io/rena/projects/eos-by-sstaub/
