Skip to content

OpenCyphal libcanard

  • Software
  • Middleware
  • Library

A C implementation of the Cyphal/CAN transport layer for high-integrity real-time embedded systems, supporting Cyphal v1.1, v1.0, and legacy UAVCAN v0 (DroneCAN).

Made by OpenCyphal.

Source on GitHub: github.com/OpenCyphal/libcanard (opens in a new tab). Facts read at commit 1206003 (opens in a new tab).

Licenses

Code
MIT (opens in a new tab)

Read by Robotheca from LICENSE (opens in a new tab) (MIT) at commit 1206003 (opens in a new tab), on 16 Oct 2026.

Commercial use
Yes

What it does

  • Supports both Classic CAN and CAN FD, in redundant and non-redundant configurations.
  • Compatible with 8/16/32/64-bit platforms, including very resource-constrained bare-metal microcontrollers.
  • Keeps the interface to the underlying platform minimal, so it can be adapted quickly to any CAN-enabled microcontroller.
  • Provides an API for publishing and subscribing to messages, and for ingesting received CAN frames.
  • Configures CAN acceptance filters automatically from the current subscription set.
  • Supports passive, decentralized node-ID autoconfiguration, and manual node-ID assignment.

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

Getting started

Difficulty
Advanced

Maintenance

Status
Maintained: a commit in the last 12 months
Newest commit
2 Jul 2026 on master
Latest release
v4.0.0 (10 Jan 2026)

Checked on GitHub on 16 Oct 2026.

Robots that can run 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.