Siogeen logoSiogeen IoddCom

a generic interface for IO-Link devices

simple and fast access to IO-Link devices using Python, Octave or Matlab
on PC or Raspberry-PI


We are a company with the aim to provide a fast, easy and a simple way to connect to IO-Link devices and access them full featured without effort by a programming/scripting language like Python, Octave (and Matlab soon) out of the box. It is designed for configuration, testing, analysis, production, data recording and many more.

A special feature is the independent layering of the hardware. Currently PC and Raspberry-PI are supported as hosts.
As IO-Link Masters TMG based USB masters (most on the market) and Ethernet-capable TMG-based masters are supported. Ifm master support is now complete. Balluff-Masters are supported additionally with its integrated web-server functions. IO-Link REST API capable master support is new and in experimental phase now. See list of Supported Systems below. If some master hardware is missing or you have your own, we can also integrate. Please feel free to send us a request.
IO-Link devices can be accessed at any level of abstraction, from raw to high level IODD device description access.

See the Use cases and Features for more details and our Getting started as an example. Please don't hesitate to ask for a demo.

Use cases

The Siogeen IoddCom is designed for various use cases for best working experience with IO-Link devices, simple usage and time saving thus both saving costs and offering time for the real tasks.


Out of the box

Communicate to IO-Link devices out of the box from most commonly used scripting/programming languages like Python, Octave or Matlab.



Inspect all data types, variables, process data and events available by the device description (IODD) at various detail levels.



Complex data types like arrays and records can be accessed in an easy and intuitive way.


Scripting Interface

Execute intuitive even more simplified scripting like text in evaluation mode for reading and writing of device variables.


Value naming

All data types are supported and can be read and written by their names or values depending on the needs.


Error handling

Use exception handling or last error checking at your need...


Error analysis and Debugging

Investigate into errors of the connected IO-Link devices sniffing like. See and log the data at your needed abstraction level.


Multi device environments

Connect to specific devices by its name or tag and also to multiple devices to do mass device configuration and/or testing.


Connection manager

An integrated connection manager allows overview of connected devices and disconnecting unused devices.

Siogeen IoddCom features

The Siogeen IoddCom is a universal interface for IO-Link devices. It is easy to integrate and available for various programming languages, like Python, Octave and Matlab. Derive native and complex data types and manage variable access with only the use of the belonging IODD-file. Automatically connect with devices or just simulate them and start coding. Common use cases are testing, logging, analysing, scripting, configuration, production and development of IO-Link devices.


Easy access

for variables due to their names or IDs as specified at the IODD or via indices and sub indices


Stream activity

stream the whole device activity down to a binary level


Unified implementations

for various programming languages like Python, Octave, Matlab .... others on request


Longtime support

regular version updates, on track with the IO-Link standard


Individual development

development of customer features (languages, drivers, ...)


Full documentation

extensive documentation with use case examples


Simulate devices

simulate your devices via IODD-files


Snapshots + Data Storage

store and load device configurations



access multiple devices simultaneously with same coding interfaces


Full Standard support

Support for variables, system commands, events, process data...


Connection statistics

Analyse and compare your connections for access times and repeats

Supported Systems

Supported operating systems, IO-Link masters and programming languages.



Windows, Linux, Raspberry-Pi and macOS1



TMG-based USB-masters2,
TMG-based Ethernet-capable masters (EtherCat, EtherNet/IP, PROFINET)3,
ifm45, REST API masters6 experimental, Turck Multiprotokoll soon

1) for macOS 11+, older versions on request
2) TMG-based USB masters: Baumer, Leuze, Pepperl+Fuchs, SICK AG, Turck and others
3) TMG-based Ethernet masters: Balluff, Belden, Murrelektronik, Pepperl+Fuchs, Wenglor and others
4) All Ethernet-based ifm IO-Link masters AL1xxx should be supported. Functionality can vary by ifm master type
5) Support for ifm USB master AL1060
6) REST API capable masters experimental: e.g. SICK AG SIG200/SIG350, Belden Lion-X, MurrElectronik Impact67 Pro/MVK Pro, Balluff.
7) Octave support only for Linux yet
8) Support for Matlab soon


To check if your masters are working with the Siogeen IoddCom you can install the IoddComChecker or the respective Gui!

Your IO-Link master is not found or you are using another system or master or want to use another environment? Please don't hesitate to contact us!

Not supported masters

The following masters are not supported yet:
  • Turck Multi-Protokoll (Modbus/TCP, PROFINET, EtherNet/IP): support planned
  • Pepperl & Fuchs comtrol
  • Baumer USB-C and senscontrol
  • Germbedded
  • TEConcept
  • iO-Fly
  • iq Development
You want to work with that? Please don't hesitate to contact us!

Speed results

Here we present the speed measurements of various IO-Link masters helping you for deciding in speed critical environments:

master connection COM speed master cycle time PD/DI read 16-bit variable (ISDU)
Balluff BNI00XX WIFI COM 2 2.7 ms 6-8 / 5-11 ms 52-71 / 49-56 ms
ifm AL1100 WIFI COM 2 3.9 ms 70-82 ms 69-120 ms
TMG V2 USB COM 2 2.7 ms 1(-2) ms 32-40 ms
TMG V3 USB COM 2 2.3 ms 1(-2) ms 21-26 ms
Balluff BNI00XX Eth COM 2 2.7 ms 2-3 / 1-2 ms 42-51 ms
ifm AL1100 Eth COM 2 3.9 ms 59-60 ms 55-65 ms
ifm AL1950 Eth COM 3 5.0 ms 4-5 ms 28-36 ms
Legend: / = diffrent hardware PD = processs data DI = digital input

cycle time = frame time between IO-Link master and device

COM = IO-Link speed (1 = 4800 baud, 2 = 38400 baud, 3 = 230400 baud)

Getting started

A short introduction on how to get started with the Siogeen IoddCom.

1. Install Python

Note: Pythons packager pip is required!

2. Install Siogeen IoddCom:

Use the provided script (here for Python 3.8):

For Linux the shell script:

user@computer:./Downloads/IoddCom-Install$ ./ --user 3.8

For Windows the batch script:

user@computer:./Downloads/IoddCom-Install$ install.bat 3.8

3. License activation

>>> from siogeen import IoddCom
>>> IoddCom.activateLicense('Path-to-license', token)

4. Hello World

from siogeen import IoddCom
i = IoddCom()
i.write('Application Specific Tag', 'my device')'Application Specific Tag')


Feel free to contact us for a IoddCom demo or to purchase a license.

Do you have any questions? Please do not hesitate to contact us directly. We are happy to provide you a free demo license and a pdf documentation upon request. If you wish we can also perform an online/offline demo presentation for you. To check your masters before please see Supported Systems and the IoddComChecker.

Firstname is required.
Lastname is required.
Company is required.
Valid email is required.
Please specify your need.
Please, leave us a message.
Please complete the Captcha
Please accept the privacy policy

* These fields are required.


List of latest news. Click here to get to the News page.


Subscribe to our newsletter now and get notified about updates, product news and special offers. Choose your interests and subscribe only to what is interesting for you.
This way you will always be up to date and benefit from current offers.