UAVCAN Logo

Intravehicular communication

What is UAVCAN?

UAVCAN is an open lightweight protocol designed for reliable intravehicular communication in aerospace and robotic applications over robust networks such as CAN bus.

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.

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.

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.

Recent discussions

Multiple broadcasts of same type
Multiple broadcasts of same type
May 23 7 posts
Yukon UI & Rest API
Yukon UI & Rest API
May 23 100 posts
Working example of libcanard
Working example of libcanard
May 23 4 posts
LIbcanard on freeRTOS SUCCESSFULl!
LIbcanard on freeRTOS SUCCESSFULl!
May 21 5 posts
UAVCAN CAN2 status errors PixhawkV2
UAVCAN CAN2 status errors PixhawkV2
May 19 3 posts
Announcing Nunavut
Announcing Nunavut
May 14 1 posts
Pydsdlgen is hard to say
Pydsdlgen is hard to say
May 14 13 posts
UAVCAN V1 FAQ s
UAVCAN V1 FAQ s
May 13 4 posts
UAVCAN ESC Options
UAVCAN ESC Options
May 09 14 posts
Libuavcan branch renaming!
Libuavcan branch renaming!
May 09 4 posts
.dbc file for UAVCAN
.dbc file for UAVCAN
May 07 2 posts
[Future] Zero-cost serialization constraint
[Future] Zero-cost serialization constraint
May 05 2 posts
CAN3 with STM32 trouble
CAN3 with STM32 trouble
May 05 7 posts
Libuavcan CubeMX FreeRTOS SystemWorkbenchForSTM32
Libuavcan CubeMX FreeRTOS SystemWorkbenchForSTM32
May 03 8 posts
Strange NodeStatus
Strange NodeStatus
May 03 2 posts

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

Development activity

shmm91 forked UAVCAN/libuavcan_stm32
May 24
thirtytwobits opened an issue “Improve v1 compile tests to include expectations” at UAVCAN/libuavcan
May 23
Zarkopafilis starred UAVCAN/nunavut
May 22
thirtytwobits opened a pull request “Issue #222: v1 platform layer” at UAVCAN/libuavcan
May 22
pavel-kirienko created a new tag “0.9.2” at UAVCAN/pydsdl
May 21
pavel-kirienko released “v0.9.2” at UAVCAN/pydsdl
May 21
thirtytwobits opened an issue “Port driver layer to uavcan v1” at UAVCAN/libuavcan
May 21
thirtytwobits closed a pull request “Uavcan v1.0” at UAVCAN/libuavcan
May 21
thirtytwobits opened a pull request “Uavcan v1.0” at UAVCAN/libuavcan
May 20
Zarkopafilis opened a pull request “Global Register View” at UAVCAN/Yukon
May 19
Zarkopafilis closed a pull request “Homescreen” at UAVCAN/Yukon
May 19
thirtytwobits opened an issue “Rename "uavcan" namespace to "libuavcan"” at UAVCAN/libuavcan
May 18
thirtytwobits closed an issue “Support CAN-FD” at UAVCAN/libuavcan
May 17
pavel-kirienko closed a pull request “fixing typo (nunavut)” at UAVCAN/libuavcan
May 17
thirtytwobits opened a pull request “fixing typo (nunavut)” at UAVCAN/libuavcan
May 17