// the find
rtlabs-com/p-net
PROFINET device stack for embedded devices
P-Net is a PROFINET device stack written in C, targeting embedded systems running FreeRTOS, rt-kernel, or Linux. It implements the full PROFINET IO Device protocol stack including DCP, LLDP, alarm handling, RPC, and PTCP clock synchronization. The catch: what's on GitHub is an evaluation-only source dump — no ports included, can't build out of the box, and production use requires a commercial license.
The protocol coverage is thorough — DCP, LLDP, SNMP, PTCP, alarms, diagnostics, and the CM state machines are all present as separate modules rather than one monolithic file. The test suite is unusually complete for an embedded C project: every major subsystem has its own test file and there are mock layers for hardware abstraction. The PNAL abstraction layer (pnal.h) is a clean OS/HAL boundary that makes porting to a new RTOS a matter of implementing one interface rather than grep-replacing platform calls. Active maintenance with a June 2026 last push and a real company behind it means the spec compliance is likely serious.
The repo is deliberately incomplete — no ports ship here, so you cannot build and run anything without either buying the commercial version or writing your own platform layer from scratch. This makes the GitHub star count somewhat misleading; you're evaluating a demo, not a usable library. The evaluation license is restrictive: you can read the code but cannot ship a product with it, which limits how useful open-source community contributions or forks can actually be. Documentation lives behind the rt-labs.com paywall alongside the full sources, so the public README points you to a product page rather than telling you how the API actually works.