OpenEtherCATsociety/SOES logo

OpenEtherCATsociety/SOES

Free

Simple Open Source EtherCAT Slave

FreeFree tier
Type
Open Source
Company
OpenEtherCATsociety

About OpenEtherCATsociety/SOES

SOES (Simple OpenSource EtherCAT Slave Stack) is an opensource slave stack written in C. It is designed to be easy to use and provides a small footprint, making it a good alternative to more complex EtherCAT slave stacks. The stack includes features such as an address offset based HAL, mailbox with data link layer, CoE object dictionary, SDO read/write (including segmented transfers), fixed and dynamic PDO mapping, FoE with bootstrap template, support for little/big endian targets, polling/interrupt modes, SM synchronization, and DC sync0/sync. The project is intended for learning and practical use in industrial automation and embedded systems. Note: EoE support is still in the TODO list.

Key Features

Address offset based HAL for easy ESC read/write access via any interface
Mailbox with data link layer
CoE object dictionary
SDO read/write for all sizes including segmented transfers
Easy portable C-code suited for embedded applications
Fixed and/or dynamic PDO mapping
FoE with bootstrap template
Support for Little and Big endian targets
Run polling, mixed polling/interrupt or interrupt
Support for SM synchronization

Pros & Cons

Pros
  • Open source with permissive license
  • Small code footprint, suitable for resource-constrained devices
  • Easy to use and portable C code
  • Comprehensive feature set including CoE, FoE, SDO, PDO mapping
  • Supports multiple operation modes (polling, interrupt, mixed)
  • DC synchronization support for distributed clocks
Cons
  • EoE (Ethernet over EtherCAT) not yet implemented (listed as TODO)
  • Documentation may be incomplete or outdated (update documentation is TODO)
  • Last release (3.1.0) was in February 2021, potentially lacking recent updates
  • Only provides slave functionality, not master

Best For

Industrial automation EtherCAT slave developmentEmbedded systems requiring real-time communicationLearning and understanding EtherCAT slave protocolPrototyping and testing EtherCAT networks

FAQ

What is SOES?
SOES stands for Simple OpenSource EtherCAT Slave Stack. It is an open source EtherCAT slave stack written in C that offers a small footprint and easy usability, intended for learning and practical use.
What features does SOES support?
SOES supports address offset based HAL, mailbox with data link layer, CoE object dictionary, SDO read/write (including segmented transfers), fixed/dynamic PDO mapping, FoE with bootstrap template, little/big endian targets, polling/interrupt modes, SM synchronization, and DC sync0/sync. EoE is listed as a future TODO.
Is SOES suitable for commercial use?
The repository is licensed under a license (viewable on GitHub) and is open source. The project description states it is a good alternative to more complex stacks, suggesting it can be used in commercial products, but users should verify license terms.
What programming language is SOES written in?
SOES is written primarily in C (97.5% according to the repository language breakdown), with some CMake support for building.
How can I get started with SOES?
The README encourages users to study the source code to understand how an EtherCAT slave functions. The repository includes example applications in the applications directory and a CMake build system. Documentation updates are listed as a TODO, so users may rely on source code comments and examples.