--- id: pysoem version: "1.1.13" license: MIT license_treatment: permissive maintenance: active --- # pysoem — Cython wrapper for the SOEM Library License: permissive · Maintenance: active · Downloads: 78.8K/mo ## What it is and what it does PySOEM wraps the Simple Open EtherCAT Master Library in Python via Cython, allowing developers to build EtherCAT master applications in Python rather than C. It handles the low-level complexity of EtherCAT protocol communication—including process data I/O, SDO (Service Data Object) read/write, EEPROM access, and FoE (Firmware over EtherCAT)—so you can focus on device testing and control logic. The package is distributed as pre-compiled wheels for modern Python versions (3.10–3.12) on Linux, macOS, and Windows, eliminating the need to compile SOEM yourself. It is actively maintained, with recent updates adding No-GIL support and ARM64 wheel availability. Real-time applications using PySOEM require special consideration, and Linux/macOS execution requires administrator privileges; Windows requires a packet capture driver (Npcap or WinPcap). Use it for: - Test and validate EtherCAT slave devices during development without writing C code. - Build Python-based automation scripts for industrial control systems that communicate over EtherCAT networks. - Read and write device configuration via SDO registers and EEPROM in a Python environment. - Perform firmware updates on EtherCAT devices using FoE (Firmware over EtherCAT) from Python. - Monitor and log real-time process data from multiple EtherCAT slaves in a single master application. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. PySOEM is a Cython wrapper for the Simple Open EtherCAT Master Library that enables Python applications to communicate with and test EtherCAT slave devices over industrial networks. Yes, if you need to control or test EtherCAT devices from Python and can meet the runtime requirements (administrator privileges on Linux/macOS, Npcap/WinPcap on Windows). The package is actively maintained, has no known vulnerabilities, and offers permissive licensing. Medium install friction is typical for industrial protocol libraries with compiled extensions; pre-built wheels mitigate most of that cost. Not suitable if you need Python versions older than 3.10 or cannot run with elevated privileges. ## Install pip install pysoem uv add pysoem poetry add pysoem ## Installing pysoem Before you install: Medium install friction due to compiled C extensions requiring platform-specific wheels. Wheels are available for Python 3.10–3.12 across Linux (x86_64, aarch64, musl), macOS (Intel and ARM), and Windows (64-bit). Linux and macOS require administrator privileges at runtime; Windows requires Npcap or WinPcap installed. License in practice: MIT license is permissive, allowing commercial and private use with minimal restrictions. You may use, modify, and distribute this package freely provided you include the original license notice. Quickstart: import pysoem master = pysoem.Master() master.open('eth0') master.scan_and_group() master.config_init() # Read/write process data and SDO registers as needed master.close() Linux and macOS require administrator/root privileges to execute scripts using PySOEM. Windows requires Npcap (in WinPcap API-compatible mode) or WinPcap to be installed before use. Verify before relying: - Whether Python 3.14 wheels mentioned in v1.1.13 changelog are actually available on PyPI or planned for a future release. - Real-time performance guarantees or latency characteristics for industrial control loops. - Support status for Python versions older than 3.10 or newer than 3.12. ## Package facts - License: MIT (permissive) - Python support: unspecified - Install friction: medium - Maintenance: active - Downloads: 78.8K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags ethercat master python, ethercat slave communication, industrial network control, sdo read write, process data ethercat, eeprom access ethercat, foe firmware over ethernet, industrial-control, ethercat, hardware-interface [View on SkillFed](https://skillfed.io/packages/pysoem) · [View on PyPI](https://pypi.org/project/pysoem/)