Перейти к содержимому
Руководящие принципы разработки полетных контроллеров для производителей (Betaflight)>

Руководящие принципы разработки полетных контроллеров для производителей (Betaflight)>

Разработчику
30 октября 2025

1. Важные условия и положения

1.1 Цель

Целью создания сертифицированной экосистемы оборудования для полетных контроллеров Betaflight и целевых прошивок является обеспечение того, чтобы дизайн аппаратного обеспечения поддерживал правильную работу функций Betaflight и улучшал пользовательский опыт при «подключении», прошивке, программировании и полете.

Высокая летная производительность, достигаемая с помощью Betaflight, зависит от правильного дизайна аппаратного обеспечения, распределения ресурсов микроконтроллера и способности конечных пользователей правильно настраивать программное обеспечение с помощью Betaflight.

Достижение передовых результатов требует минимизации задержки в реакции аппарата на возмущения и входные команды, эффективной фильтрации для удаления колебаний из вычислений системы управления полетом и использования возможностей периферийных компонентов для улучшения летного опыта. Например, такие функции, как продвинутый фильтр RPM, динамический холостой ход RPM и многофункциональный динамический фильтр, требуют достижения микросекундной точности по времени для наилучшей производительности при одновременной связи с электронными регуляторами скорости с использованием двунаправленного DShot, определения ориентации аппарата и расчета оптимальных выходных сигналов смесителя, а также работы множества желаемых периферийных устройств. Этот сложный симфонический процесс тонко запланированных операций может быть реализован надежно при правильном дизайне полетного контроллера.

1.2 Важные термины и глоссарий

ТерминОпределениеСсылка
ADC Аналогово-цифровой преобразователь  
BEC Цепь исключения аккумулятора (Battery Elimination Circuit) Электронная схема стабилизатора напряжения, обеспечивающая заданное напряжение на одном выходе питания
Двунаправленный DSHOT Двухсторонний протокол связи DSHOT для передачи телеметрии от электронного регулятора скорости обратно на полетный контроллер wiki
Bit Bang Bit-banging — это любое использование функций GPIO для цифрового создания сигналов вместо специализированного оборудования. Это может смягчить некоторые конкретные требования к буферизации данных по времени  
DSHOT Цифровой протокол связи Shot, используемый для связи между полетным контроллером и электронным регулятором скорости wiki
ESC Электронный регулятор скорости (Electronic Speed Controller)  
FPV Первое лицо (First Person View) Может также относиться к полной авионике и телеметрии, передаваемой через камеру и систему видеопередачи
GPIO Универсальный вход/выход (General Purpose Input/Output) Перенастраиваемый цифровой сигнальный вывод, который можно выбрать из вывода МК
IMU Инерциальная измерительная система (Inertial Measurement Unit) Аппаратные системы инерциальной навигации, использующие объединенные гироскоп и акселерометр для предоставления точных оценок угловых скоростей, ускорений и ориентации. Они также могут включать магнитометры, барометры и GPS-сигналы
I2C Синхронный последовательный протокол связи Inter-Integrated Circuit, используемый для подключения центрального процессора микроконтроллера к периферийным устройствам  
MCU Микроконтроллер (Micro Controller Unit) Однокристальная микропроцессорная система с интегрированным процессором, памятью и программируемыми модулями ввода/вывода
SPI Bus Последовательный периферийный интерфейс, позволяющий МК взаимодействовать с АЦП, ЦАП, регистрами, RAM-памятью и GPIO  
PCB Печатная плата (Printed Circuit Board) Может также относиться к populated PCB с компонентами
PDB Плата распределения питания (Power Distribution Board) Плата, предназначенная для распределения питания к электронному регулятору скорости, полетному контроллеру и другим периферийным элементам
VDD Напряжение питания для конкретного чипа (Voltage- Operating Voltage)  
VDD_IO Диапазон напряжения, допустимый как напряжение питания I/O (обычно 3,3 В или меньше)  

3.0 Руководящие принципы проектирования полетного контроллера

Эти руководящие принципы предоставляют лучшие практики для физической, электрической и документационной поддержки полетных контроллеров. Эти рекомендации представлены как руководящие принципы, однако отклонение от этих предложенных рекомендаций следует осуществлять только в рамках совместной работы с разработчиками Betaflight в процессе проектирования и прототипирования.

3.1 Лучшие практики проектирования и производительности полетного контроллера

3.1.1 Физическая конфигурация

Правила:

  • GND должен быть как можно ближе к сигналу.
  • Высокоскоростные сигналы должны быть удалены от источников питания.
  • Держите похожие сигналы рядом друг с другом.
  • Всегда минимизируйте путь тока.

Информация:

Для распиновки разъема см. стандарт Betaflight Connector Standard.

3.1.2 Выбор инерциальной измерительной системы (IMU)

Выбор правильной IMU для полетного контроллера имеет решающее значение для оптимальной летной производительности. InvenSense MPU-6000, долгое время стандартный выбор, достигла конца своего жизненного цикла. В качестве замены мы настоятельно рекомендуем ICM-42688-P (см. ниже). Обратите внимание, что гироскопы должны общаться через SPI; гироскопы I2C не поддерживаются. Устаревшие модели, такие как MPU-6500, не будут приняты.

Примечание:

Мы не рекомендуем использовать IMU Bosch BMI-270, поскольку ее гироскоп не откалиброван. В результате, когда гироскоп интегрируется для возврата изменения ориентации, новая оценка ориентации может содержать ошибку, иногда до 5% или 10%. Это вызывает смещение угла до тех пор, пока не будут использованы данные акселерометра. Новые конструкции с этим гироскопом не будут одобрены.

3.1.2.1 Будущие варианты IMU и как выбрать предпочтительные варианты

Поскольку MPU-6000 достигла конца жизненного цикла, в настоящее время рекомендуемым IMU для большинства применений является TDK InvenSense ICM-42688-P. Этот гироскоп был успешно протестирован во многих конструкциях и демонстрирует отличную производительность с низким уровнем шума и хорошей прочностью. Во всех случаях настоятельно рекомендуется, чтобы гироскоп питался от собственного LDO. Для ICM-42688-P это обязательно. Подробнее о соображениях электрического шума см. ниже.

ICM-42688-P также поддерживает внешний тактовый вход, что может повысить стабильность и производительность. Если ваш дизайн позволяет, рассмотрите возможность добавления поддержки внешнего тактового сигнала. См. следующий PR для получения дополнительной информации: https://github.com/betaflight/betaflight/pull/13912

Примечание:

Использование одного таймера с 4 каналами, выделенными для двойных пинов FSYNC/INT гироскопа, было бы идеальным.

Будущий выбор IMU должен осуществляться с тесным участием группы разработчиков Betaflight. Ранние образцы аппаратного обеспечения следует исследовать в сотрудничестве с разработчиками Betaflight, чтобы определить пригодность этих IMU в соответствующих условиях. Возможность настройки фильтрации низких частот IMU и работа в одной и той же среде GRMS/Shock позволяет максимально сохранить портабельность существующих схем фильтрации и настроек, но эта разработка должна происходить с использованием полных образцов аппаратного обеспечения и полетов в репрезентативных режимах полета, чтобы воспроизвести электромагнитную среду, которую встретят конечные пользователи.

Датчики IMU, предназначенные для применения вне sUAS, обычно подвергаются очень жестким электромагнитным средам. Обеспечение электромагнитной совместимости при использовании этих датчиков непосредственно рядом с ультразвуковыми коммутационными мощными MOSFET-устройствами, постоянно работающими радиочастотными устройствами (такими как системы дистанционного управления и FPV-видео), при тепловых нагрузках, связанных с передачей более 1 кВт через всю летную систему, является нетривиальной задачей. Чтобы минимизировать риски улета и сбоев в работе, которые могут наблюдаться, если фильтрация данных IMU и подача питания неадекватны, необходимо провести правильное проектирование схемы и проверочные испытания.

Примечание:

Рекомендуемый дизайн источника питания для IMU ICM-42xxx (также применим к другим).

Эти IMU требуют стабильного и чистого источника питания для правильной работы, при наличии которого они являются очень способными IMU для использования в полетных контроллерах. См. технические характеристики для рекомендаций по фильтрации питания / обходным конденсаторам. Идеальной целью должно быть пиковое-пиковое значение шума менее 50 мкВ на источнике питания.

Рассмотрите возможность использования LDO с выходным током не менее 500 мА, позволяющего установить дополнительные конденсаторы на выходе, два по 20 нФ.

Желательно иметь PSRR>70 дБ до частоты 1 Гц.

Где позволяет пространство, рекомендуется использовать выделенный LDO и схему для IMU. Для ICM-42688-P это обязательно.

3.1.3 Другие датчики

3.1.4.1 Устройства I2C и шины I2C

Барометры и магнитометры должны использовать I2C, а не SPI. Betaflight работает со скоростью шины I2C 800 кГц по умолчанию, поэтому правильный выбор резисторов подтягивания критически важен для предотвращения потери сигнала. Оптимальные значения резисторов подтягивания зависят от емкости шины, но 4,7 кОм — это рекомендуемая отправная точка. I2C — это общая шина, что означает, что несколько устройств могут общаться по одному двухпроводному интерфейсу (SCL и SDA). Однако для надежной связи необходимо уделять особое внимание целостности сигнала и помехозащищенности. Избыточная емкость шины, неправильная трассировка печатной платы или недостаточное сопротивление подтягивания могут привести к ошибкам связи или сбоям устройств.

При проектировании полетного контроллера с датчиками I2C производители должны:

  • Держать трассы I2C как можно короче, чтобы минимизировать емкость и деградацию сигнала.
  • Использовать заземляющую плоскость под трассами I2C для снижения шума и улучшения целостности сигнала.
  • Избегать прокладки трасс I2C рядом с источниками высокого уровня шума, такими как драйверы двигателей и схемы регулирования питания.
  • Выбирать подходящие значения резисторов подтягивания на основе количества устройств и общей емкости шины. В случаях, когда несколько устройств используют общую шину, может потребоваться корректировка значений резисторов подтягивания (например, снижение до 2,2 кОм или увеличение до 10 кОм), чтобы достичь оптимального качества сигнала.

Кроме того, производители должны тестировать стабильность шины I2C в реальных рабочих условиях, включая различные температурные и напряженные сценарии, чтобы обеспечить надежность и устойчивость в полете.

Выбор барометра

Bosch BMP280 — это часто используемый барометр. «Настоящий» экземпляр маркирован «Bosch BMP280» на металлическом корпусе. Иногда он заменяется «клоном», который имитирует BMP280 по внешнему виду и сообщает тот же I2C-адрес и структуры данных, так что он отображается как BMP280 в Betaflight.

Производители должны указывать, что на плате установлен барометр BMP280, только если это настоящий барометр, произведенный компанией Bosch. Если используется клон BMP280, необходимо указать название используемого барометра, например A7L01, ASK03, и производитель должен подтвердить, что клон настолько же точен, как и оригинальный Bosch BMP280.

Рекомендуемый I2C-адрес для BMP280 — 0x76, с SDO, подключенным к земле, что позволяет автоматически определять адрес в Betaflight.

Примечание:

Если доступна только одна шина I2C и она используется как для встроенного барометра, так и для внешнего разъема для магнитометра или другого устройства, рекомендуется включить метод изменения I2C-адреса барометра в случае конфликтов. Это можно сделать, включив перемычки или нулевые резисторы, что позволит легко изменить конфигурацию. Предоставление этой гибкости обеспечивает более широкую совместимость с внешними датчиками и предотвращает конфликты адресов, которые могут нарушить связь.

Пластиковый корпус, индивидуально откалиброванный Infineon DPS310, обеспечивает значительное улучшение абсолютной и относительной точности высоты и гораздо более низкий уровень шума по сравнению с BMP280. Каждый отдельный Infineon DPS310 программируется с пользовательскими коэффициентами коррекции температуры в момент его производства, что обеспечивает исключительно точное измерение температуры и, следовательно, очень точное измерение давления в ответ на изменения температуры.

К сожалению, мы отмечаем, что многие производители используют «клоны» DPS310, обычно с интегральным металлическим корпусом, имеющим маленькое отверстие. Поскольку эти устройства сообщают тот же I2C ID, что и «настоящий» DPS310, и используют те же управляющие и данные регистры, Betaflight сообщает их как DPS310 и возвращает значения давления. Однако, в отличие от настоящего DPS310, логи показали, что эти клоны обычно сообщают неправильные показания температуры, скорее всего, потому что пользовательские температурные коэффициенты для чипа не записываются индивидуально на этапе производства. Неправильные показания температуры могут привести к ошибкам высоты. Многие пользователи сообщали о неправильных показаниях барометра с этими клонами.

Infineon DPS310 была заменена на Infineon DPS368 в конце 2019 года, и DPS368 имеет еще большую точность, чем DPS310.

Примечание:

Металлические клоны барометра DPS310 НЕ следует использовать, если они не сообщают температуру точно. Производители, использующие клоны барометра Infineon DPS310, НЕ ДОЛЖНЫ утверждать, что их барометр является DPS310. Мы настоятельно рекомендуем самый последний барометр Infineon DPS368 или более ранний Infineon DPS310, оба из которых маркированы «Infineon» и поставляются в пластиковом корпусе.

Выбор магнитометра

Магнитометр IST8310 имеет необычную ориентацию осей, где ось Y повернута на 180 градусов по сравнению со всеми другими commonly используемыми магнитометрами. Пользователь должен использовать пользовательские значения ориентации магнитометра для правильной работы IST8310. Невозможно просто применить простое вращение для коррекции IST8310. По этой причине мы не рекомендуем использовать магнитометр IST8310 с Betaflight.

Примечание:

Использование магнитометров с нестандартной ориентацией осей не рекомендуется.

Обратите также внимание, что магнитометр IST8310 может быть сконфигурирован с одним из четырех I2C-адресов. Betaflight будет автоматически подключаться к IST8310 только в том случае, если используется адрес по умолчанию 0x0E. Если используются другие три адреса (0x0C, 0x0D, 0x0F), пользователю нужно будет вручную ввести 12, 13 или 15 в качестве значения mag_i2c_address, иначе он не будет работать.

QMC5883L имеет «нормальную» ориентацию осей и работает хорошо.

Примечание:

Если у барометра или магнитометра есть настраиваемый I2C-адрес, всегда используйте адрес по умолчанию, чтобы он мог быть автоматически обнаружен в Betaflight.

3.1.4 Электрическая изоляция для компонентов датчиков

Отделите VDD от VDD_IO. Реализуйте дополнительную фильтрацию на VDD, если используется один 3В регулятор для МК и датчиков.

3.1.4.1 Регулируемое питание и конфигурации LDO

Ключевым аспектом производительности и долговечности полетного контроллера является дизайн низковольтных шин, которые подают питание на инерциальные датчики движения и микроконтроллер STM. Обеспечение надежного питания с низким уровнем пульсаций для этих устройств обеспечивает максимальный потенциал производительности и долговечность оборудования для работы в сложных электромагнитных средах, присутствующих на этих аппаратах.

Аналогично, шины 3,3 В, 5 В и 9-12 В BEC должны обеспечивать постоянное питание при заданном потреблении тока. Например, рекомендуемый минимальный ток для 3,3 В составляет 500 мА. «4,5 В» (питание от USB 5 В) должно быть способно питать приемник и GPS-модуль, которым может потребоваться более 700 мА.

Стандартные шины питания от батареи 5 В должны обеспечивать как минимум 1 А, предпочтительно 1,5 А до 2 А, чтобы обеспечивать более высокий ток, если предполагается использование с большим количеством периферийных устройств (например, светодиодные полосы, видеосистемы FPV на 5 В или в качестве источника питания для HD-камер).

Также настоятельно рекомендуется обеспечить BEC 10 В в конструкциях полетного контроллера, поскольку это поддерживает системы высокой четкости видео и даже позволяет лучше настраивать параметры питания аналоговых видеосистем. Каждый из них может быть дополнительно подключен к PINIO управляемым переключателям, и/или к перемычкам, которые позволяют конечным пользователям выбирать постоянное включение или транзисторное переключение, особенно если они расположены для поддержки систем видеопередачи.

Такие 10 В регуляторы должны функционировать при полной номинальной нагрузке при входном напряжении до 10 В для поддержки выхода BEC от некоторых ESC.

Опять же, обеспечение надежного питания с низким уровнем пульсаций для этих устройств обеспечивает максимальный потенциал производительности и долговечность оборудования для работы в сложных электромагнитных средах, присутствующих на этих аппаратах.

3.1.4.2 Цепи АЦП (например, для Vbat и датчиков тока)

Все входы АЦП (например, VBAT, CURR, RSSI) должны быть оснащены обходными конденсаторами 100 нФ для минимизации шума.

Рекомендуемый делитель напряжения Vbat для большинства конструкций — 100 К/10 К. Обратите внимание, что допуск резисторов, используемых здесь, влияет на точность масштаба напряжения, установленного в файле конфигурации.

3.1.4.3 Поддержка дополнительных функций

Множество стандартных функций стали обычными в дизайне полетных контроллеров, например, чипы, такие как MAX7456, для обеспечения монохромной функции OSD (On-Screen Display), включая барометры для дополнения функциональности IMU для обеспечения более точных оценок высоты, PINIO транзисторные выходные площадки, светодиодные площадки или дополнительные выходы PWM/двигателя.

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

3.1.4.4 Поддержка отладки SWD

Для помощи в разработке прошивки Betaflight и отладке проблем, специфичных для FC, крайне полезно иметь точки тестирования для линий SWDIO/SWCLK вместе с подключениями 3В3 и земли, чтобы можно было подключить отладчик, такой как Segger JLink или ST-Link. Это значительно ускоряет решение проблем, поэтому, если возможно, не используйте эти выводы (PA13/PA14) для других целей.

3.1.4.5 Поддержка Blackbox

Blackbox объемом не менее 8 МБ также должен быть стандартом на всех FC, поскольку буквально невозможно решить проблемы с настройкой или полетом без blackbox.

3.1.4.6 Светодиоды

FC должен реализовывать как минимум один светодиод для индикации активности. Второй желателен, третий — опциональный. Наличие хотя бы одного светодиода необходимо для пользователей, чтобы помочь диагностировать базовые неисправности. Больше светодиодов полезно для разработчиков, так как мы можем создавать пользовательские образы для диагностики сообщаемых пользователем проблем.

Каждый светодиод должен быть подключен к линии GPIO. Полярность выхода не имеет значения.

Номер LEDЦветОбязательный
0 Синий Да
1 Зеленый Желательно
2 Янтарный Нет

Для деталей использования этих светодиодов см. документацию по светодиодам FC.

Предупреждение:

Выводы PC13, PC14 и PC15 подаются через выключатель питания. Поскольку выключатель может потреблять только ограниченный ток (3 мА), использование GPIO PC13-PC15 в выходном режиме ограничено: 
   1. Скорость не должна превышать 2 МГц при максимальной нагрузке 30 пФ. 
   2. Эти GPIO не должны использоваться в качестве источников тока (например, для управления светодиодом).

3.2 Рассмотрение выбора ресурсов

Предупреждение:

Betaflight не поддерживает совместное использование устройств на шине SPI, так как это блокирует выполнение и приводит к плохой производительности. В основном совместное использование MAX7456 и blackbox вызывает проблемы с поддержкой.

Предупреждение:

Начиная с настоящего момента, новые конструкции полетных контроллеров, использующие серии МК STM F4 и F7, будут ограничены 4 выходами двигателя. Для конструкций, требующих более 4 выходов двигателя, настоятельно рекомендуется использовать МК серии STM32 H7.

BITBANG — это новый режим по умолчанию для не-F4, и разработчики FC должны использовать как можно меньше портов GPIO, чтобы избежать необходимости выделения DMA-потока для каждого порта GPIO. То есть, 8 двигателей на 1 порте GPIO — это оптимально.

Первые 4 двигателя должны использовать 1 порт GPIO и один 4-канальный таймер.

8 двигателей, распределенных по 2 портам GPIO, нормально, если оба используют 4-канальные таймеры.

8 двигателей, распределенных по более чем 2 портам GPIO, — плохая практика и будет отклонена.

Аналогично, оптимально использовать два 4-канальных таймера для 8 двигателей, когда BITBANG отключен.

Также существует выбор между использованием расширенных таймеров или нет: TIM1/TIM8 — расширенные и используются DSHOT BITBANG.

Может быть оптимально использовать TIM1+TIM8 для всех двигателей, чтобы другие таймеры всегда были свободны. Или может быть оптимально использовать таймеры, отличные от TIM1/TIM8, для двигателей, чтобы TIM1/TIM8 были свободны для других целей, когда DSHOT BITBANG НЕ используется.

Примечание:

Когда используется DSHOT BITBANG, расширенные таймеры (TIM1/TIM8 на H7) используют DMA для прямого управления сигналами GPIO, режимы таймера AF для GPIO-выводов НЕ используются. Таймер(ы), используемые DSHOT BITBANG, могут управлять сигналами GPIO на любых GPIO-выводах, даже если они не имеют сигналов таймера AF. TIM1 имеет межпериферийную связь, которой не имеют другие таймеры.

3.2.1 Назначение ресурсов по приоритету

Правильное распределение ресурсов обеспечивает максимальную гибкость в выборе доступных пользователю режимов (например, с DSHOT) и также минимизирует конфликты в назначении таймеров и потоков DMA.

Назначайте каналы двигателей с наивысшим приоритетом.

Примечание:

По состоянию на декабрь 2024 года, МК STM32F4 и STM32F7 ограничены 4 выходами двигателя.

3.2.1.1 Выбор ресурсов F4

Поскольку МК F4 не поддерживают инверсию UART, для поддержки инвертированных последовательных протоколов, таких как SBUS, SmartPort и F.Port, необходимо добавить аппаратный инвертор. Эта функциональность не требуется для одобрения Betaflight, но если она включена, любые выводы, реализующие инверсию, должны быть четко помечены, и, по возможности, не должны приводить к снижению возможностей этого UART при использовании с неинвертированными периферийными устройствами.

Для Betaflight 4.4 и более поздних версий ожидаемая конфигурация по умолчанию будет использовать двунаправленный DShot, поэтому ожидается, что стандартные частоты PID-петли и протокол двигателя 4 кГц и DSHOT300 станут стандартной конфигурацией. Это требует правильного распределения ресурсов двигателя для обеспечения двунаправленной связи DShot.

Если используется Bitbanged DShot, и шина SPI #1 используется для гироскопа, необходимо принять меры, чтобы двигательные выводы были назначены соответствующим таймерам.

Это связано с тем, что Bitbanged DSHOT использует DMA2 для записи в порты GPIO. Если это включено, невозможно включить DMA на шине SPI, использующей DMA2.

На практике это означает, что мы не можем поддерживать DMA на шине SPI 1 (которая использует DMA2) на процессорах F405 и F411. Лучше размещать несколько устройств на других шинах SPI, а не на SPI 1, которая обычно используется для гироскопа. Протокол связи Bitbanged DShot всегда использует таймер 1 и таймер 8 — НЕ используйте эти выводы для каких-либо других функций.

Дополнительное чтение: Раздел 2.1.10 в errata по адресу https://www.st.com/resource/en/errata_sheet/dm00037591-stm32f405407xx-and-stm32f415417xx-device-limitations-stmicroelectronics.pdf

Может происходить повреждение данных на DMA2, если периферийные устройства AHB (например, порты GPIO) обращаются к ним одновременно с периферийными устройствами APB (например, шинами SPI). На практике это означает, что все выводы должны находиться на одном порту, или максимум на двух портах, чтобы требовался только один (или два) поток DMA для bitbanged-операции.

В качестве дополнительного справочного дизайна см. Fenix F405: https://oshwlab.com/jyesmith/fenix-f405

3.2.1.2 Выбор ресурсов F7

Серия МК F7 предоставляет большую гибкость в назначении ресурсов и не требует аппаратных инверторов для поддержки инвертированных последовательных протоколов.

Они также не демонстрируют ограничения SPI 1 DMA, характерные для процессоров F4.

Протокол связи Bitbanged DShot всегда использует таймер 1 и таймер 8 — НЕ используйте эти таймеры для каких-либо других функций.

3.2.1.3 Выбор ресурсов G4, H7 и AT32F435

Серии МК G4 и H7 включают DMAMUX, который позволяет гибкое назначение потоков DMA. Поэтому необходимо избегать только конфликтов таймеров между выходами двигателя и другими выходами.

Примечание:

STM32 F4 МК должны использовать PWM-based DShot по умолчанию из-за ошибки чипа, которая препятствует использованию DMA периферийными устройствами на DMA2 (обычно гироскоп на SPI1), когда используется bitbanged DShot. Все другие МК (F7, H7, G4, AT32F435) должны использовать bitbanged DShot по умолчанию для лучшей производительности и наиболее эффективного использования ресурсов таймера и DMA.

3.2.2 Выберите подходящие UART по умолчанию, чтобы избежать захвата USB DFU

При выборе UART для подключения RX по умолчанию или маршрутизации к разъемам JST следует принимать меры, чтобы избежать тех выводов МК, которые могут мешать USB DFU.

Протокол DFU будет подключаться к любому UART МК, который отправляет трафик, а не только к соединению USB DFU. Это особенность дизайна STM32 F4 МК и не может быть отключена.

Это означает, что любой приемник или GPS-устройство, подключенное к UART1 или UART3 (по умолчанию на платах F405), может «захватить» DFU и заставить МК думать, что последовательный UART должен использоваться для трафика DFU вместо USB.

Избежание этого означает выбор подходящих UART для разъемов по умолчанию, чтобы пилоту было маловероятно подключать приемники или GPS-устройства к этим портам. Это в основном проблема для периферийных устройств, которые питаются от пинов 4v5 и поэтому включены, когда подключен USB.

Более подробную информацию о загрузчиках STM32 можно найти в Application Node 2606 https://www.st.com/resource/en/application_note/an2606-stm32-microcontroller-system-memory-boot-mode-stmicroelectronics.pdf

Загрузчики AT32 описаны в разделе 2.5 по адресу https://www.arterychip.com/download/DS/DS_AT32F435_437_V2.02-EN.pdf

МКВыводы
STM32F411 (PA09, PA10),(PD05, PD06)
STM32F405 (PA09, PA10),(PB10, PB11),(PC10, PC11)
STM32F7xx (PA09, PA10),(PB10, PB11),(PC10, PC11)
STM32G47x (PA09, PA10),(PA02, PA03),(PC10, PC11)
STM32H56x (PA09, PA10),(PA02, PA03),(PD08, PD09)
STM32H72x (PA09, PA10),(PA02, PA03),(PB10, PB11),(PD08, PD09)
STM32H73x (PA09, PA10),(PA02, PA03),(PB10, PB11),(PD08, PD09)
STM32H74x (PA09, PA10),(PB14, PB15),(PA02, PA03),(PB10, PB11)
AT32F435 (PA09, PA10),(PA02, PA03),(PB10, PB11)

3.3 Маркировка, номера версий и документация

Настоятельно рекомендуется, чтобы производитель полетного контроллера, название платы и ревизия дизайна платы были четко указаны на самом полетном контроллере. По возможности, указание имени целевого устройства прошивки или выбор имени целевого устройства для минимизации путаницы снижает вероятность того, что конечный пользователь попытается настроить полетный контроллер с неправильным целевым устройством.

3.3.1 Создание ревизий дизайна и информирование об изменениях

Предоставление достаточной маркировки и документации будет необходимо для одобрения аппаратного обеспечения. Шелкография на полетном контроллере критической информации — идентификаторы выводов, название платы, ревизия и производитель — будет необходима, с достаточной детализацией, чтобы позволить конечным пользователям правильно подключать устройства к полетному контроллеру.

При создании ревизий и улучшений полетного контроллера настоятельно рекомендуется, чтобы указания и документация были доступны, особенно при изменениях распиновки, изменении выходных характеристик или изменении списка компонентов. Любое изменение конфигурации платы, требующее от пользователя изменения поведения конфигурации, должно сопровождаться изменением маркировки, чтобы указать (например, изменение IMU или изменение распиновки паяльных площадок).

Следование стандартным практикам маркировки (например, V, VCC или VBAT для напряжения батареи, G или GND для земли, T для телеметрии ESC, C для аналого-цифрового преобразования тока и т.д.) также настоятельно рекомендуется. Аналогично, предоставление согласованных цветовых схем для кабелей JST и согласованной маркировки на печатной плате всегда предпочтительнее для надежной сборки и устранения неисправностей.

Предоставление файла CLI dump, который позволяет пользователям сбросить полетный контроллер до заводской конфигурации, необходимо, если не предоставляется выделенное целевое устройство. Это особенно актуально, если существуют несколько версий платы, которые используют одни и те же целевые устройства, но имеют значительные аппаратные изменения; файл CLI dump для каждой ревизии полетного контроллера должен быть доступен пользователям.

3.3.2 Реализация дизайна полетного контроллера для готовых к полету аппаратов

3.3.2.1 Общие рекомендации и документация

// Хороший пример правильной документации и поддержки готовых к полету аппаратов — это то, как EMAX делает полные CLI dumps для каждого аппарата, что позволяет пользователям вернуть системы к заводской конфигурации программного обеспечения.

3.3.2.2 Использование системы пресетов Betaflight

Одним из самых мощных инструментов для конечных пользователей, который может сэкономить значительное время и снизить вероятность неправильной конфигурации, является система пресетов. Разработка официального пресета Betaflight и создание запроса на внесение изменений с помощью команды разработчиков Betaflight позволяет конечным пользователям быстро и легко настроить свой аппарат. Гибкость выбора опций, пресетов RC Link и даже пресетов Tune& Filter позволяет поддерживать разнообразные конфигурации продуктов RTF. Применение и использование пресетов не только экономит пользователям значительное время, но и снижает вероятность ошибок ввода данных или неправильной конфигурации, что может быть особенно важно для продуктов, ориентированных на менее опытных пользователей.

Для производителей, предоставляющих конфигурационные пресеты для полетных контроллеров (настоятельно рекомендуется), предоставление документации о предполагаемых местах подключения периферийных устройств, соответствующих выбранным меню пресетов, может значительно помочь конечным пользователям в правильной настройке своего аппарата. Эти документы должны включать выбор соответствующих частот PID-петли, скоростей данных DShot, фильтрации низких частот IMU, установки приемника (включая опции с правильным портом, протоколом, SerialRX_Inversion и SerialRX_HalfDuplex), установки HD FPV MSP-порта, управления VTX (включая протокол(ы), порт и опциональные состояния pit mode), GPS (порт и протоколы), светодиодов и любых подключений периферийных устройств типа PINIO, где применимо.

Сотрудничество с командой разработчиков Betaflight предоставляет возможности для разработки пресетов, которые могут вернуть RTF-аппарат к заводской конфигурации, позволить пользователям быстро настроить системы «Plug& Play» на основе выбранного оборудования RC Link, установленного в соответствии с документацией, и даже позволить разработчикам Betaflight с обширным опытом разработки точных настроек для аппарата создавать диапазон настроек для этого конкретного продукта.

3.4 Совместимость с электронными регуляторами скорости

Значительная часть дополнительной производительности, доступной в Betaflight 4.X и выше, основана на использовании данных телеметрии RPM ESC для использования фильтров RPM Notch и функций Dynamic Idle.

3.4.1 Для 32-битных ESC (BLHeli_32 и AM32)

Betaflight поддерживает все доступные в настоящее время 32-битные ESC с конфигурациями BLHeli_32 и AM32, а также конфигурациями APD, способными поддерживать двунаправленный DShot, и пользовательская настройка работы с отключенным двунаправленным DShot. Дополнительная расширенная телеметрия DShot будет внедряться со временем по мере демонстрации стабильности, однако текущие опции расширенной телеметрии будут включены только по выбору пользователя.

Предоставление 32-битных ESC с прошивкой до версии 32.66 потребует от конечных пользователей перепрошивки ESC. Аппарат не сможет запуститься из-за ошибки RPMFILTER, которая будет присутствовать из-за отсутствия телеметрии RPM. Необходимым решением будет отключение двунаправленного DShot (не рекомендуется) или перепрошивка ESC (настоятельно рекомендуется).

3.4.2 Для 8-битных ESC (BLHeli_S)

Betaflight продолжит поддерживать все текущие конфигурации 8-битных ESC, однако они будут полагаться на включенный по умолчанию двунаправленный DShot.

Для Betaflight 4.4 и последующих выпусков команда Betaflight БОЛЬШЕ НЕ БУДЕТ поддерживать BLHeli_S в качестве конфигурации по умолчанию. Улучшенная летная производительность, возможная при работе с включенными функциями двунаправленного DShot, станет поведением по умолчанию для всех аппаратов Betaflight.

8-битные ESC могут работать с BlueJay, JESC.

Для аппаратного обеспечения, такого как AIO-платы, которые включают ESC и FC, ожидается, что аппаратное обеспечение будет поставляться с установленной прошивкой, соответствующей этим требованиям. Предпочтительным вариантом в этом случае является BlueJay, благодаря возможности настройки частоты PWM и удобству поддержки конечных пользователей для другой функциональности по различным схемам МК.

Несоответствие этому требованию потребует от конечных пользователей перепрошивки ESC, и без перепрошивки аппарат не сможет запуститься из-за ошибки RPMFILTER, которая будет присутствовать из-за отсутствия телеметрии RPM. Необходимым решением будет отключение двунаправленного DShot (не рекомендуется) или перепрошивка ESC (настоятельно рекомендуется).

3.4.3 Для устаревших ESC

Для устаревших ESC, способных использовать только OneShot и Multishot, конечным пользователям придется отключить DShot, чтобы продолжить работу. Эта ситуация относится только к архитектурам ESC, предшествующим BLHeli_S, и не ожидается, что это станет проблемой для подавляющего большинства пользователей. 

4. Справочные таблицы

4.1 Расчетная частота цикла и производительность

Расчетная производительность конкретных сочетаний МК, IMU и протокола ESC DShot.

Это сильно рекомендуемые конфигурации по умолчанию.

Для стандартных конфигураций и реализаций готовых к полету аппаратов следующие конфигурации являются официально рекомендуемыми.

Важно отметить, что включение двунаправленного DShot может потребовать более низких частот цикла PID для полетных контроллеров F411 и F405. Разница в времени цикла составляет 125 мкс или 250 мкс.

МКIMUЧастота дискретизацииСтатус двунаправленного DShotЧастота цикла PIDПротокол DShot
H7XX MPU60X0, ICM2060X, ICM42688P 8 кГц Включен или отключен 8 кГц DSHOT 600
  BMI-270 3,2 кГц Включен или отключен 3,2 кГц DSHOT 300
F7X2, G4XX, AT32 и аналогичные MPU60X0, ICM2060X, ICM42688P 8 кГц Включен или отключен 4 кГц DSHOT 300
  BMI-270 3,2 кГц Включен или отключен 3,2 кГц DSHOT 300
F405 MPU60X0, ICM2060X, ICM42688P 8 кГц Включен 4 кГц DSHOT 300
  MPU60X0, ICM2060X, ICM42688P 8 кГц Отключен (не рекомендуется) 8 кГц DSHOT 600
  BMI-270 3,2 кГц Включен или отключен 3,2 кГц DSHOT 300
F411 UART Rx** MPU60X0, ICM2060X 8 кГц Включен 4 кГц DSHOT 300
  MPU60X0, ICM2060X 8 кГц Отключен (не рекомендуется) 8 кГц DSHOT 600
  BMI-270 3,2 кГц Включен 3,2 кГц DSHOT 300
F411 SPI Rx*** MPU60X0, ICM2060X 8 кГц Включен 2 кГц DSHOT 300
  MPU60X0, ICM2060X 8 кГц Отключен (не рекомендуется) 4 кГц DSHOT 300
  BMI-270 3,2 кГц Включен 1,6 кГц DSHOT 300
  BMI-270 3,2 кГц Отключен (не рекомендуется) 3,2 кГц DSHOT 300

** Для приложений F411 UART Rx, использование обоих доступных UART и включение SoftSerial, акселерометра, большого количества элементов OSD и использования большего количества фильтров может потребовать снижения частоты цикла до 2 кГц для обеспечения стабильности.

*** Нет сильных рекомендаций для новых решений SPI Rx из-за проблем с распределением ресурсов и несогласованности планировщика, которые последовательно возникают при дизайнах SPI Rx. Кроме того, нет экосистем RC, которые активно разрабатывают поддерживаемое решение SPI Rx (ExpressLRS 3.0 и более поздние версии не поддерживают SPI; FrSky не поддерживает SPI Rx по любому протоколу, и другие решения SPI Rx полностью устарели).

Обратите внимание, что использование гироскопов, таких как BMI270, снижает частоту цикла гироскопа с 8 кГц до 3,2 кГц и, следовательно, выгодно для дизайнов F411.

Предупреждение:

Betaflight прекратила реализацию новых дизайнов STM32F411.

BMI270 больше не рекомендуется.

4.2 Определения для целевых устройств

В качестве справки выберите определения для вашего целевого устройства из этого списка, применимые для целевого устройства, чтобы выбрать соответствующее оборудование для облачной сборки.

4.2.1 Определения для ГИРОСКОПА и АКСЕЛЕРОМЕТРА

Определите как минимум один гироскоп и один акселерометр.

#define USE_GYRO_SPI_MPU6000
#define USE_ACC_SPI_MPU6000
#define USE_GYRO_SPI_MPU6500
#define USE_ACC_SPI_MPU6500
#define USE_GYRO_SPI_MPU9250
#define USE_ACC_SPI_MPU9250
#define USE_GYRO_SPI_ICM20602
#define USE_ACC_SPI_ICM20602
#define USE_GYRO_SPI_ICM20689
#define USE_ACC_SPI_ICM20689
#define USE_ACCGYRO_BMI270
#define USE_GYRO_SPI_ICM42605
#define USE_ACC_SPI_ICM42605
#define USE_GYRO_SPI_ICM42688P
#define USE_ACC_SPI_ICM42688P
#define USE_ACCGYRO_LSM6DSO
#define USE_ACCGYRO_LSM6DSV16X

4.2.2 Определения для FLASH

Определите правильные драйверы флеш-памяти только если они физически присутствуют на плате.

#define USE_FLASH_M25P16                     // 16 Мб (2 МБ) Micron M25P16 и многие другие (https://github.com/betaflight/betaflight/blob/master/src/main/drivers/flash/flash_m25p16.c#L68)
#define USE_FLASH_PY25Q128HA          // 128 Мб (16 МБ) PUYA semi 25Q128
#define USE_FLASH_W25N01G                 // 1 Гб (128 МБ) NAND flash support
#define USE_FLASH_W25N02K                 // 2 Гб (256 МБ) NAND flash support
#define USE_FLASH_W25M                        // 16, 32, 64 или 128 МБ Winbond stacked die support
#define USE_FLASH_W25M512                 // 512 Мб (64 МБ, 256 Мб x 2 stacked) NOR flash support
#define USE_FLASH_W25M02G                 // 2 Гб (256 МБ, 1 Гб x 2 stacked) NAND flash support
#define USE_FLASH_W25Q128FV            // 128 Мб (16 МБ) Winbond 25Q128 and 16 Mb(2MB) 25Q16 support(for quad and octo SPI support, for standard SPI use USE_FLASH_M25P16)

4.2.3 Определения для BARO

Определите барометр только если он физически присутствует на плате.

#define USE_BARO_MS5611
#define USE_BARO_SPI_MS5611
#define USE_BARO_BMP280
#define USE_BARO_SPI_BMP280
#define USE_BARO_BMP388
#define USE_BARO_SPI_BMP388
#define USE_BARO_LPS
#define USE_BARO_SPI_LPS
#define USE_BARO_QMP6988
#define USE_BARO_SPI_QMP6988
#define USE_BARO_DPS310
#define USE_BARO_SPI_DPS310
#define USE_BARO_2SMBP_02B
#define USE_BARO_SPI_2SMBP_02B
#define USE_BARO_LPS22DF
#define USE_BARO_SPI_LPS22DF

4.2.4 Определения для MAG

Определите магнитометр только если он физически присутствует на плате.

#define USE_MAG_DATA_READY_SIGNAL
#define USE_MAG_HMC5883
#define USE_MAG_SPI_HMC5883
#define USE_MAG_QMC5883
#define USE_MAG_LIS3MDL
#define USE_MAG_AK8963
#define USE_MAG_MPU925X_AK8963
#define USE_MAG_SPI_AK8963
#define USE_MAG_AK8975
#define USE_MAG_IST8310

4.2.5 Определения для SX1280

Для целевых дизайнов на базе SPI SX1280 добавьте следующие определения:

#define USE_RX_EXPRESSLRS
#define USE_RX_EXPRESSLRS_TELEMETRY
#define USE_RX_SX1280
#define RX_CHANNELS_AETR

4.2.6 Определения для OSD

#define USE_MAX7456

4.2.7 Определения для SDCARD

#define USE_SDCARD

4.2.8 Определения для CC2500

Для целевых дизайнов на базе SPI CC2500 добавьте следующее определение:

#define USE_RX_CC2500

4.3 Использование API облачной сборки

См. ссылку на API облачной сборки.

5. Информация для маркетинговых целей

Betaflight — это программное обеспечение (прошивка) с открытым исходным кодом для управления полетом мультикоптеров и самолетов.

Название и логотипы Betaflight являются зарегистрированными товарными знаками и не могут использоваться в коммерческих продуктах или услугах без предварительного одобрения проекта.

Betaflight является форком Baseflight и Cleanflight, с акцентом на летную производительность, добавление передовых функций и широкую поддержку целевых устройств. Объединяя передовую летную производительность с разнообразной поддержкой аппаратного обеспечения, Betaflight является ведущим решением для высокопроизводительных малых беспилотных летательных аппаратов.

Этот проект управляется и поддерживается волонтерами, с поддержкой сообщества пилотов с различными целями полета.

Пилоты, летающие на Betaflight, выиграли каждое крупное событие FAI, MultiGP и другие крупные мероприятия по гонкам FPV-мультикоптеров с 2019 года.

Руководящие принципы разработки полетных контроллеров для производителей (Betaflight)>
38