finds.dev← search

// the find

rtlabs-com/p-net

★ 592 · C · NOASSERTION · updated Jun 2026

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.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →