UAVCAN

Lightweight open vehicle bus standard for aerospace and robotic applications.

Zubax Robotics is the main developer and maintainer of UAVCAN – an open lightweight data bus standard designed for reliable intravehicular communication in aerospace and robotic applications via CAN bus, Ethernet, and other robust transports.

UAVCAN is an integral part of the Dronecode core infrastructure (the Dronecode project is maintained by The Linux Foundation) and is used by numerous vendors and companies all over the world.

Learn more from the official website at uavcan.org.

Features

  • Democratic network – no bus master, no single point of failure.
  • Publish/subscribe and request/response (RPC) data exchange semantics.
  • Efficient exchange of large data structures with automatic decomposition and reassembly.
  • Lightweight, deterministic, easy to implement, and easy to validate.
  • Suitable for deeply embedded, resource constrained, hard real-time systems.
  • Supports dual and triply modular redundant transports.
  • Supports high-precision network-wide time synchronization.
  • The specification and high quality reference implementations in popular programming languages are free, open source, and available for commercial use (MIT license).

Software libraries

  • Libuavcan - full-featured, highly robust implementation in C++ for embedded systems and Linux.
  • Libcanard - lightweight implementation in C for deeply embedded systems.
  • Pyuavcan - general-purpose, easy to use Python implementation.
  • Uavcan.rs - highly robust multipurpose implementation in the Rust programming language.

Application domains

  • Manned and unmanned aircraft.
  • Spacecraft.
  • Robots.

Related announcements and discussions

UAVCAN survey 2019

If you are using UAVCAN or anything similar, this survey here is for you: docs.google.com UAVCAN survey 2019 UAVCAN is an open lightweight protocol designed for reliable intravehicular communication in aerospace and robotic applications over CAN bus, Ethernet, and other robust…

UAVCAN 2019 survey

The UAVCAN development team is conducting a survey. Companies that leverage UAVCAN or any similar technologies are invited to participate: docs.google.com UAVCAN survey 2019 UAVCAN is an open lightweight protocol designed for reliable intravehicular communication in aerospace …

Introducing AP_Periph - easy UAVCAN firmware creation

I mentioned this in the ArduPilot thread but I thought this really should be it’s own topic. I have been working for quite some time on ‘AP_Periph’, a framework for easy creation of UAVCAN firmwares for STM32 micros. It leverages two key things: the hwdef.dat system for defining a board (pinout …

UAVCAN v1.0 and ArduPilot

I thought I should put together some of the thoughts we’re having in the ArduPilot dev community regarding UAVCAN v1.0 versus the existing v0 protocol. I’m one of the people leading the effort for UAVCAN in ArduPilot, and so far I’m not convinced that embracing 1.0 is the right thing for us to do, a…

Jani Hirvinen's talk on UAVCAN at the ArduPilot Developer Conference in China

@jani.hirvinen gave a talk with a practical demo about UAVCAN at the ArduPilot Developer Conference on June 21st: Key points that are most relevant within the context of the current roadmap: At 16:16: “We need more optimized user interfaces”. Ostensibly this is perceived to be an adoption roadblo…

UAVCAN 2019 roadmap

We published the UAVCAN roadmap outlining the current status and future goals of the project. UAVCAN Forum – 29 Oct 19 UAVCAN 2019 roadmap For UAVCAN, 2019 is marked by rapidly growing adoption and significant advancement of the technological base of the project. Besid…

UAVCAN 2019 roadmap

For UAVCAN, 2019 is marked by rapidly growing adoption and significant advancement of the technological base of the project. Besides unmanned aircraft of all shapes and sizes that the protocol was originally proposed for…

Supporting UAVCAN v1 in PX4 v1.11

This post outlines the scope of the upcoming modifications to PX4 associated with the release of UAVCAN v1.0. The plan is to replace UAVCAN v0 with v1 in PX4 v1.11, whose release is scheduled in March 2020. The work on the PX4 side will be led by Nuno Marques of dronesolutions.io. We will also be u…

The Wikipedia article about UAVCAN

We need someone to update the article on UAVCAN to bring it up-to-date with the v1 effort. The article is here: en.wikipedia.org UAVCAN UAVCAN is a lightweight protocol designed for reliable communication in aerospace and robotic applications via CAN bus. Main features of UAV…

UAVCAN v1: Branch swap in the public regulated data type repository

The public regulated data type repository has been updated so that the v0 data types are now located in a branch named legacy-v0 instead of master. The new master contains the v1 definitions which used to reside under uavcan-v1.0. This change is another step on our way towards convergence on v1-as-d…