Как выбирать ветку прошивки и не путать железо, target и тип аппарата
Почему этот вопрос всплывает постоянно
Один из самых повторяющихся практических вопросов звучит примерно так:
«Какую ветку прошивки ставить на этот полетник?»
Вопрос кажется простым, но в нем сразу смешиваются несколько разных сущностей:
- тип аппарата:
Copter,Plane,Rover,Sub; - семейство прошивки ArduPilot;
- конкретный board target;
- аппаратная совместимость контроллера;
- стабильная или тестовая ветка.
Пользователь часто видит знакомое название платы и считает, что этого достаточно. На практике этого мало.
Что нужно различать
Тип аппарата
Это логика полета и поведения системы:
- мультикоптер;
- самолет;
- VTOL;
- наземная платформа;
- лодка и так далее.
Плата или контроллер
Это аппаратная основа, на которой работает прошивка.
Target / board support
Это конкретная сборка или поддерживаемая конфигурация под совместимое железо.
Ветка прошивки
Обычно пользователя интересует:
stable;- иногда
beta; - реже
latestили dev-ветка.
Для практической эксплуатации стартовать обычно нужно не с «самого нового», а с максимально понятной и поддерживаемой стабильной ветки.
Почему ошибка на этом этапе опасна
Неправильный выбор приводит не только к «неудобству». Последствия бывают серьезнее:
- часть периферии работает не так, как ожидается;
- некоторые функции отсутствуют;
- поведение платы отличается от описанного;
- пользователь начинает лечить настройками то, что на самом деле является проблемой target или совместимости.
Как мыслить правильно
Вместо вопроса «какую прошивку лить на этот полетник» лучше задавать такой набор вопросов:
- Какой у меня тип аппарата?
- Какая точная плата и какой у нее board target?
- Есть ли для нее нормальная поддержка в ArduPilot?
- Нужен ли мне
stableдля эксплуатации или тестовая ветка для исследования? - Какие функции мне реально нужны: GPS, Plane, VTOL, DShot, telemetry, OSD и так далее?
Только после этого выбор прошивки становится инженерным, а не случайным.
Что особенно важно для старого и спорного железа
В community-обсуждениях хорошо видно, что люди часто работают:
- со старыми контроллерами;
- с клонами;
- с платами после ударов;
- с железом, про которое уже мало актуальной документации.
В таких случаях особенно важно:
- не полагаться только на название платы на корпусе;
- проверять официальный список поддерживаемых board targets;
- избегать произвольных экспериментов с ветками, если аппарат нужен для реальной эксплуатации;
- сохранять параметры и логи до и после смены прошивки.
Practical rule of thumb
Если задача не исследовательская, а эксплуатационная, то на старте разумнее:
- брать официально поддерживаемую ветку;
- начинать со
stable; - избегать редких и сомнительных target без сильной причины;
- сначала подтверждать корректную базовую работу платы, и только потом углубляться в tuning и сложные режимы.
Что должно быть на сайте по этой теме
Эта тема просится в отдельный набор материалов:
- как мыслить при выборе прошивки;
- как не спутать board target и тип аппарата;
- когда оправдана beta/dev ветка;
- как проверять совместимость контроллера;
- как документировать переход с одной ветки на другую.
Первоисточники
- ArduPilot Firmware Overview: https://ardupilot.org/ardupilot/
- Firmware download tree example: https://firmware.ardupilot.org/Plane/stable/