SDAA470 July   2026 AM13E23019

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 DroneCAN: Protocol Overview and Key Features
    2. 1.2 AM13E230x Overview:
      1. 1.2.1 Why AM13E230x for DroneCAN
  5. 2System Architecture
    1. 2.1 Software Stack Overview
    2. 2.2 The Libcanard-MCAN Interface Layer: TX and RX Flow
      1. 2.2.1 TX Flow
      2. 2.2.2 RX Flow
  6. 3Software Application Overview
    1. 3.1 Project Structure
    2. 3.2 SysConfig Peripheral Configuration
    3. 3.3 Memory Pool Allocation
  7. 4Hardware Setup
  8. 5Running the Example and Test Results
  9. 6Key Pitfalls
  10. 7Conclusion
  11. 8Tools and Software

DroneCAN: Protocol Overview and Key Features

DroneCAN is a lightweight, open-source communication protocol built on top of CAN bus, originally developed for UAV systems, and now widely adopted in robotics, industrial, and aerospace applications. DroneCAN defines a standardized message format, transfer segmentation for payloads exceeding 8 bytes, node ID management, and data type signatures for interoperability between nodes from different vendors. Libcanard is the official C implementation of the DroneCAN stack, designed specifically for resource-constrained embedded systems with minimal RAM and no dynamic memory allocator dependency beyond a user-supplied memory pool. Written entirely in C, Libcanard integrates cleanly into existing embedded projects and TI MCU SDK examples without requiring any OS or middleware layer. The stack exposes simple APIs that cover the full lifecycle of DroneCAN transfer encoding, transmission, reception, and decoding. This design is easy to adopt for developers already familiar with CAN-based communication.

DroneCAN ID Format:Figure 1-1 shows the 29-bit ID structure for a DroneCAN broadcast message.

 CAN ID Format Figure 1-1 CAN ID Format

A normal CAN frame id is typically 11 bits, but DroneCAN uses extended frame ID (EFF). Here, the frames are self-describing, and the receiving tool can decode any frame on the wire without any other prior knowledge of the application which makes integration of DroneCAN much easier.

Figure 1-2 shows an example of a Drone System, using DroneCAN for communication.

 Drone System with DroneCAN Figure 1-2 Drone System with DroneCAN

Here, DroneCAN is primarily used for the communication between the flight controller (brain) and electronic speed controller (ESC) which further controls the speed and rotation of the motors. A single CAN bus can handle all communication between different nodes without any overlapping issues. CAN only needs two wires to connect every node on the bus, and this bus handles all fault detection, retransmission of frames and other kinds of errors completely in hardware without any software involvement.