Skip to content

CANopenNode

  • Software
  • Robot arms and industry
  • Library

CANopenNode is an open-source ANSI C implementation of the CANopen protocol stack for embedded control systems built on CAN, usable with or without an RTOS.

Source on GitHub: github.com/CANopenNode/CANopenNode (opens in a new tab). Facts read at commit 9b8beed (opens in a new tab).

Licenses

Code
Apache-2.0 (opens in a new tab)

Read by Robotheca from LICENSE (opens in a new tab) (Apache-2.0) at commit 9b8beed (opens in a new tab), on 16 Oct 2026.

Commercial use
Yes

What it does

  • Provides CANopen Object Dictionary for organizing variables accessible from C code and from the CANopen network.
  • Implements NMT, Heartbeat, PDO, SDO client and server, Emergency, SYNC, and Time-stamp protocols.
  • Includes LSS for node-id and bitrate setup, plus a CiA309-3 ASCII gateway for NMT master, LSS master and SDO client.
  • Supports CANopen Safety (SRDO) and non-volatile storage of Object Dictionary variables.
  • Contains no hardware drivers; drivers must be added separately for each target system.
  • An external Object Dictionary editor, CANopenEditor, generates C source code and documentation for custom devices.

Written by Robotheca from the project's README (opens in a new tab) at commit 9b8beed.

Getting started

Difficulty
Advanced
Hardware it needs, as the project states it
Runs on many microcontrollers, from 16-bit microcontrollers and above, as a standalone application or with an RTOS; also runs on Linux devices.

Maintenance

Status
Maintained: a commit in the last 12 months
Newest commit
10 Jul 2026 on master
Latest release
Old layout with some drivers included (27 Apr 2020)

Checked on GitHub on 16 Oct 2026.

Robots on Robotheca that use it

No robot on Robotheca is linked to it yet. Links come from a robot's robot.yaml, from its dependency files read as text, or from Robotheca's editors.

Robotheca lists software as a reference: nothing is hosted or run here, and every fact links to where it was read.