UAVCAN

Lightweight data bus standard for reliable communication in aerospace and robotic applications via CAN bus.

Zubax Robotics is the main developer and maintainer of UAVCAN — an open data bus standard designed for aerospace and robotic applications.

UAVCAN is now 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 at uavcan.org, and consider subscribing to the mailing list.

Features

  • Democratic network - no single point of failure.
  • Publish/subscribe or request/response exchange semantics.
  • Allows efficient exchange of large data structures.
  • Lightweight, easy to implement protocol.
  • Supports network-wide time synchronization with microsecond precision.
  • Doubly- or triply- redundant CAN bus.
  • Can be used in deeply embedded, resource constrained, hard real-time systems.
  • The specification and high quality reference implementations are open and free to use.

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

Libcanard question

Dear Libcanard authors! There is a file libcanard/tests/demo.c with a sample implementation of Libcanard library client. It has a function for interaction with CAN subsystem: ``` /** * Transmits all frames from the TX queue, receives up to one frame. */ void processTxRxOnce(SocketCANInstance*…

Ardupilot and UAVCAN

I want to know if UAVCAN under ardupilot should also be able to use zubax gnss? What will be different?…

UAVCAN node connecting

Hi. I am creating a system using UAVCAN and wonder how many nodes I can connect via UAVCAN…

Converter float16 back to float32

Hi, I try to create my base station wherr are two 7 zoll tft's build in. I will have a look on temperature, current and voltages from my vehikel. Now i have a Problem to convert the float16 back to float32. Have someone a ready to use function? Regards Bernhard…

Subscribing to Raw Messages from any ID?

Is there a mechanism to receive all the messages that the underlying CAN Driver sees through UAVCAN, somewhat like a raw tap on the underlying CAN interface? Everything seems to be geared towards having a known structure to UAVCAN and not at being able to receive unknown structures. Would I hav…

which stm32 can1 pins should I use?

Dear friends! Having a libcanard-based program with libcanard/drivers/stm32 can driver, I cannot figure out which pins of `stm32 blue pill` should I connect to to have a can connection? I spend a 2 hours of googling and the result is still missing. Please help me!.. Best Regards, Pavel Vasev…

Sending custom DSDL requests with ease

Hi there! We are developing custom uavcan protocol and thus have some DSDL definition files. Is there a way to send requests (defined in our DSDL definitions) using uavcan_gui_tool or uavcan_nodetool ? We hope this will simplify our debug process (instead of writing own request tool). Thanks…

UAVCAN Firmware Update Questions

Hey Pavel I'm trying to implement a UAVCAN bootloader and think I have the skeleton working, but some things are strange with the UAVCAN GUI Tool and I don't understand what it is doing, or what I need to do to make it happy. I'd like to mention that my node outputs debug info on an uart, whic…

Could not initiolize UAVCAN node

Hi, Pavel I am using a USB-CAN cable to check the libcanard worked fine or not.But after I open the UAVCAN GUI Tool, I got a fatal error as follow: < https://lh3.googleusercontent.com/-vFvQwPMFVPk/WrkBsO1zFzI/AAAAAAAAAAU/Pzj3AvCuApUCUE0ZJfu2LaSJlOVP-HghACLcBGAs/s1600/2018-03-26_22-20-07.png >…

Quick start guide for Myxa v0.1

This post is a tentative quick start guide for Myxa motor controllers. It assumes that the user has a GNU/Linux enabled PC; support for Windows is going to be added pretty soon as well. If you have any questions or concerns, please send us an email to info@zubax.com, or post right here in the commen…