Перейти к содержимому
Настройка Softserial в Betaflight

Настройка Softserial в Betaflight

Что такое Softserial?

Softserial («Софтсериал») — функция Betaflight, эмулирующая последовательный порт (UART) для подключения дополнительных устройств к полётному контроллеру. Она также используется для подключения инвертированного сигнала SmartPort на контроллерах F4 без аппаратной инверсии.

Для чего используется Softserial?

Softserial подходит для устройств и функций, которым требуется UART, но которые не критичны к задержкам и скорости передачи данных, например:

  • SmartAudio (управление видеопередатчиком)

  • GPS

  • SBUS

  • ESC telemetry (телеметрия регуляторов скорости)

  • Smart Port (телеметрия FrSky)

Ключевые особенности и преимущества:

  • На контроллерах с ограниченным числом UART (обычно 2–3 на F3/F4) можно переназначить неиспользуемые пины, например, LED_Strip или PPM, под softserial и подключить к ним дополнительные устройства.

  • Можно “разделить” один UART на две задачи: например, RX пин UART1 использовать для телеметрии ESC, а TX этого же порта — для SmartAudio или SmartPort через softserial. Это позволяет освободить полноценный UART для других целей.

  • Softserial поддерживает инверсию сигнала программно, что особенно полезно для подключения SmartPort на F1 и F4 контроллерах, где нет аппаратных инверторов. Это позволяет подключать SmartPort напрямую без аппаратных модификаций.

  • Softserial лучше всего использовать для однопроводных интерфейсов (например, SmartAudio, SmartPort), где требуется только TX или RX.

Ограничения:

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

  • В Betaflight 4.5 максимальная скорость softserial ограничена 19200 бод, и не поддерживается для MSP-соединений (например, HD OSD).

  • Одновременно можно использовать не более двух softserial портов, и скорость передачи данных на всех softserial портах должна быть одинаковой 

Как настроить Softserial?

1. Включите функцию SoftSerial

  • Перейдите во вкладку Configuration (Конфигурация) в Betaflight Configurator.

  • Найдите опцию SOFTSERIAL и активируйте её (поставьте галочку).

  • Сохраните изменения и перезагрузите контроллер (Save and Reboot).

2. Назначьте пины для SoftSerial через CLI

  • Откройте вкладку CLI.

  • С помощью команды resource переназначьте свободные пины на функции SoftSerial TX и RX.

resource SOFTSERIAL_TX <номер_порта> <пин>

  • Например:

resource SERIAL_TX 11 A09
resource SERIAL_RX 11 A10
save
  • Здесь A09 и A10 — это названия свободных пинов, которые вы используете для SoftSerial (замените на свои значения).

  • После сохранения и перезагрузки в разделе Ports появится новый порт, например, SoftSerial1.

network-asset-softserial-smartport-port-tab-20250703122200-3y7f26z.png

Какие пины можно использовать для Softserial?

Зависит от контроллера и таймеров пинов. Общие варианты:

  • UART TX/RX
  • PPM Input
  • LED_Strip (в CLI — LED_STRIP, не путать с LED — статусным индикатором)
  • Моторы 5–8 (если доступны)

 

Примеры использования Softserial

1. Подключение инвертированного SmartPort к F4-контроллеру

Используя Softserial, мы можем подключить SmartPort напрямую к F4 FC, не беспокоясь об инверсии сигнала.

network-asset-inverted-smartport-f4-flight-controller-fc-softserial-1024x646-20250703122201-pp03xhm.png

  1. Подключите SmartPort к выводу TX порта UART1 (например, пин микроконтроллера A09).
  2. (присвоение пина A09 -> Softserial 1 в CLI):
    resource SOFTSERIAL_TX 1 A09
    save
  3. В разделе Ports должен быть уже выбран SmartPort для Softserial1 (см. выше).
  4. Проверьте настройки в CLI:
    set tlm_halfduplex = on
    set tlm_inverted = off  # Для инвертированного сигнала
  5. Перезагрузите контроллер (отключите USB и батарею).

2. Использование одного UART для SmartAudio и ESC-телеметрии

network-asset-esc-telemetry-flight-controller-fc-smartaudio-connection-same-uart-soft-serial-1024x486-20250703122202-7ua38kx.png

 Используя контакты TX и RX одного и того же UART для двух устройств, вы можете освободить еще один UART для чего-то другого. 

  1. RX UART1 — для телеметрии ESC, TX UART1 — для SmartAudio.
  2. В CLI:
    resource SERIAL_TX 11 A09  # Softserial1
    save
  3. Во вкладке Ports в Betaflight назначьте:
    • UART1 → ESC,
    • Softserial1 → SmartAudio.

network-asset-softserial-smartaudio-esc-telemetry-port-tab-20250703122203-u2blpb2.png

3. Использование LED_Strip для SmartPort

network-asset-esc-telemetry-flight-controller-fc-smartaudio-connection-sdqawfawd.jpg

Eсли у вас есть свободный пин LED_Strip на вашем FC, и вы не используете функцию LED, вы можете превратить его в порт softserial и использовать его для таких устройств, как SmartPort и SmartAudio.

  1. Освободите пин LED_Strip:
    resource LED_STRIP 1 none
    resource SOFTSERIAL_TX 1 B06  # Пример: пин B06
    save
  2. В разделе Ports выберите SmartPort для Softserial1.

Возможные ошибки

  • «Index not between 1 and 10»:
    • Убедитесь, что Softserial включён в настройках.
    • Некоторые F1/F3-контроллеры исключают Softserial из прошивки из-за ограничений памяти.

Источники

182 ПОЛЕЗНЫЙ КОНСПЕКТ?
0.0/3 rating (0 votes)
Настройка Softserial в Betaflight