Skip to content

About

Open-source, hardware-agnostic IO-Link (IEC 61131-9 / SDCI) master stack in C — companion to the iolinki device stack. Caller-owned storage, multi-port controller, CI-validated against real firmware in LabWired simulation.

Topics

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

iolinki-master

The companion device stack is iolinki.

iolinki-master is a standalone IO-Link master stack. It is intentionally split from the device-oriented iolinki repository and reuses only the narrow shared pieces needed for CRC, frame handling, PHY contracts, and IO-Link constants.

The master API is built around caller-owned opaque storage. Public users allocate iolink_master_port_t or iolink_master_controller_t; private state lives in src/ and is not exposed through the public header.

Status: protocol-core, simulation-validated. The stack speaks the IO-Link V1.1.5 wire (checksum A.1.6, ISDU transport 7.3.6, diagnosis-channel events 7.3.8, Table A.10 codes and the C6 timing rules) and is exercised against the iolinki device stack and an on-wire firmware model — not yet against real IO-Link silicon (open: physical wake-pulse timing, official conformance). See docs/IMPLEMENTATION_STATUS.md and CHANGELOG.md.

Documentation:

The build needs a local checkout of the iolinki device repository for the shared CRC/frame helpers (and, for tests, the real device stack). By default it is expected as a sibling of this repository:

git clone -b develop [email protected]:w1ne/iolinki.git ../iolinki

Build and test:

cmake -S . -B build
cmake --build build
ctest --test-dir build --output-on-failure

The build compiles only the narrow shared helper sources from the local iolinki checkout into the master build. It should not link or expose the full device stack.

Public APIs return named integer-compatible result constants such as IOLINK_MASTER_STATUS_OK, IOLINK_MASTER_STATUS_PENDING, and IOLINK_MASTER_ERR_INVALID_ARG.

Runnable examples are built by default:

  • master_loopback_demo: one IO-Link port startup and cyclic process-data flow.
  • master_4port_controller_demo: mixed 4-port controller setup with IO-Link, DI, DQ, and deactivated ports.

To point at another local iolinki checkout:

cmake -S . -B build -DIOLINKI_DEVICE_DIR=/path/to/iolinki

Related Projects

  • iolinki — the companion IO-Link device stack. This repository builds against it for the shared CRC/frame/PHY helpers, and CI runs both stacks against each other over a simulated wire (real firmware, multi-port station) in LabWired.

Security

This repository has its own coordinated-disclosure policy in SECURITY.md — use GitHub private vulnerability reporting. It ships a master-specific STRIDE threat model, a CRA overview, and per-release SBOMs (CycloneDX 1.6 + SPDX 2.3) attached to each tagged release.

License

iolinki-master follows the same licensing model as iolinki: dual-licensed under the GPLv3 (free, for open-source/GPLv3 use) and a commercial license (for closed-source / proprietary products that cannot accept the GPLv3 copyleft). Shipping a proprietary product? Email [email protected]. See LICENSE and LICENSE.COMMERCIAL.

For new quotes using 2026-10-02-indie-company-v4:

Package Holder and product rights Included assistance
Indie — €1,399 Named individual developing their own independent product family, including as a sole trader. Employer or separate-company rights require Company licensing. Two onboarding hours; 48-hour email response target.
Company — €4,699 Named legal company; unlimited authorized employees and contractors working on one agreed product family. Eight total scoped engineering hours, including quarterly technical reviews during the first year; 24-hour priority email response target.

Both packages include the same master source, documentation and reference release, perpetual royalty-free rights for unlimited units and customers within the agreed family, and one year of updates and bug fixes. Optional annual updates/support renewal is 20% of the original fee, with coverage agreed in the quote. The named family includes variants, successors and hardware revisions within that commercial range; an unrelated line needs separate scope.

Agree the target, compiler, PHY and tasks before booking. Assistance covers setup/build configuration, MCU/PHY callbacks and wiring review, an integration checklist and written findings within the allowance. Larger ports and validation work are quoted separately; reproducible stack bug corrections do not consume custom engineering hours. Broader families, subsidiaries and SDK redistribution use an Enterprise quote.

These packages license iolinki-master only; the companion device stack is separately licensed. Previously accepted agreements retain their existing rights, including older unlimited-deployment and developer-seat grants. See the commercial terms and prior published offer.

About

Open-source, hardware-agnostic IO-Link (IEC 61131-9 / SDCI) master stack in C — companion to the iolinki device stack. Caller-owned storage, multi-port controller, CI-validated against real firmware in LabWired simulation.

Topics

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages