The PROFINET Community Stack

A PI Initiative: Empowering Open Development for the PROFINET Ecosystem

PI's Vision: Fostering Innovation Through Collaboration

The PROFINET International Organization (PI) is dedicated to advancing PROFINET technology and fostering a vibrant, accessible ecosystem. Developing PROFINET-enabled devices often requires significant protocol expertise and engineering effort, which can be a considerable barrier for many device manufacturers. 

The PROFINET Community Stack is our strategic response to this challenge. It represents the PI's commitment to: 
 

  • Lowering Barriers to Entry: Providing a readily available, high-quality PROFINET foundation reduces the initial investment for new product development.
  • Accelerating Innovation: By abstracting away complex protocol implementation, developers are free to concentrate on their unique product features.
  • Promoting Collaboration: Building a shared, open-source resource encourages collective knowledge sharing, continuous improvement, and a stronger, more resilient PROFINET community.
  • Ensuring Quality & Conformance: The stack itself undergoes rigorous testing to meet high standards of quality and adherence to PROFINET specifications, benefiting all users.


     

About the Community Stack

The PROFINET Community Stack is a robust, basic implementation primarily intended for the functionality of PROFINET IO-Devices. Maintained and continuously extended, it's designed to be a reliable and evolving resource for the PROFINET community. The stack itself is tested via the PROFINET certification.

Key Features

  • PROFINET IO-Device Demonstrator: Comprehensive implementation of the IO-Device role via demo-application.
  • Conformance Class Support: Currently the PROFINET Community Stack supports CC-A and CC-B*.
  • IRT-Communication: Supports IRT communication when integrated with a user-provided, hardware-specific driver layer.*
  • Advanced PROFINET Features:
    • S2 System Redundancy support*
    • MRP (Media Redundancy Protocol) support*
    • Multiple IOCR (IO Communication Relationships)*
    • Full support of PROFINET Security Class 1, with major features of Security Class 2 and 3 already implemented*
  • High Portability: Written predominantly in C (with minor C++ parts), the PROFINET Community Stack is designed to be hardware and operating system independent.
  • PROFINET Version: Currently PROFINET Specification V2.4MU6 is supported.

* This functionality is available with the PROFINET Community Stack but not yet part of the demo-application.

Portable and Modular Design

The PROFINET Community Stack's design allows for broad applicability across various hardware and operating systems. For a quick start, we offer:
 

  • A demo application based on the Raspberry Pi 4 (ARM V8, A53 running Debian 13 "Trixie"), demonstrating IO-Device integration.
  • A forthcoming virtual IO Device that runs in any Linux environment (e.g., Debian 13). This containerized solution provides an even easier start without specific hardware, featuring a basic UI based on ncurses.
  • Both compiled with the given GCC and controlled via Makefiles.
     

Community members are already successfully deploying the PROFINET Community Stack on various proprietary hardware with different operating systems, such as Zephyr and FreeRTOS.

PROFINET Application Profiles

While the PROFINET Community Stack provides the robust foundation, it does not include implementations for specific PROFINET Application Profiles. However, it offers a well-defined interface, empowering you to build upon these profiles for your application needs.

Integration & Contribution: Participating in the Ecosystem

The PROFINET Community Stack delivers the core PROFINET protocol logic as a robust and flexible software component. It is designed as a powerful engine for seamless integration into your specific hardware and software environment, empowering you to connect it to your application with your unique expertise. While it provides a foundational framework, it is not a pre-packaged, ready-to-run development kit, but rather a versatile building block for your tailored solution. 

 

Typical Integration Considerations

  • Hardware Abstraction Layer (HAL): You will adapt the HAL to interface the PROFINET Community Stack with your chosen microcontroller, network controller, and operating system (or bare-metal setup / without an operating system).
  • Application Layer: Your device's specific PROFINET data, cyclic IO data exchange, and application logic will be built upon the stack's API.
  • Validation: Integration will involve thorough testing and validation using standard PROFINET conformance tools to ensure proper functionality and interoperability. Note that while the PROFINET Community Stack itself is certified, your specific application built upon it will require its own certification.

Contributing to the Community

The strength and evolution of the PROFINET Community Stack are driven by collaboration. We actively invite and encourage contributions from the PROFINET ecosystem: 

  • Code Contributions: Submit bug fixes or improvements via issues or merge requests on our GitLab repository.
  • Documentation: Enhance user guides, API references, or provide integration examples.
  • Feedback & Bug Reports: Share your experiences, report issues, and suggest enhancements through our community channels.
  • Knowledge Sharing: Participate in discussions, answer questions, and help other developers.
  • Share your example: Share your application with the community and benefit from others working with it.

Ecosystem & Professional Services

While the PROFINET Community Stack empowers self-integration and benefits from community support, we recognize that some projects may require dedicated professional assistance. The growing ecosystem around the Community Stack includes various companies actively involved in supporting its adoption and integration. 
 

These companies offer specialized services to aid in your development journey, such as: 
 

  • Guidance on initial setup and Hardware Abstraction Layer (HAL) adaptation.
  • Support for integrating the Community Stack into specific application environments.
  • Assistance with custom feature development or tailored PROFINET functionality.
  • Consulting for PROFINET conformance, testing, and certification processes.

     

Who Can Benefit from the PROFINET Community Stack?


This PI initiative is designed to support:
 

  • Technology Providers: Offering hardware-solutions with an own PROFINET SDK based on the PROFINET Community-Stack.
  • PROFINET Device Vendors: Integrating PROFINET into their devices.
  • Academic Institutions: For educational purposes, research, and practical application of PROFINET technology.
  • Any organization that values: Open-source principles, collaborative development, community support, and reducing proprietary dependencies.

     

Get Involved: Accessing the PROFINET Community Stack & Joining the Community

Accessing the PROFINET Community Stack involves a clear process to ensure proper governance and support within the PI framework.

How to access the PROFINET Community Stack:

1. Become a PI Member
The PROFINET Community Stack is provided free of charge to members of PI (PROFIBUS & PROFINET International). If you want to become a PI member, please visit: PI Membership Information

2. Sign the License Agreement
Once a PI member, you will need to sign a specific license agreement for the PROFINET Community Stack. This agreement grants you the right to use, modify, and distribute the stack under its terms. For registration please visit: Community Stack registration

3. Access the GitLab Repository:
After completing the above steps, you will receive access to the official PROFINET Community Stack GitLab repository, where you can download the source code, documentation, and engage with the community.

Community Interaction Channels

Engage with fellow developers, ask questions, and share your insights:
 

  • GitLab Issues: For technical discussions, bug reports, and contribution requests, use the issue platform on our GitLab repository (access granted after following the steps above).
  • PROFINET Forum: For broader discussions and community support, visit the dedicated PROFINET forum

Quick Start Resources

Once you have access, the repository includes comprehensive documentation for the stack itself, as well as for the demo applications (Raspberry Pi 4 and the upcoming virtual IO Device) to help you get started quickly. 
 

Note on Support: The community strives to help as much as possible on a "best-will" principle. While the PI guides the initiative, direct individual support is primarily community-driven. So far, all issues have been successfully tackled through this collaborative approach!


 

Future Outlook: The next steps


The PROFINET Community Stack is a continuously evolving project. We are committed to expanding its functionality and keeping it at the forefront of PROFINET technology. Our current next steps includes:


In addition, the demo application will be gradually enhanced to showcase the new features in practice, with example implementations provided progressively as features are integrated into the stack.

The next steps and decisions regarding code acceptance and releases are currently managed centrally by PI’s Community Stack Development Group.

We encourage the community to participate in these developments and help shape the future of the stack!

Licence Agreement

PNO Community Source Code License Agreement (Version 1.0 – 2021/08/19) Preamble The PROFIBUS Nutzerorganisation e.V. ("PNO") provides source code of PNO software projects under this License Agreement to its members and to members of PNO’s associated regional organizations ("MEMBER") to be used and integrated into products which implement technologies specified by PNO. Use of the SOFTWARE by the user ("LICENSEE") in the relevant version available at any time, including subsequently supplied patches, updates and upgrades, or any other modification to the SOFTWARE is subject to this License Agreement in its current applicable version. The SOFTWARE has been originated by and is in constant development within the respective PNO Community Project due to contributions of MEMBERS. 1. Definitions 1.1 "AFFILIATE" shall mean a corporation or other entity directly or indirectly, owned or controlled by, or owning or controlling, or under common control with LICENSEE where "control" shall mean to have, directly or indirectly, the power to direct or cause the direction of the management and policies of a corporation or other entity. 1.2 "DEVELOPMENT KITS" shall mean products or services which implement technologies specified by PNO and are used for the development of PRODUCTS. 1.3 "OBJECT CODE" shall mean the computer executable embodiment of software computer code derived from the SOURCE CODE by a process generally known as "compilation. 1.4 "PRODUCTS" are products, supplies, services, projects, solutions and systems for internal use and/or for third parties which implement technologies specified by PNO. 1.5 "SOFTWARE" shall mean the software provided by PNO to its members and to members of associated regional organizations. 1.6 "SOURCE CODE" shall mean the human readable embodiment of software computer code, which must be translated by a process generally known as "compilation" into OBJECT CODE before such software can be executed by a processor. 2. License Grant PNO grants to LICENSEE with respect to the SOFTWARE and the associated documentation file(s) under its copyrights and intellectual property rights a non-exclusive, worldwide, royalty-free, perpetual and irrevocable right and license to: i. use, have used, copy, have copied, modify, have modified the SOFTWARE in SOURCE CODE form in connection with the development of PRODUCTS or DEVELOPMENT KITS, ii. incorporate and have incorporated the SOFTWARE and/or modified versions thereof in OBJECT CODE form into PRODUCTS and in SOURCE CODE form into DEVELOPMENT KITS, iii. market, have marketed, distribute, have distributed, make available, have made available in any form (e.g. online distribution, subscription and hosting as a service) to third parties for use, have used, copy and have copied in virtual and/or non-virtual environments, the SOFTWARE solely in OBJECT CODE form and as part of PRODUCTS or in SOURCE CODE form as part of DEVELOPMENT KITS, iv. sublicense the rights under section i regarding SOFTWARE in SOURCE CODE form as part of DEVELOPMENT KITS to third parties solely for the purpose of adapting the SOFTWARE to a specific hardware platform in connection with the development of PRODUCTS. For the avoidance of doubt, any further distribution of the SOFTWARE to third parties shall be in OBJECT CODE form as stated in sections ii and iii above. v. sublicense the rights under section ii and iii regarding SOFTWARE solely in OBJECT CODE form as part of PRODUCTS, vi. sublicense the rights under sections i to v to its AFFILIATES. If the SOFTWARE can only be used and distributed in source code form (e.g. scripting languages), the rights granted under this section ii.-vi.) shall also apply to the source code of the SOFTWARE. 3. Use Terms 3.1. The SOFTWARE shall be provided by way of remote data transmission ("DOWNLOAD"). The DOWNLOAD is only possible after successful registration of the LICENSEE as a MEMBER. 3.2. Notwithstanding the use rights granted to the LICENSEE hereunder, PNO and/or its licensors shall retain all rights to the SOFTWARE. 3.3. The LICENSEE shall keep unchanged all copyright notices, other protection notices and reservations of rights contained in the SOFTWARE and shall incorporate them into all copies of the SOFTWARE made or commissioned by the LICENSEE. Further, LICENSEE shall comply with any additional third-party license terms and conditions applicable to the SOFTWARE, especially third party and open source software, which shall prevail over this License Agreement. If applicable, LICENSEE shall provide such third party license terms or the provision of copyrights or any other legal relevant notices in a separate readme.file to its sublicensees. For avoidance of doubt, LICENSEE shall not be entitled to make available to third parties its DEVELOPMENT KITS and PRODUCTS containing SOFTWARE and/or modified versions thereof under license terms that violate or conflict with the terms of this License Agreement or any applicable agreement referring to this license. Further, LICENSEE shall not be entitled to make available to third parties its DEVELOPMENT KITS and PRODUCTS containing SOFTWARE in combination with software subject to "copyleft" or similar license terms, in a way that would require to allow third party users to freely copy, examine and modify the source code of the SOFTWARE, and redistribute the SOFTWARE and modified versions thereof. 3.4. No other rights whatsoever beyond the use rights and other rights expressly granted herein shall be granted to the LICENSEE, in particular rights to the company name or industrial property rights such as patents, utility models and trademarks, nor is PNO under a corresponding obligation to grant such rights. 3.5. The parties agree that granting of licenses does not involve any technical support from PNO and/or its licensors for the LICENSEE. 3.6. LICENSEE acknowledges that the SOFTWARE is composed of contributions made by users and LICENSEES of the SOFTWARE. 4. Liability 4.1. The liability of PNO and/or its licensors for any defects and defects in title in the SOFTWARE made available, in particular for its accuracy, the absence of defects, the absence of industrial property rights and copyrights accruing to third parties, its completeness and/or usability, is excluded except in case of intent, gross negligence and fraudulent intent. 4.2. Apart from this, any liability whatsoever of PNO and/or its licensors is excluded unless mandatory liability arises under the German Product Liability Act (Produkthaftungsgesetz), liability for injury to life, limb or health or for intent or gross negligence. 4.3. LICENSEE shall be solely responsible for its use of SOFTWARE and/or modified versions thereof and shall be liable to third parties for its DEVELOPMENT KITS and PRODUCTS containing SOFTWARE and/or modified versions thereof and shall not be entitled to assert warranty or compensation claims against PNO and/or licensors of PNO for defects or third-party intellectual property rights infringement in the SOFTWARE. 4.4. LICENSEE shall comply with all applicable export control, customs and foreign trade regulations and shall be solely responsible for any infringement of such regulations by the distribution of DEVELOPMENT KITS and PRODUCTS containing SOFTWARE. 5. Newer Versions The license administrator of this license is PNO. The terms and conditions of this License Agreement may be changed from time to time and will be published accordingly. Use of the SOFTWARE is subject to the acceptance by LICENSEE of the currently applicable Terms and Conditions. 6. Termination 6.1. PNO may terminate this License Agreement in the event of a breach of material terms of this License Agreement by the LICENSEE, after providing the LICENSEE with written notice of the breach, and thirty (30) days in which to cure such breach. 6.2. Upon the termination of this License Agreement according to Section 6.1, all rights and licences previously granted herein by PNO shall be terminated, except that all licenses granted to third parties by LICENSEE under Article 2 iii shall remain unaffected. 6.3. PNO may terminate the project at any time without incurring into any responsibility towards the LICENSEE. Upon termination, all rights and licences previously granted herein shall remain unaffected. 7. General Provisions 7.1. Where the LICENSEE is a businessperson in the sense of the German Commercial Code (Handelsgesetzbuch), the venue is Karlsruhe. 7.2. German Law applies, to the exclusion of the United Nations Convention on Contracts for the International Sale of Goods (CISG). 

© PROFIBUS & PROFINET International (PI). All rights reserved.

Privacy Policy | Imprint