Homepage Knowledgebase GitHub

RaspberryPi 3 and UAVCAN


I’m using Orel 20 and studying Sapog. I want to use UAVCAN with Raspberry Pi 3. I already know that Raspberry Pi 3 supports CAN protocol. Then is it possible to use the UAVCAN with a Raspberry Pi 3 in the same way as protocol in Sapog firmware?

Of course it is possible! You have several options at your disposal:

  1. Libuavcan - a full-featured implementation in C++ for embedded systems and Linux. On Linux it supports SocketCAN out of the box. You can also easily code up drivers for CAN adapters which don’t support SocketCAN.
  2. Pyuavcan - implementation in Python (2.7, 3.3+) for Linux, Windows, and OSX. Currently it supports SLCAN-compatible (Lawicel) adapters on all platforms, and SocketCAN on Linux.
  3. Libcanard - simplified implementation in C99. I do not recommend it in your case, as it is only good for deeply embedded, resource constrained systems. It is hard to use.
  4. If you’re feeling adventurous, consider uavcan.rs - a work-in-progress implementation in Rust. YMMV.