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
iolinkidevice stack and an on-wire firmware model — not yet against real IO-Link silicon (open: physical wake-pulse timing, official conformance). Seedocs/IMPLEMENTATION_STATUS.mdandCHANGELOG.md.
Documentation:
docs/API.md— public API tour and a compiling exampledocs/ARCHITECTURE.md— layered designdocs/PORTING.md— implement the PHY contract for a boarddocs/CONTRIBUTING.md— build/test loop and quality gatedocs/IMPLEMENTATION_STATUS.md— honest status ledgerdocs/ROADMAP.md,docs/TESTING.md,docs/RELEASE_STRATEGY.md
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 ../iolinkiBuild and test:
cmake -S . -B build
cmake --build build
ctest --test-dir build --output-on-failureThe 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- 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.
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.
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.