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

Big-endian vs. little-endian in the context of bit-level encoding
Big-endian vs. little-endian in the context of bit-level encoding
Oct 21 9 posts
Static deque for CANFD ISR buffer
Static deque for CANFD ISR buffer
Oct 18 4 posts
The Wikipedia article about UAVCAN
The Wikipedia article about UAVCAN
Oct 16 1 posts
UAVCAN v1: Branch swap in the public regulated data type repository
UAVCAN v1: Branch swap in the public regulated data type repository
Oct 15 1 posts
PyUAVCAN v0.3 is released
PyUAVCAN v0.3 is released
Oct 14 2 posts
Libuavcan CubeMX FreeRTOS SystemWorkbenchForSTM32
Libuavcan CubeMX FreeRTOS SystemWorkbenchForSTM32
Oct 13 29 posts
uavcan::Timer vs suspend to RAM
uavcan::Timer vs suspend to RAM
Oct 13 4 posts
Idempotent interfaces and deterministic data loss mitigation
Idempotent interfaces and deterministic data loss mitigation
Oct 12 1 posts
Pyuavcan -> Nunavut migration?
Pyuavcan -> Nunavut migration?
Oct 04 6 posts
Front-end engineer to work on the new UAVCAN GUI software
Front-end engineer to work on the new UAVCAN GUI software
Oct 04 6 posts
Libuavcan driver for STM32H7?
Libuavcan driver for STM32H7?
Oct 04 9 posts
Nunavut 0.1.5 is released!
Nunavut 0.1.5 is released!
Oct 04 1 posts
CanardRxTransfer payload reading?
CanardRxTransfer payload reading?
Oct 03 24 posts
Reading CAN bus from pixhawk CAN port to RPI
Reading CAN bus from pixhawk CAN port to RPI
Oct 03 9 posts
Weekly dev call - Meeting notes
Weekly dev call - Meeting notes
Oct 02 21 posts

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

Development activity

thirtytwobits opened an issue “setup c++ template support” at UAVCAN/nunavut
Oct 22
thirtytwobits opened a pull request “Feature/67” at UAVCAN/nunavut
Oct 22
thirtytwobits opened a pull request “Fixing Issue 75 (I think)” at UAVCAN/nunavut
Oct 21
thirtytwobits closed a pull request “fixing broken links” at UAVCAN/nunavut
Oct 21
thirtytwobits opened a pull request “fixing broken links” at UAVCAN/nunavut
Oct 21
thirtytwobits closed a pull request “fixing RTD build” at UAVCAN/nunavut
Oct 21
thirtytwobits opened a pull request “fixing RTD build” at UAVCAN/nunavut
Oct 21
thirtytwobits closed a pull request “Cleaning up namespace and language abstractions” at UAVCAN/nunavut
Oct 21
thirtytwobits closed an issue “tox -p build fails sometimes” at UAVCAN/nunavut
Oct 21
thirtytwobits closed an issue “Use setuptool entrypoints properly” at UAVCAN/nunavut
Oct 21
thirtytwobits opened a pull request “Cleaning up namespace and language abstractions” at UAVCAN/nunavut
Oct 21
thirtytwobits closed a pull request “Issue #80 and #78” at UAVCAN/nunavut
Oct 21
pavel-kirienko opened an issue “Use doc8 to enforce .rst doc style” at UAVCAN/pyuavcan
Oct 21
thirtytwobits opened a pull request “Creating UAVCAN python project template (CLI edition)” at UAVCAN/python-template
Oct 20
thirtytwobits forked UAVCAN/python-template
Oct 19