This topic is dedicated to collect and provide links supplied by the community. What you will find here are:
Examples: Gists, posts links to other forum like Stack Overflow which present a whole solution or partial solution.
Starters: for example a Github template project to get you started.
Tutorials: Full explanations like those found in Instructables or Medium and/or videos in YouTube.
Open Source Libraries: what better examples than a whole open source library or implementation?
Example Hardware Setups: There are plenty of affordable and some open source hardware to start exploring UAVCAN.
This topic prime goal is to be informational. We strongly advise and suggest that lengthy discussion or debate of any of the links presented here be carried out at the respective forum dedicated to that link please.
arduino-esp32: ESP32 Dev Module, ESP32 Wrover Module, …
There’s a dedicated thread on this forum for discussing anything related to the library, of course the default GitHub mechanisms of issues and pull requests can also be employed (choose the right medium ).
Here’s a short example of a node publishing a heartbeat using the 107-Arduino-UAVCAN:
Starter Template C Project with CMake for Visual Studio Code
https://github.com/bluecorn/uavcan-template-c is a Visual Studio Code specific starter temple. The code is meant to get you started quickly in building your own libcanard C node. It is meant executed withing a Linux system. Since it used CMake to build then it might work with other IDE’s.
The code is meant to be run using two Raspberry Pi. Each Pi is connected to a MCP2515 module. One Pi is connected to a HC-SR04 ultrasound sensor. The sensor calculated distance to an obstacle is transmitted as a 32bit float. The float is serialized using canard_dsdl.h. At the reciving end the float is deserialized and the distance is printed to the console.
Libcanard example for the NXP S32K1 automotive-grade microcontroller.
This demo transmits the uavcan/node/heartbeat message between a pair of UCANS32K146 development boards, in a interrupt-driven approach both for Tx and Rx.