Hi Andrew Tridgell, thanks for the open discussion on this site!
I am the CTO of ADA Aero.
We are developing an all-weather eVtol with a focus on fully automatic flight and post-flight maintenance.
(UAVCAN) Cyphal is an ideal protocol for us since many devices require deep customization and can be functionally scalable in the future
We require a lot of custom electronics in our drones and they are all built around Cyphal.
Here is just some of it:
- Miniature BLDC servos with torque, position, speed feedback.
(for tilt mechanics drive, blade pitch control, elevon control). - Battery controllers with separation of emergency and main batteries, with diagnostics and cell monitoring.
- generator controller for starting the on-board engine and ensuring the most efficient power generation with RPM and torque control.
- Vector ESC with redundancy and telemetry, for correct operation of the stabilization system, the system providing the most efficient flight mode (blade pitch/RPM).
- 3 axis gimbals.
- All other avionics, navigation, speed sensors, lidars.
I can not imagine how we will implement this list on DroneCAN, here are just some of its disadvantages:
- Limited choice of MCU/hardware/applications
- address conflicts
- problems with dynamically assigned addresses
- Fixed data type identifiers (fixed predefined identifiers)
- transport layer facilitates DCPS
- CAN interface support only
Cyphal is very light weight and can be ported effortlessly to any MCU.
With Cyphal support the Ardupilot community will get a more flexible development tool with the following benefits
- more flexibility in configuring the Cyphall protocol
- data-centric publish-subscribe (DCPS) architecture
- more robust and reliable protocol
- resulting systems are scalable, evolvable, and flexible
- more freedom in selecting the MCU for the devices
- CAN (FD), UDP, TCP, serial port.
- MISRA-compliant software ecosystem
Here is a well-structured explanation with examples of why we need Cyphal
It would be nice if in Ardupilot the user could choose which protocol to use Cyphal or DroneCAN