CAN Integration 2025
Introduction
Encompasses all the CAN boards we are making and buying for use in our systems and to cover how we intend on integrating them. To cover software for Ardupilot, hardware (terminations and topology), and placement (mechanical but affects topology).
Why
Using CAN based architecture allows us to:
avoid signal integrity problems with longer signal runs as our aircraft get larger and higher datarates required for more advanced sensors
avoid running out of data ports on the pixhawk flight controller (i.e. UART ports)
allow for shorter/fewer cables overall with a busable protocol to save weight
allow for fewer connectors to attach removable portions of an airframe (i.e. wings or arms)
Where
This is currently being applied mostly to Big Quad 2025 & Fixed Wing 2025 while Small Quad 2025 is remaining mostly on normal sensors/peripherals to avoid excess complexity on a small airframe.
Custom Projects
There may be more projects here, feel free to link them! Listed in order of criticality.
For Big Quad 2025
https://uwarg-docs.atlassian.net/wiki/spaces/EL/pages/2594996231
https://uwarg-docs.atlassian.net/wiki/spaces/EL/pages/2496233926
For Fixed Wing 2025
https://uwarg-docs.atlassian.net/wiki/spaces/EL/pages/2540830770
https://uwarg-docs.atlassian.net/wiki/spaces/EL/pages/2534572039
For Future Programs
https://uwarg-docs.atlassian.net/wiki/spaces/ARCHS22/pages/2708963332
https://uwarg-docs.atlassian.net/wiki/spaces/EL/pages/2523856907
https://uwarg-docs.atlassian.net/wiki/spaces/EL/pages/2523594761
Useful COTS Information
COTS Specs
https://docs.px4.io/main/en/assembly/cable_wiring.html
Contains the CAN connector, pin order, twisting, and connector spec we are following
Topology Philosophy
See example system diagram in https://uwarg-docs.atlassian.net/wiki/spaces/EL/pages/2524119043/ESC+CAN+Adapter#Schematic-Wise , but the high level concept is that every board has a CAN input and a CAN output connector (two identical CAN connectors) so that we can daisy chain devices without harness splices. I talked to rocketry and they do CAN harness splices everywhere and it does offer a good amount of board space savings, but custom harnesses suck. MNS does it with two CAN connectors on the PCBA as we intend on doing. Harnesses suck, let’s win on the integration side for our custom projects. See another comment about this here. If CAN splitters are needed see COTS projects like https://holybro.com/products/can-hub or custom projects like https://warg.365.altium.com/designs/A3BFF15E-6855-48FA-B8A6-B31C2041AA33#design . Despite taking up more board space for the connectors, doing this method allows us to minimize the length of the stub required to add another device to the bus. Essentially a harness splice necessitates a longer stub. This doesn't matter for lower CAN data rates we’re working with, but could be nice in the future!
Because our boards have two CAN connectors, we can terminate the end of a bus using external terminations (i.e. https://holybro.com/products/spare-parts-uavcan-micro-termination-plug ).
Harness Tips
Pre-crimped is def the way to go, crimping these tiny things is so difficult.
Even so be careful to put the crimps in the correct slots.
See this conversation for lots of time wasted. Another blunder here.
The guide on https://docs.px4.io/main/en/assembly/cable_wiring.html is very comprehensive.
Knowledge Base Links
Â