SoftSerial создаёт последовательный порт программными средствами, когда на полётном контроллере не выведен свободный аппаратный UART. Это аварийный инструмент для медленных и некритичных потоков, а не равноценная замена UART. В стабильной Betaflight 2025.12.5 его разумно применять для однопроводного управления аналоговым VTX или умеренной телеметрии, заранее принимая ограничения скорости и нагрузки.
Чем виртуальный порт отличается от UART
Аппаратный UART принимает и формирует сигнал отдельным блоком микроконтроллера. SoftSerial делает это кодом и таймером, поэтому занимает вычислительное время, зависит от доступного ресурса вывода и хуже переносит высокий поток. Официальная документация рекомендует аппаратный UART всегда, когда он доступен.
Начиная с Betaflight 4.5 SoftSerial ограничен скоростью 19 200 бод. Одновременно допускаются два виртуальных порта, а скорость всех SoftSerial должна совпадать. Прошивка также изменила имена ресурсов: старые команды для 4.4 нельзя бездумно переносить в 2025.12.
Подходящие и неподходящие задачи
- Обычно подходит: односторонний TX для SmartAudio или Tramp, низкоскоростная ESC-телеметрия на RX, некоторые однопроводные телеметрические интерфейсы.
- Не подходит: serial RX радиоприёмника, MSP-конфигурация, HD OSD через MSP, Blackbox и другие чувствительные к пропускам потоки.
- Не подходит для Rescue: современный GPS требует аппаратный TX/RX, а типичная скорость и автоконфигурация превышают возможности SoftSerial.
Получение координат на очень низкой частоте теоретически возможно после ручной настройки GPS, но это не делает канал пригодным для GPS Rescue или удержания позиции. Навигационный режим нельзя строить на порте, который уже выбран из-за нехватки ресурсов.
Подготовка без случайного remap
Сними пропеллеры и сохрани полный backup. Ошибка resource mapping может отключить моторный выход, приёмник или LED-площадку.
- Проверь схему и target конкретной ревизии FC.
- Выполни
resource show allи сохрани вывод вместе сdiff all. - Найди неиспользуемую площадку с подходящим таймером; само наличие пина ещё не гарантирует работу.
- Освободи только подтверждённый ресурс и назначь
SOFTSERIAL_TXилиSOFTSERIAL_RX. - Включи функцию SoftSerial, сохрани конфигурацию и после перезапуска проверь появление порта.
- Назначь ему одну допустимую функцию во вкладке Ports.
Для Betaflight 4.5 и новее синтаксис назначения передающего вывода имеет вид RESOURCE SOFTSERIAL_TX 1 <PIN>. Подставлять пин из чужого примера нельзя: обозначение относится к микроконтроллеру конкретной платы. Перед освобождением LED_STRIP, PPM или другого ресурса убедись, что он действительно не используется.
Направление указывают относительно FC: TX передаёт команды из контроллера в периферию, RX принимает данные устройства. SmartAudio обычно использует TX, а односторонняя ESC-телеметрия — RX. Надпись TX на внешнем модуле соединяется с RX контроллера, если это обычный двухпроводный интерфейс.
Проверка результата
Команда serial показывает настроенные порты; SoftSerial 1 и 2 имеют свои идентификаторы. Затем проверяют функцию на минимальной конфигурации. Для VTX меняют канал или мощность на столе с установленной антенной и охлаждением. Для телеметрии наблюдают стабильность данных, а не единичное появление значения.
Проверь загрузку задач и сделай короткий стендовый тест всех критичных систем: приёмника, OSD, моторов без пропеллеров и arm flags. Официальная документация отмечает, что SoftSerial обычно требует 4 kHz PID loop даже на производительном MCU. Не повышай loop rate ради прежних цифр, если виртуальный порт уже увеличил нагрузку.
Заранее подготовь откат: сохрани строки исходного ресурса и удаляй только свои назначения. Если функция нестабильна, верни площадке заводской ресурс и перенеси устройство на аппаратный UART. Не маскируй пропуски увеличением скорости сверх официального лимита.
Типичные ошибки
- использована команда resource mapping от старой версии Betaflight;
- вывод не имеет подходящего таймера или конфликтует с DMA;
- TX и RX перепутаны относительно направления данных устройства;
- скорость периферии выше 19 200 бод;
- на SoftSerial назначен MSP или serial RX, которые прошивка не поддерживает;
- после обновления восстановлен старый dump без проверки target и ресурсов.
SoftSerial полезен, когда нужен один медленный сигнал и цена отказа невысока. Если задача связана с управлением, HD-интерфейсом или навигационной безопасностью, правильное решение — освободить аппаратный UART или выбрать FC с достаточным количеством портов.
Источники для подготовки: материал profpv.ru и официальная документация Betaflight. Текст и структура созданы редакцией WARPfly заново.