// the find
OpenEtherCATsociety/SOES
Simple Open Source EtherCAT Slave
SOES is a C implementation of an EtherCAT slave stack targeting embedded systems — microcontrollers and small Linux boards. It implements the full EtherCAT slave state machine plus CoE, FoE, and EoE mailbox protocols. If you're building custom industrial I/O hardware that needs to speak EtherCAT, this is one of the few open-source options that isn't a commercial SDK with licensing strings attached.
HAL abstraction is well-designed — you swap in your ESC hardware by implementing a handful of read/write functions, and the stack above is untouched. Multiple hardware targets already exist (LAN9252 on Linux/RPi, XMC4, TI AM335x, K2G), so porting to a new board is copy-and-modify rather than starting from scratch. CoE object dictionary support with SDO segmented transfers is solid for a free stack — most industrial devices need this and it's often the piece that's missing or broken in hobby projects. CMake build system is clean and the library can be pulled in as a subdirectory, which matters when you're dropping this into an existing RTOS or bare-metal build.
Documentation hasn't been updated in years and the TODO in the README still says 'update documentation' — the tutorial.txt covers the basics but anything beyond a simple PDO slave requires reading the source. Only one ESC chip family (LAN9252) has Linux HAL support; if you're using a different ASIC (ET1100, ET1200, AX58xxx) you're writing the HAL yourself with minimal guidance. EoE is present but the sample application is listed as incomplete in the README, so Ethernet-over-EtherCAT is production-risky. The stack is single-threaded by design which is fine for simple slaves, but anything with non-trivial application logic will require you to architect the threading yourself since there's no RTOS integration layer provided.