Portable reference implementation of the UAVCAN protocol stack in C++ designed for use with Teensy 3.x series MCUs using the Arduino IDE with Teensduino.
UAVCAN is a lightweight protocol designed for reliable communication in aerospace and robotic applications via CAN bus.
The teensy driver and examples are taken from the UAVcan website and tum-phoenix (https://github.com/tum-phoenix/drive_teensy_main and https://github.com/tum-phoenix/drive_teensy_libuavcan) and modified appropriately.
- UAVCAN website
- UAVCAN discussion group
- Libuavcan overview
- List of platforms officially supported by libuavcan
- Libuavcan tutorials
- Teensy UAVcan Forum Thread
Copy the library into the Arduino libraries folder and run examples as you would normally using the Arduino IDE.
- Python 2.7 or 3.3 or newer
Note that this reporitory includes Pyuavcan as a submodule. Such inclusion enables the library to be built even if pyuavcan is not installed in the system. The following components will be installed:
- Libuavcan headers and the static library
- Generated DSDL headers
- Libuavcan DSDL compiler (a Python script named
- Libuavcan DSDL compiler's support library (a Python package named
Note that Pyuavcan (an implementation of UAVCAN in Python) will not be installed. You will need to install it separately if you intend to use the Libuavcan's DSDL compiler in your applications.
The driver is based on the Collins80 Flexcan library as modified in the thread found on this thread: https://forum.pjrc.com/threads/45017...light=nmea2000.
Issues resolved (history on getting this working)
- Subscribing to vendor specific messages
- Compiler errors on missing files in uavcan/protocol directory
- ReceivedDataStructure - can't seem to figure out how to make it work
- Not reading Subscribed ImuData
- Printf revisited?
9/2/2018 - Added a example of controlling a 2-axis Gimbal with a simpleBGC controller clone (2.4 firmware) along with a slightly modified version of Basecam's SBGC-API (added extra commands). Can be seen working on YouTube: https://www.youtube.com/watch?v=eOAdpgBizgQ
9/1/2018 - Merged development Branch into Master. The merge brings in tonton81's new and improbed IFCT CAN Library. It also updates examples to include how to use built in functions to send messages at a specific rate.