Перейти к содержимому
Переназначение выводов в Betaflight
10
июня
2025

Переназначение выводов в Betaflight

lqfp100.png

Переназначение выводов — отличная функция в Betaflight, которая позволяет менять расположение выводов на полётном контроллере. С помощью этой возможности вы можете изменить порядок двигателей, переназначить выводы в случае повреждённых контактных площадок и многое другое.

Дополнительные материалы: Betaflight

Зачем может понадобиться переназначение выводов?

  • Недостаточно UART TX/RX
  • Повреждённые контактные площадки
  • Требуется больше выходов для управления двигателями (например, для гексакоптера)
  • Отсутствие входа для PPM-приёмника
  • Отсутствие выхода для программируемой ленты LED
  • Выход для сервомотора
  • Изменение порядка выходов двигателей

Как работает переназначение выводов в Betaflight

На процессоре много выводов (как показано на верхнем изображении), и каждый из них может быть назначен определённой функции в Betaflight. Переназначение выводов позволяет нам переопределять эти назначения.

Эта функция доступна в Betaflight с версии 3.1 и выше.

В интерфейсе CLI Betaflight Configurator введите команду resource, чтобы увидеть доступные функции и текущие привязки к выводам:

resource

# resource resource BEEPER 1 C15 resource MOTOR 1 B07 resource MOTOR 2 B06 resource MOTOR 3 B05 resource MOTOR 4 B04 resource PPM 1 B03 resource PWM 1 B00 resource PWM 2 B01 resource SONAR_TRIGGER 1 B00 resource SONAR_ECHO 1 B01 resource SERIAL_TX 1 A09 resource SERIAL_TX 2 A14 resource SERIAL_TX 3 B10 resource SERIAL_TX 11 B01 resource SERIAL_RX 1 A10 resource SERIAL_RX 2 A15 resource SERIAL_RX 3 B11 resource SERIAL_RX 11 B00 resource LED_STRIP 1 A08

Формат вывода следующий:

resource [Функция] [Индекс] [Порт]

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

Ниже мы рассмотрим некоторые распространённые случаи использования переназначения ресурсов в Betaflight.

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

Несколько замечаний:

  • Выходы двигателей можно свободно менять местами, но если вы хотите добавить дополнительный выход, то можете столкнуться с конфликтами DMA при использовании протокола DShot. Лучший вариант — использовать вывод от ленты LED.
  • Аппаратные последовательные порты нельзя переназначать, но их выводы можно использовать для других задач.

Вывод ленты LED_STRIP — очень удобен!

Вывод ленты LED_STRIP можно использовать практически для всего: выход двигателей, программные последовательные порты и т. д., потому что он обычно имеет собственный таймер и канал DMA.

Убедитесь, что вы используете именно LED_STRIP, а не LED! Это разные ресурсы. LED — это маленький индикатор питания на плате.

Контроль камеры (Camera Control) - используйте осторожно!

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

Ресурсы ADC

Это аналогово-цифровые преобразователи:

  • ADC_Batt — вход напряжения батареи
  • ADC_Curr — вход датчика тока
  • RSSI — вход сигнала RSSI

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

Как изменить вывод ленты LED Strip?

Например, если вы хотите переназначить ленту LED Strip на вывод A09, просто введите в CLI:

resource LED_STRIP 1 A09
save
    

Обратите внимание, что используется именно LED_STRIP! Если вы случайно переназначите LED, то просто выключите статусный светодиод на плате.

Как изменить порядок двигателей на полётном контроллере

Внимание! : С октября 2022 г можно изменять порядок двигателей через графический интерфейс Betaflight Configurator, без использования CLI. Если вы всё-таки предпочитаете "постучать в бубен", продолжайте читать.

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

Сначала проверьте текущий порядок двигателей через вкладку "Motor" в Betaflight.

bandicam_2025-06-10_07-50-01-534.jpg

Снимите все пропеллеры!

Используйте вкладку двигателей, чтобы запустить каждый двигатель по очереди (от #1 до #4) и запишите порядок на бумаге (рисунок ниже).

Введите команду resource в CLI и найдите строки с назначением выводов для двигателей:

resource MOTOR 1 B07
resource MOTOR 2 B06
resource MOTOR 3 B05
resource MOTOR 4 B04
    

Сохраните эти данные в текстовом файле на всякий случай.

Hапишите номера выводов рядом (B07 ... B04) с двигателями.

Затем замените номера двигателей на правильные:

  • Задний правый двигатель должен быть #1
  • Передний правый двигатель должен быть #2
  • Задний левый двигатель должен быть #3
  • Передний левый двигатель должен быть #4

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

bandicam_2025-06-10_08-17-35-278.jpg

В нашем примере:

  • B06 должен быть "двигатель #1"
  • B04 должен быть "двигатель #2"
  • B07 должен быть "двигатель #3"
  • B05 должен быть "двигатель #4"

Чтобы изменить назначение выводов, введите в CLI:

resource MOTOR 1 B06
resource MOTOR 2 B04
resource MOTOR 3 B07
resource MOTOR 4 B05
save
    

Готово!

Начиная с Betaflight 4.3, вы можете менять порядок двигателей через графический интерфейс Betaflight Configurator. Больше нет необходимости использовать CLI.

Как изменить вывод пищалки (Beeper)

Это так же просто, как описанные выше примеры... но есть нюанс!

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

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

Поэтому перемещать вывод пищалки не рекомендуется, но если вы решите это сделать, вам понадобится внешняя схема, например, такая:

bandicam_2025-06-10_08-28-43-833.jpg

(Для определения точности схемного решения обратитесь к производителю вашей платы.)

Могут ли несколько функций использовать один и тот же вывод?

Иногда один вывод может быть назначен нескольким функциям. Если это не ваша цель, лучше освободить вывод, удалив ненужные функции.

Чтобы проверить, введите resource в CLI. Например, вывод C08 используется сразу двумя функциями: LED_STRIP и CAMERA_CONTROL.

Дополнительные материалы: Как настроить управление камерой в Betaflight?

network-asset-fpv-camera-control-fc-flight-controller-resource-led_strip-cli-betaflight-duplicated-pin-20250610071606-93hyuq3.jpg

Если вы не используете ленту LED Strip, но вам нужен вывод для управления камерой, освободите вывод C08 от LED_STRIP командой:

resource LED_STRIP 1 none
    

Готово! :)

Не хватает последовательных портов?

Если закончились аппаратные UART-порты, вы можете использовать выводы от LED_STRIP, PPM или даже неиспользуемые выходы двигателей.

Какие выводы нельзя переназначить?

Напряжение (5V и напряжение батареи) и земля (GND) не могут быть переназначены, так как они физически подключены к источнику питания, а не проходят через процессор.

Вход и выход камеры (для OSD в Betaflight) также нельзя переназначить, так как они связаны с чипом OSD, а не с основным процессором.

Раздел: Как сделать.., Конспекты

Переназначение выводов в Betaflight