UAVCAN (CAN bus for UAV) preliminary release

UAVCAN is a lightweight protocol designed for highly reliable communication in UAV and robotic applications via CAN bus.

Its key features are the following:

  • Very low data overhead - which makes it suitable for high frequency distributed control loops.
  • Democratic network - no single point of failure.
  • Supports network-wide time synchronization with sub-millisecond resolution.
  • Allows to efficiently exchange datagrams longer than can fit a single CAN frame.
  • Publish/subscribe or request/response exchange patterns.
  • Doubly-redundant or triply-redundant CAN bus support.
  • Lightweight, easy to implement protocol (minimal sensor node can be implemented in less than 300 lines of C99).
  • Can be used in deeply embedded systems (the full featured reference implementation in C++ runs on a 32K ROM, 8K RAM MCU).
  • The specification and the reference implementation are open and free to use (MIT License).

Half a year ago, UAVCAN RFC was first announced here: Since then, UAVCAN got a complete specification and a full featured portable reference implementation in C++ for Linux and embedded systems. It's worth noting that the list of officially supported embedded platforms includes NXP LPC11C24 - a low-cost ARM Cortex-M0 MCU with an embedded CAN controller and a CAN driver, i.e. a true single-chip solution for cost-efficient CAN bus applications.

Current release is a preliminary release, which means that some aspects of the specification can be changed in a way that can break backward compatibility. The specification and the standard data type set are expected to be frozen by the end of 2014, which would make a final release. Since the final release, standard data types won't ever change at all, but new types still can be added (it doesn't break the backward compatibility).

PX4 native stack is going to be the first adopter of the protocol; currently UAVCAN support is already merged into its master branch. Also, there's a few products will be announced later this year that use UAVCAN as a primary and only communication interface. Stay tuned!


Views: 3093

Comment by Gary McCray on August 8, 2014 at 9:28am

This is really great Spym,

CAN is a really useful communications medium and it is a shame we haven't been able to make better use of it.

A big thank you for all the great work on this.

Best Regards,



You need to be a member of DIY Drones to add comments!

Join DIY Drones


Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service