Embedded Office Products

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.

Open-Source License

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 GitHub of the corresponding CANopen-Stack project

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.

CANopen Device Architecture
CANopen Device Architecture

Supported Modules

Modular Design

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.

Object Dictionary
SDO Server
PDO Producer
PDO Consumer
SYNC Consumer
EMCY Producer
Heartbeat Producer
Heartbeat Consumer
NMT Slave
Parameter Store & Restore
LSS Slave
Software Timer