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.
Resources
One of our projects that uses DroneCAN