Frequently asked questions
- What is Cyphal?
Cyphal is an open technology for real-time intravehicular distributed computing and communication based on modern networking standards (Ethernet, CAN FD, etc.). It was created to address the challenge of on-board deterministic computing and data distribution in next-generation intelligent vehicles: manned and unmanned aircraft, spacecraft, robots, and cars. The project was once known as UAVCAN.
- How can I deploy PyCyphal on my embedded system?
PyCyphal is mostly designed for high-level user-facing software for R&D, diagnostic, and testing applications. We have Cyphal implementations in other programming languages that are built specifically for embedded systems; please find more info at opencyphal.org.
- PyCyphal seems complex. Does that mean that Cyphal is a complex protocol?
Cyphal is a very simple protocol. This particular implementation may appear convoluted because it is very generic and provides a very high-level API. For comparison, there is a minimal Cyphal-over-CAN implementation in C called
libcanardthat is only ~1k SLoC large.
- I am getting
ModuleNotFoundError: No module named 'uavcan'. Do I need to install additional packages?
We no longer ship the public regulated DSDL definitions together with Cyphal implementations in order to simplify maintenance and integration; also, this underlines our commitment to make vendor-specific (or application-specific) data types first-class citizens in Cyphal. Please read the user documentation to learn how to generate Python packages from DSDL namespaces.
- Imports fail with
AttributeError: module 'uavcan...' has no attribute '...'. What am I doing wrong?
Remove the legacy library:
pip uninstall -y uavcan. Read the Installation guide for details.