UAVCAN Logo

Intravehicular communication

What is UAVCAN?

UAVCAN is an open lightweight protocol designed for reliable intravehicular communication in aerospace and robotic applications over CAN bus, Ethernet, and other robust transports. It is created to address the challenge of deterministic on-board data exchange between systems and components of next-generation intelligent vehicles: manned and unmanned aircraft, spacecraft, robots, and cars.

The name UAVCAN stands for Uncomplicated Application-level Vehicular Communication And Networking.

UAVCAN is a standard open to everyone, and it will always remain this way. No licensing or approval of any kind is necessary for its implementation, distribution, or use.

A high-level overview of the protocol is provided in the article "UAVCAN: a highly dependable publish-subscribe protocol for real-time intravehicular networking".

Features

How do I use UAVCAN?

First, read the official UAVCAN specification document and familiarize yourself with the regulated DSDL repository. If you have questions or feedback, bring them to the discussion forum.

Pick one of the free open source implementations (MIT licensed) for use in your application:

None of the implementations suit your needs? Write your own! UAVCAN is a very simple protocol; an experienced developer can easily create a custom implementation from scratch to address the unique needs of their application.

The open source tools will help you design, develop, and maintain your UAVCAN-based application:

The old version of the website is still available for historical reasons, but it will be taken down eventually. It contains an older, pre-release edition of the specification and documentation entries that are now obsolete.

Discussions and publications

UAVCAN 2019 roadmap
UAVCAN 2019 roadmap
Nov 14 3 posts
UAVCAN: a highly dependable publish-subscribe protocol for real-time intravehicular networking
UAVCAN: a highly dependable publish-subscribe protocol for real-time intravehicular networking
Jul 03 6 posts
UAVCAN Specification v1.0-alpha is available
UAVCAN Specification v1.0-alpha is available
Jan 22 1 posts
NXP Semiconductors is pleased to support UAVCAN V1.0 - Dronecode
NXP Semiconductors is pleased to support UAVCAN V1.0 - Dronecode
Jan 12 8 posts
Data type regulation policy and membership fees
Data type regulation policy and membership fees
Jan 09 12 posts
Uavcan and raspberry pi
Uavcan and raspberry pi
Dec 24 13 posts
UAVCAN CLI control on RPi over SSH
UAVCAN CLI control on RPi over SSH
Dec 24 10 posts
RTOS CAN API requirements
RTOS CAN API requirements
Dec 23 4 posts
UAVCAN survey 2019
UAVCAN survey 2019
Dec 20 2 posts
Configure Can Acceptance Filters in multi thread app
Configure Can Acceptance Filters in multi thread app
Dec 19 5 posts
Weekly dev call
Weekly dev call
Dec 18 31 posts
file.Read timeout even though all frames on bus
file.Read timeout even though all frames on bus
Dec 18 16 posts
How to integrate to firmware with my own board
How to integrate to firmware with my own board
Dec 18 4 posts
Deployment for Radiation Monitoring Experiment on Spacecraft :artificial_satellite:
Deployment for Radiation Monitoring Experiment on Spacecraft :artificial_satellite:
Dec 13 6 posts
Stack behavior if error_passive
Stack behavior if error_passive
Dec 06 4 posts

Join the forum to start a new discussion. Also, feel free to participate in the weekly dev call.

Development activity

vijay0267 forked UAVCAN/libuavcan_lpc11c24
Jan 26
Mebus opened an issue “Not compatible with KDE Breeze dark theme” at UAVCAN/gui_tool
Jan 25
emrainey starred UAVCAN/nunavut
Jan 22
emrainey starred UAVCAN/libuavcan
Jan 22
emrainey starred UAVCAN/pyuavcan
Jan 22
pavel-kirienko closed an issue “Specification update effort (tracking issue)” at UAVCAN/specification
Jan 22
shreyasbharath starred UAVCAN/specification
Jan 21
pavel-kirienko closed a pull request “Changeset To End All Changesets” at UAVCAN/specification
Jan 21
pavel-kirienko closed an issue “Add a paragraph on standard application capabilities to the introduction” at UAVCAN/specification
Jan 21
pavel-kirienko closed an issue “Final proofreading - grammar, formatting, readability” at UAVCAN/specification
Jan 21
pavel-kirienko closed an issue “Replace "must" with "shall"” at UAVCAN/specification
Jan 21
pavel-kirienko closed an issue “Data type extensibility” at UAVCAN/specification
Jan 21
pavel-kirienko closed an issue “Review the data type compatibility rules” at UAVCAN/specification
Jan 21
pavel-kirienko created a new branch “api-simplification” at UAVCAN/libcanard
Jan 19
pavel-kirienko closed a pull request “Timing recommendations without overspecification.” at UAVCAN/specification
Jan 18