Как выбирать ветку прошивки и не путать железо, target и тип аппарата

Почему этот вопрос всплывает постоянно

Один из самых повторяющихся практических вопросов звучит примерно так:

«Какую ветку прошивки ставить на этот полетник?»

Вопрос кажется простым, но в нем сразу смешиваются несколько разных сущностей:

  • тип аппарата: Copter, Plane, Rover, Sub;
  • семейство прошивки ArduPilot;
  • конкретный board target;
  • аппаратная совместимость контроллера;
  • стабильная или тестовая ветка.

Пользователь часто видит знакомое название платы и считает, что этого достаточно. На практике этого мало.

Что нужно различать

Тип аппарата

Это логика полета и поведения системы:

  • мультикоптер;
  • самолет;
  • VTOL;
  • наземная платформа;
  • лодка и так далее.

Плата или контроллер

Это аппаратная основа, на которой работает прошивка.

Target / board support

Это конкретная сборка или поддерживаемая конфигурация под совместимое железо.

Ветка прошивки

Обычно пользователя интересует:

  • stable;
  • иногда beta;
  • реже latest или dev-ветка.

Для практической эксплуатации стартовать обычно нужно не с «самого нового», а с максимально понятной и поддерживаемой стабильной ветки.

Почему ошибка на этом этапе опасна

Неправильный выбор приводит не только к «неудобству». Последствия бывают серьезнее:

  • часть периферии работает не так, как ожидается;
  • некоторые функции отсутствуют;
  • поведение платы отличается от описанного;
  • пользователь начинает лечить настройками то, что на самом деле является проблемой target или совместимости.

Как мыслить правильно

Вместо вопроса «какую прошивку лить на этот полетник» лучше задавать такой набор вопросов:

  1. Какой у меня тип аппарата?
  2. Какая точная плата и какой у нее board target?
  3. Есть ли для нее нормальная поддержка в ArduPilot?
  4. Нужен ли мне stable для эксплуатации или тестовая ветка для исследования?
  5. Какие функции мне реально нужны: 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/