DroneCAN связывает автопилот, GPS, ESC, датчики и другие узлы общей CAN-шиной. Надёжность здесь определяется не числом настроек, а физической линией: правильной топологией, двумя терминаторами, общей скоростью и уникальными адресами. Если один из этих уровней нарушен, приложение может показывать то пропадающие узлы, то полностью пустую сеть.

Шина — это линия, а не звезда
Основной кабель должен проходить от одного конца сети к другому. Устройства подключаются короткими ответвлениями. Длинная звезда с несколькими равными лучами создаёт отражения сигнала и становится особенно нестабильной при высокой скорости обмена. CAN_H и CAN_L веди витой парой, вдали от силовых проводов, фаз моторов и антенн передатчиков.
На двух физических концах линии нужны терминаторы. В типичной сети это два сопротивления по 120 Ом; при отключённом питании измерение между CAN_H и CAN_L обычно показывает около 60 Ом, потому что терминаторы соединены параллельно. Это ориентир, а не единственный тест: встроенные терминаторы отдельных устройств и особенности схемы нужно сверять с документацией производителя.

Питание и скорость обмена
DroneCAN передаёт данные по CAN_H/CAN_L, но устройства также нуждаются в совместимом питании и общей земле. Не объединяй выходы двух BEC, если схема явно не допускает параллельную работу. Перед подключением проверь напряжение на разъёме, распиновку и допустимый диапазон каждого узла.
Все участники должны использовать один bitrate. Автоопределение возможно не в каждой реализации и не отменяет проверку. Если сеть работала с одним GPS, но перестала после добавления ESC, сначала сравни скорость, кабель и termination, а не меняй сразу параметры протокола.
Node ID должен быть уникальным
Рабочий node ID находится в диапазоне 1–127. Повтор одного ID у двух устройств приводит к конфликту: сообщения нельзя уверенно связать с конкретным узлом. ID 0 означает ненастроенный узел и может запускать динамическое распределение адреса. Динамический ID выделяется заново после каждого запуска, поэтому в обслуживаемой модели чаще удобнее заранее назначить уникальные статические адреса.
Не смешивай статическую и динамическую адресацию без понятной причины и действующего allocator. Зафиксируй таблицу: устройство, серийный номер, node ID, bitrate, версия firmware и место в проводке.
Диагностика от простого к сложному
- Обесточь модель, проверь распиновку и сопротивление между CAN_H/CAN_L.
- Оставь автопилот и один заведомо исправный узел с корректными концами шины.
- Убедись, что узел появляется стабильно после нескольких холодных запусков.
- Добавляй устройства по одному, каждый раз проверяя ID, статус и ошибки.
- Если сбой возвращается, замени кабель и разъём проблемного участка, затем проверь питание под нагрузкой.
Периодически исчезающий узел обычно указывает на физическую линию, питание или конфликт адресов. Ошибка конкретного сообщения при стабильном NodeStatus скорее относится к настройке приложения или несовместимой версии DSDL. Не обновляй всю сеть одновременно: сохрани рабочую конфигурацию и меняй по одному элементу.
Для сравнения с последовательной телеметрией смотри руководство по MAVLink и бюджету канала.