Перейти к содержимому
1723
Подключение нескольких сервоприводов в Betaflight: ремаппинг моторных выходов

Подключение нескольких сервоприводов в Betaflight: ремаппинг моторных выходов #

Betaflight 4.4+   STM32F405 / F722 Обновлено: 2025

1. Суть задачи

На стандартном квадрокоптерном полётном контроллере выходы M1–M4 заняты моторами. Чтобы подключить дополнительные сервоприводы, нужно переназначить (remap) свободные выходы M5–M8 под сервовыходы через CLI Betaflight.

Это применяется в таких задачах, как:

  • Дроны с гиростабилизированной камерой (gimbal)
  • Сбросы и механизмы захвата
  • VTOL и самолёты с рулями
  • Любые управляемые механические узлы
Betaflight 4.4+ Начиная с версии 4.4 поддержка серво требует явного включения опции Servos в Build Options при сборке прошивки. В Betaflight Configurator это делается на вкладке Firmware Flasher → Custom Defines.
mceclip0_694db.png

2. Пример оборудования (стек)

Для примера берём популярный стек SpeedyBee F405 V3 + BLS 50A 4-in-1 ESC:

КомпонентМодельПримечание
Полётный контроллер SpeedyBee F405 V3 STM32F405, BMI270, BT-модуль
ESC (регулятор) SpeedyBee BLS 50A 4-in-1 Идёт в стеке, DShot600
Сервоприводы MG90S / SG90 / DS3225 PWM 50–333 Гц, 4.8–7.4 В
Приёмник ExpressLRS / Crossfire UART, CRSF-протокол
Внешний BEC 5 В / 3–5 А (Pololu, Matek) ⚠️ Обязателен при 3+ серво

SpeedyBee F405 V3 поддерживает до 9 PWM-выходов: M1–M4 на ESC-коннекторе, M5–M8 — на паяльных площадках, плюс LED-пад как дополнительный PWM-выход. Встроенный BEC: 5 В / 2 А.


3. Проблема с таймерами — главная «головная боль»

Все выходы, привязанные к одному таймеру (TIMx), должны работать на одной частоте и по одному протоколу

Почему возникает конфликт?

Процессор STM32 на полётнике имеет несколько аппаратных таймеров (TIM1, TIM2, TIM3…). Каждый таймер управляет несколькими каналами (выходами M1, M2, LED и т.д.).

Протокол мотораПротокол сервоОдин таймер?Результат
DShot600 PWM 50 Гц Да ❌ Конфликт — серво дёргается или моторы не стартуют
DShot600 PWM 50 Гц Нет ✅ Работает корректно
PWM (мотор) PWM 50 Гц Да ⚠️ Работает, но только если частоты совпадают
Опасно! Если подать на аналоговую сервомашинку (SG90, MG90S) частоту выше 100–200 Гц — она может перегреться и выйти из строя. Всегда проверяйте даташит своих серво.

4. Как проверить совместимость таймеров через CLI

Подключитесь к Betaflight Configurator → вкладка CLI, введите команду:

# Посмотреть все назначения таймеров:
timer

# Посмотреть все ресурсы (пины):
resource show

# Пример типичного вывода:
A08  TIM1  CH1  # M1
A09  TIM1  CH2  # M2
A10  TIM1  CH3  # M3
A11  TIM1  CH4  # M4
B00  TIM3  CH3  # M5 ← другой таймер = можно под серво ✅
B01  TIM3  CH4  # M6 ← другой таймер = можно под серво ✅
C08  TIM8  CH3  # LED ← отдельный таймер = лучшее место ✅
CLI
Важно! Если у M3 и у M5 одинаковый таймер (например, оба TIM1) — назначить M5 под серво не получится, пока M3 занят мотором на DShot. Используйте только выходы с другим TIMx.

5. Какие выходы обычно безопасны?

ВыходТипичный таймерПод сервоКомментарий
M1 – M4 TIM1 Занято Моторы. Не трогать.
M5 – M6 TIM3 Отлично Другой таймер — идеально под серво
M7 – M8 TIM4 / TIM5 Отлично Зависит от конкретного FC, проверьте timer
LED_Strip TIM8 Отлично Почти всегда отдельный таймер — лучшее место
Buzzer GPIO Осторожно Часто стоит транзистор — мешает сигналу серво
💡
Лайфхак Если нужно много сервоприводов изначально — берите FC серии Wing (например, Matek F405-TE, Matek F722-WPX). У них таймеры разведены под серво по умолчанию: выходы S1–S8 не конфликтуют с моторами.

6. Пошаговая настройка

1. Прошивка с поддержкой Servo

В Betaflight Configurator → Firmware Flasher → в разделе Build Options / Custom Defines добавьте опцию SERVOS. Перепрошейте FC.

2. Включите SERVO_TILT в Configuration

Вкладка Configuration → Other Features → включите переключатель SERVO_TILT. Нажмите Save.

3. Проверьте таймеры

Перейдите в CLI и введите timer. Убедитесь, что нужные выходы (M5, M6, LED) имеют другой TIMx, нежели M1–M4.

4. Ремаппинг ресурсов через CLI

Освободите моторные выходы и назначьте их под серво (примеры команд — в разделе 7).

5. Установите частоту PWM для сервоприводов

Аналоговые серво (SG90, MG90S): set servo_pwm_rate = 50

Цифровые серво: set servo_pwm_rate = 250 или 333

6. Подключите серво физически

Сигнальный провод серво → пад M5/M6/M7. Питание (+/−) → внешний BEC 5 В. GND BEC соедините с GND полётника.

7. Проверьте работу

Во вкладке Servos в Betaflight Configurator включите Live mode и подвигайте стики — серво должны откликаться.


    7. Примеры команд CLI

    SpeedyBee F405 V3 — два серво на M5 и M6

    # Освобождаем моторные выходы M5 и M6
    resource MOTOR 5 none
    resource MOTOR 6 none
    
    # Назначаем серво на те же пины
    # B00 = M5 pad, B01 = M6 pad (для F405 V3)
    resource SERVO 1 B00
    resource SERVO 2 B01
    
    # Устанавливаем частоту PWM для аналоговых серво
    set servo_pwm_rate = 50
    
    # Сохраняем и перезагружаем
    save
    CLI

    SpeedyBee F405 V3 — три серво (M5, M6 + LED-пад)

    # Освобождаем M5 и M6
    resource MOTOR 5 none
    resource MOTOR 6 none
    
    # Освобождаем LED-пад от подсветки
    resource LED_STRIP 1 none
    
    # Назначаем три сервопривода
    resource SERVO 1 B00   # M5
    resource SERVO 2 B01   # M6
    resource SERVO 3 C08   # LED-пад (TIM8 — отдельный таймер)
    
    # Частота PWM
    set servo_pwm_rate = 50
    
    # Если серво дрожат — включаем фильтрацию
    set servo_lowpass_hz = 10
    
    save
    CLI
    Внимание! Пины (B00, B01, C08 и т.д.) зависят от конкретного FC! Для вашего контроллера проверьте актуальные пины командой resource show или в официальной документации производителя.

    Полезные команды для диагностики

    # Показать текущее назначение всех ресурсов
    resource show
    
    # Показать все назначения таймеров
    timer show
    
    # Показать настройки сервоприводов
    get servo
    CLI

    8. Питание сервоприводов

    Питание — самая частая причина «неработающих» сервоприводов. В момент движения серво потребляет пиковый ток в 5–10 раз выше номинального.

    Количество сервоИсточник питанияРекомендация
    1 маленькое (SG90) Встроенный BEC FC Допустимо с осторожностью
    2 серво среднего размера Встроенный BEC FC Не рекомендуется
    3+ серво любых Внешний BEC 5 В / 3–5 А Обязательно
    Мощные серво (DS3225) Внешний BEC 6 В / 5 А+ Обязательно
    🚨
    Симптом перегрузки BEC При движении сервы — полётник перезагружается, мигает подсветка, отваливается приёмник. Причина — просадка питания. Решение: внешний BEC, GND которого соединён с GND полётника.

    9. Схема подключения

    Аккумулятор (LiPo)
          │
          ▼
    ┌─────────────┐
    │  4-in-1 ESC │──── M1..M4 ──► Моторы (DShot)
    │  (BLS 50A)  │
    └──────┬──────┘
           │ (шлейф 8-pin)
           ▼
    ┌──────────────────┐
    │  SpeedyBee F405  │── UART ──► Приёмник (ELRS/CRSF)
    │       V3 FC      │
    │                  │── M5 pad ──► SERVO 1 (сигнал)
    │                  │── M6 pad ──► SERVO 2 (сигнал)
    │                  │── M7 pad ──► SERVO 3 (сигнал)
    │                  │── M8 pad ──► SERVO 4 (сигнал)
    │                  │── S9 pad ──► SERVO 5 (сигнал, если нужен)
    └──────────────────┘
            │
    Внешний BEC 5V ──► питание (+/−) серво
    Ключевое правило схемы GND внешнего BEC обязательно соедините с GND полётного контроллера — иначе сервоприводы не будут получать корректный сигнал (нет общей «земли»).

    10. Ссылки и документация

    • мод. : Четверг, 17 сентября 2026
    Подключение нескольких сервоприводов в Betaflight: ремаппинг моторных выходов