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

Repuposing OStream

Hi Pavel I am beginning to find other uses for OStream and tested in out in a couple of my Teensy sketches. It works like a charm. I would like to know if I can repurpose it into a standard library but would like you permission and what ever license or copyright notice you would like me to…

UAV Gui Tool Hangs on Anonymous Node

Ok. By now you all know that I am still figuring all this out. So please bear with me. I was able to use an Arduino Uno and a CAN-Shield as a CAN-USB interface to the PC using: https://github.com/latonita/arduino-canbus-monitor. Working on getting it over to a Teensy. But that's I stray…

Subscribing to vendor specific messages

Hi all I managed to turn libuavcan into Arduino style library for use with the Teensy 3.x mcus. The teensy driver and examples are taken from the UAVcan site and tum-phoenix (https://github.com/tum-phoenix/drive_teensy_main and https://github.com/tum-phoenix/drive_teensy_libuavcan) and modified…

Any plans on developing more powerful motor controllers with position sensor support?

Hi! Orel and Myxa are great products. Especially due to support of UAVCAN. Any plans on developing more powerful stuff with support for position sensors (Hall sensors at least) and with torque control mode? I would like to see those integrated in solutions like unicycle. Which requires voltages up t…

stm32 uavcan node idle

Hello, I'm trying to make stm32f429 uavcan node to work with an imx6sx node. I have simply configured the imx6 node as a time sync master as shown in the tutorials. The IMX6 board tham i am using has 2 can ifaces. One is a time sync master and the other is a time sync slave. Both are working…

UAVCAN GUI Tool Installation Errors

Hello Everyone, I am trying to install the UAVCAN GUI Tool on the Raspberry Pi 3. As far as I know, no one has successfully done this yet. When I first tried to install it, there were complaints that I did not have/could not get pyqt5 and thus the front end would not work. I have since download…

CANable/CANtact open source USB-CAN adapter and UAVCAN GUI

For future reference, I've been able to get CANable (CANtact open source project) USB-CAN adapter to work with UAVCAN GUI under UBUNTU 18.04 LTS. https://www.tindie.com/products/protofusion/canable-usb-to-can-bus-adapter/ < https://www.google.com/url?q=https%3A%2F%2Fwww.tindie.com%2Fproducts%2Fpr…

Barometer Question

Hey guys a question about enabling the Baro on the GNSS. I have read tht I need to put this code on the mem card to get the baro working, but I see it uses the command “fi” is that a spelling mistake and it should read “If”. # uORB will be started again by the main init script later, it's OK if uor…

GNSS GPS on Pixracer

Hey guys. Last night I installed my GNSS v2 GPS. It’s all powered and connected to the Pixracer. I have a termination plug in the second port so I figure I should be good. I set the GPS type to 9 and rebooted. NO GPS. So then I read that if there is a redundant port it needs termination as w…

Proposed Changes to UAVCAN's High-Level Architecture

I'd like to propose some changes to the high-level architecture for UAVCAN to make it more modular and allow for different types of UAVs to utilize it. The modifications will introduce the following new concepts: - *Specification Levels* – Pre-defined integration points to define and…