The free CANopen Stack
CANopen is a high-level protocol for industrial automation. The specifications are managed by a consortium, called CiA (CAN in Automation). There are many "Draft Standards (DS)". The main standards we support are:
DS301 - Application layer and communication profile
DS305 - Layer setting services (LSS) and protocols
DS304 - Framework for safety-relevant communication (on request)
DS306 - Electronic data sheet specification for CANopen (on request)
Besides these draft standards, there are numerous "Device Profiles". A device profile is a standardized configuration of the object directory and the behavior of specific entries for a specific type of device. Common examples are:
DS401 - Profile for I/O devices
DS406 - Device profile for encoders
DS415 - Device profile for road construction machinery
DS418 - Device profile for battery modules
Due to the fact, that the device profiles define configurations and conventions on the behavior of object directory entries, we can realize them all with the provided CANopen stack.
Free for Commercial Use
This is the first component we decide to transfer to open-source. We will give our best to collaborate with the community and maintain the CANopen stack in future development efforts.
This CANopen product is transferred to open-source licensing terms. By adopting permissive license terms for the software component, we will make the benefits of this software available to the widest user base possible and give the embedded community a role in future development efforts.
Service & Support
You can find the source code in our GitHub repository
The help provided by the community is planned to organize with Issues on GitHub.
The Professional Service from Embedded Office is still available for a reasonable price.
Standard CANopen Architecture
Standardized Device Architecture
The CANopen standard CiA DS301 defines an architecture for CANopen devices. This architecture is the default for this CANopen stack. To satisfy your CANopen device needs, different architectures are possible, too. The following figure shows the principal software architecture of a CANopen device.
The CANopen Stack provides the most commonly used protocol elements for your CANopen slave device. With the flexible architecture, it is easy to extend these modules for your application.