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

CanardRxTransfer payload reading?
CanardRxTransfer payload reading?
Aug 23 3 posts
Uavcan and raspberry pi
Uavcan and raspberry pi
Aug 21 4 posts
Error in simple script
Error in simple script
Aug 21 2 posts
Show_data_type_info.py script gives different signatures for one custom message
Show_data_type_info.py script gives different signatures for one custom message
Aug 19 5 posts
FirmfareUpdate. File reading failed
FirmfareUpdate. File reading failed
Aug 19 3 posts
How does libcacard implement automatic allocation of node ID?
How does libcacard implement automatic allocation of node ID?
Aug 15 2 posts
Library-independent code generation
Library-independent code generation
Aug 12 8 posts
Uavcan file extension
Uavcan file extension
Aug 08 7 posts
PyUAVCAN design thread
PyUAVCAN design thread
Aug 07 9 posts
Weekly dev call
Weekly dev call
Aug 07 23 posts
Data type compatibility assurance
Data type compatibility assurance
Aug 07 7 posts
uavcan.protocol.file.BeginFirmwareUpdate
uavcan.protocol.file.BeginFirmwareUpdate
Aug 06 9 posts
Libuavcan CubeMX FreeRTOS SystemWorkbenchForSTM32
Libuavcan CubeMX FreeRTOS SystemWorkbenchForSTM32
Aug 04 17 posts
Uavcan_gui_tool unrecognized message 1027 (windows)
Uavcan_gui_tool unrecognized message 1027 (windows)
Aug 02 3 posts
What are the parameters CanardOnTransferReception on_reception and CanardShouldAcceptTransfer should_accept in canardInit?
What are the parameters CanardOnTransferReception on_reception and CanardShouldAcceptTransfer should_accept in canardInit?
Aug 01 2 posts

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

Development activity

onurcanari starred UAVCAN/gui_tool
Aug 23
pkozlov starred UAVCAN/libuavcan_stm32
Aug 23
forkpool forked UAVCAN/libuavcan_linux
Aug 22
shreyasbharath starred UAVCAN/libcanard
Aug 22
shreyasbharath starred UAVCAN/libuavcan
Aug 22
N-Hill starred UAVCAN/pyuavcan
Aug 21
igalloway starred UAVCAN/libuavcan_s32k
Aug 21
FaisalFM starred UAVCAN/gui_tool
Aug 21
pavel-kirienko created a new branch “master” at UAVCAN/libuavcan_s32k
Aug 14
pavel-kirienko created a new repository UAVCAN/libuavcan_s32k
Aug 14
loadstarCN starred UAVCAN/uavcan.rs
Aug 13
fredseo91 forked UAVCAN/libcanard
Aug 13
luozhongchao forked UAVCAN/libuavcan
Aug 13
xorz57 starred UAVCAN/libuavcan
Aug 12
pavel-kirienko closed a pull request “Improve python-can driver” at UAVCAN/pyuavcan
Aug 12