/
ZeroPilot CAN

ZeroPilot CAN

Description

The purpose of this task is to integrate existing drivers and peripherals to ZeroPilot. This project involves the following components:

  • Setting up DroneCAN (CAN 2.0) on the L5 boards.

    • At the moment, the L5 boards run CAN FD. DroneCAN is better as it is used in existing peripherals

  • Create the architecture for this component.

    • How peripherals will be added to communicate with the master node

  • Setting up the master node

    • How peripherals will be initialized

      • Unique identifier

    • Communication with specific peripherals

Background

CAN is a communication protocol that allows communication between multiple devices. You can a super cool overview of using CAN with STM32 here.

Architecture

This project can be thought of as the intermediary between peripherals and ZeroPilot. Note that CANBUS is abstracted away, so ZeroPilot itself does not know about CAN. When ZeroPilot asks for data from the sensors, that request is actually being sent to CANBUS, which then calls the hardware drivers for the sensor. A diagram has been attached below.

ZP3 CAN Diagram.png

Resources

WARG CAN Presentation

An example node

One of our projects that uses DroneCAN

ArduPilot DroneCan node implementation

DroneCAN official docs

Related content