08 октября 2021

ExpressLRS - компоненты от BetaFPV

Многие производители комплектующих обратили свой взгляд на открытую и привлекательную ExpressLRS-платформу, о которой рассказывал в предыдущей статье. Исключением не стала компания BetaFPV, выпустившая свои компоненты на 2.4ГГц и 868/915МГц. Взял модуль и приемники на 2.4ГГц, чтобы сравнить с аналогичными от Happymodel.

Первое впечатление - качество. Комплект выглядит добротным законченным решением.

Сначала рассмотрим ExpressLRS-модуль. Он поставляется в картонной коробочке. Внутри все детали были дополнительно расфасованы по пакетикам.

В комплекте есть неплохая инструкция и две антенны на выбор: обычная антенна-сосиска и классная moxon-антенна для полетов на дальние расстояния.

Moxon-антенна поставляется в разобранном виде. С одной стороны у кабеля SMA-разъем, с другой - MMCX-коннектор. Все это легко собирается воедино.

Сам модуль шикарен! На мой взгляд, один из лучших относительно других производителей. Компактный, красивый, функциональный.

Сверху расположена кнопка управления мощностью и бинда. Рядом - индикатор мощности. Все это лаконично интегрировано в стильный алюминиевый радиатор. С нижнего торца модуля виден USB-C-разъем для обновления прошивки. Это очень удобно - подключил и прошил.

С обратной стороны имеется слим-коннектор для подключения к современным пультам. Модуль можно подключить и в JR-слот через адаптер, который выпускает BetaFPV. Для подключения антенны используется SMA-разъем.

Внутри модуля все так же красиво, как снаружи:) Металлический радиатор через термопрокладку прижимается к передающему блоку.

А дальше все идет, как описывал ранее. Модуль устанавливается во внешний слот пульта, в пульте создается модель с CRSF-протоколом.

В передатчике должна быть OpenTX-прошивка не ниже 2.3.12 для поддержки частоты работы модуля в 500Гц. После этой процедуры индикатор на модуле будет светиться одним из трех цветов.

Голубой показывает, что модуль работает на мощности в 100мВт, фиолетовый - 250мВт, красный - 500мВт. Мощность модуля можно переключать долгим нажатием на кнопку. А короткое нажатие переводит модуль в режим сопряжения с приемником, но это никак не отображается. Режим сопряжения отключается автоматически через 5 секунд, если приемник не найден.

С обновлением прошивки модуля вообще не возникло никаких проблем. Просто подключил к компьютеру, в ExpressLRS-конфигураторе задал параметры и нажал "BUILD & FLASH".

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

Оставалось только бросить в пульт, в каталог "/SCRIPTS/TOOLS" LUA-скрипт по ссылке из конфигуратора и все.

Запустив LUA-скрипт, получаем привычный список параметров.

ExpressLRS-приемник от BetaFPV выгодно отличается от аналогичных приемников других производителей. В версии на 2.4ГГц он имеет усилитель мощности! Если учитывать, что в следующей версии ExpressLRS появится динамическое переключение мощности модуля, то для успешной работы этой функции потребуется качественный сигнал телеметрии с приемника, что и обеспечит усилитель мощности. С таким приемником вполне можно улететь километров на 10 или дальше.

Габариты приемника 19.6x12мм, вес без антенны 0.75г. Антенна весит 0.9г.

Приемник подключается к полетному контроллеру, как и любой другой ExpressLRS-приемник: TX-RX, RX-TX и питание.

Как писал ранее, настройка ExpressLRS в прошивке BetaFlight очень простая. В BetaFlight-конфигураторе, в портах указывается, какой порт использует приемник, включением "Serial Rx".

На вкладке конфигурации, в блоке выбора приемника, надо указать "Serial-based receiver..." и протокол "CRSF".

Приемник имеет возможность обновления прошивки всеми тремя способами: через FTDI-адаптер, через полетный контроллер и через WiFi. В режим точки доступа приемник входит примерно через минуту после подачи питания. В приемнике уже установлена довольно свежая прошивка и для обновления через полетный контроллер уже не требуется зажимать кнопку бинда при подаче питания на приемник. Просто припаял его к полетному контроллеру, запустил ExpressLRS-конфигуратор, задал опции и нажал "BUILD & FLASH".

После прошивки приемник сразу же подцепился к пульту, так как был задан параметр "BINDING_PHRASE". В настройках модуля включил телеметрию, в опциях модели сделал поиск сенсоров - пошли данные! Даже без включения телеметрии в полетном контроллере уже видны все базовые параметры соединения: RSSI, качество связи, используемая мощность передатчика, частота работы модуля.

Кроме классических вариантов, приемник без проблем можно обновить и через WiFi, но для этого потребуется больше телодвижений:) А вот модуль через WiFi отказывается обновляться. Что-то производитель не учел...

Подводя итоги, отмечу, что ExpressLRS-модуль и приемник от BetaFPV отличаются по качеству и функционалу от конкурентов в лучшую сторону! Не удержался и к модулю от Happymodel так же прикупил Moxon-антенну на 2.4ГГц, не столько для увеличения дальности связи, сколько просто понравилась:)

22 сентября 2021

ExpressLRS - компоненты от Happymodel

ExpressLRS - новое слово, которое ворвалось в мир радиоуправляемых моделей быстро и неожиданно весной этого года с анонсом модулей, приемников и AIO-полетников от Happymodel. Что это и зачем оно нужно - попробуем разобраться!

Под общим определением ExpressLRS скрывается целая платформа: спецификация протокола, схемы передающих модулей и приемников, код прошивки и конфигуратор. Все это открыто, каждый может сделать свой модуль или приемник, собрать прошивку под свои нужды. В общем, как сейчас принято говорить, это проект с открытым исходным кодом и любой волен делать с этой информацией все, что ему угодно, лишь бы соблюдались условия лицензии GPL-3.0.

Сначала разберем собственно протокол ExpressLRS. Чем же он так хорош? Как утверждают разработчики, на сегодняшний день, это самый быстрый протокол управления с самой минимальной задержкой. Протокол может работать в диапазонах 868/915МГц и 2.4ГГц. Это альтернатива таким системам, как TBS Crossfire, TBS Tracer, ImmersionRC Ghost и FrSky R9M. На некоторые из этих коммерческих продуктов так же можно установить прошивку ExpressLRS. Для связи используется LoRa-модуляция, как и у почти всех конкурентов, кроме TBS. Новый протокол может работать с различной частотой передачи пакетов, от 50Гц до 500Гц. В зависимости от этого, можно получить либо минимальную задержку в управлении (повысить частоту), либо максимальную дальность (снизить частоту). Рекордно минимальная задержка была достигнута на частоте 500Гц в диапазоне 2.4ГГц и составила 4.92мс.

Как удалось получить столь малую задержку? Ответ очевиден - передача пакетов данных минимальной длины. По протоколу ExpressLRS можно передавать 12 каналов управления. Первые четыре канала - пропорциональные, с разрешением 10 бит. Пятый канал однобитный, используется для функции Arm/Disarm. Эти данные передаются в каждом фрейме. Далее возможны варианты. Первый вариант - нормальный: остальные 7 каналов так же, как и пятый, однобитные (как тумблер Вкл/Выкл) и передаются так же в каждом фрейме. Получается общая длина пакета данных 48 бит. Второй вариант - гибридный: с 6-го по 11-й каналы трехбитные, по 6 значений на канал, и последний 12-й канал - четырехбитный, 16 значений на канал. В этом варианте данные о 6-12 каналах передаются не в каждом фрейме, а частями по кругу в последних 7 битах пакета. Если просуммировать количество бит 6-12 каналов и разделить на 7, то получается, что полная информация о данных на этих каналах будет доступна через каждые четыре фрейма. Подробнее - здесь. Кстати, первый вариант очень напоминает структуру быстрого протокола RedPine для SPI-приемников на CC2500-чипе, что сейчас использую на тинивупах. Для меня это было одним из факторов обратить внимание на ExpressLRS.

Поддерживает ли ExpressLRS телеметрию? Да, поддерживает, но ее использовать можно только с гибридным вариантом структуры передаваемых каналов управления. Структура телеметрии была переработана. Теперь она разбита на две части: первая - состояние телеметрии, передается каждые 512мс или, грубо говоря, два раза в секунду. Вторая часть - данные. Как часто их передавать - задается в настройках модуля. И чем чаще передается телеметрия, тем меньше данных по каналам получит приемник. Надо соблюдать некие пропорции, чтобы не гнать большой поток данных с приемника и не забивать телеметрией полезные данные. Разработчики рекомендуют следующие варианты для различных частот передачи данных:

  • 500Гц - соотношение от 1:128
  • 250Гц - соотношение от 1:64
  • 200Гц - соотношение от 1:64
  • 150Гц - соотношение от 1:32
  • 100Гц - соотношение от 1:32
  • 50Гц - соотношение от 1:16
  • 25Гц - соотношение от 1:8

То есть, если взять первый пример, то при частоте 500Гц достаточно одного пакета с телеметрией на 128 пакетов данных.

На каком "железе" может работать прошивка ExpressLRS? На текущий момент некоторые производители уже выпустили свои варианты модулей и приемников, некоторые еще только планируют. Из-за открытости проекта, цена "железа" значительно ниже, чем у конкурентов, что привлекает. Небольшой список доступен ниже.

Передающие модули на 868/915МГц:

Приемники на 868/915МГц:

Передающие модули на 2.4ГГц:

Приемники на 2.4ГГц:

AIO полетные контроллеры с интегрированным приемником ExpressLRS:

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

С какими пультами могут работать ExpressLRS-модули? Чтобы реализовать весь потенциал модуля, потребуется пульт, поддерживающий прошивку OpenTX, с версией не ниже 2.3.12, или EdgeTX - форк OpenTX с поддержкой тачскрина. Для связи между модулем и пультом в свежих версиях прошивки используется CRSFShot-протокол. Он уже будет работать при выборе CRSF-протокола в настройках модели.

Для пультов FrSky QX7,X10/S,X12 требуется установка Crossfire-инвертера. Настоятельно рекомендуется отключать ADC-фильтр, который сглаживает данные со стиков.

Подробнее по работе пультов с ExpressLRS-модулями можно почитать здесь.

Максимальное количество документации собрано на сайте ExpressLRS, часть ссылок на него уже давал выше.

Разберу работу всего этого хозяйства на примере модуля Happymodel ES24TX 2.4G, приемника Happymodel EP2 RX 2.4G и полетного контроллера HappyModel ExpressLRS ELRS F4 2G4 AIO.

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

Модуль Happymodel ES24TX 2.4G поставляется в простейшей картонной коробочке в разобранном виде. Корпус модуля выполнен из очень-очень дешевого пластика, видимо вторичной переработки. На ощупь он просто отвратительный. Производитель уже выпустил новый корпус.

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

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

Позволю себе небольшое лирическое отступление. Выскажу свое мнение на тему ExpressLRS в целом. Многие обзорщики показывают, как далеко стало возможно улетать на 2.4ГГц. Это ли важно? Для меня гораздо важнее минимальная задержка в управлении. Если это работает хотя бы в радиусе одного километра - уже прекрасно. Для гоночного квадрика больше и не нужно. Если планируется улететь на расстояние более километра, я бы не стал использовать частоту 2.4ГГц, а перешел бы на 816/915МГц. И вот тут возникает конфликт интересов. Либо дешевые ExpressLRS-компоненты, либо проверенное временем решение на TBS CrossFire. У вас есть парк дальнолетов, которым нужны десятки приемников, чтобы переживать о цене последних? Я так не думаю. Ваш дальнолет стоит так мало, что даже цена приемника имеет какое-то значение? Тоже не уверен:) Поэтому, мое мнение: для гоночек - ExpressLRS на 2.4ГГц, а для дальнолетов - TBS CrossFire. Так что, в ExpressLRS-теме буду рассматривать решения только на 2.4ГГц.

Для прошивки модуля потребуется ExpressLRS-конфигуратор. По сути, это оболочка пакета инструментов для компиляции бинарной прошивки из исходных текстов с необходимыми параметрами. Описание всех параметров доступно в документации. Сначала выбирается версия прошивки, модель ExpressLRS-модуля и вариант прошивки модуля: либо через USB, либо через Wi-Fi. Первый раз прошивал модуль через USB, иначе можно словить несовместимость LUA-скрипта в пульте с текущей версией прошивки в модуле. Да и этот вариант наиболее удобен. Выбрал таргет "HappyModel_ES24TX_2400_TX_via_UART".

Под выбором таргета стоит ссылка на скачивание LUA-скрипта для выбранной версии прошивки. Надо бросить скачанный скрипт в каталог "/Scripts/Tools" пульта. Остается подправить всего несколько параметров. Первый - "BINDING_PHRASE". Вписывается туда что угодно, лишь бы длиннее шести символов. Эта уникальная фраза используется для связи модуля с приемниками. Можно отключить этот параметр и позже привязывать приемники вручную. Второй очень важный параметр - "HYBRID_SWITCHES_8". Он отвечает за режим передачи каналов: нормальный или гибридный, о чем шла речь раньше. Выбрал нормальный режим и зря, о чем ниже. В этом режиме телеметрия не будет работать, поэтому параметр "ENABLE_TELEMETRY" отключаю, иначе при компиляции прошивки получу ошибку.

Подключаю модуль через USB, выбираю порт для заливки прошивки, жму кнопку "BUILD & FLASH" и жду. Через некоторое время прошивка собирается и заливается в модуль.

Устанавливаю модуль в пульт, создаю новую модель, назначаю в ней протокол CRSF - внутри корпуса модуля появляется зловещее красное свечение:)

В пульте перехожу в системные инструменты, запускаю ELRS-скрипт и смотрю, какие настройки доступны. Кстати, в конце верхней строки отображается реальная частота обмена данными пульта с модулем, например "0:500" - это 500 пакетов в секунду.

Ниже есть выбор частоты генерации пакетов, как часто передавать пакеты телеметрии или ее отключение, выбор мощности. Так как производитель не потрудился вывести USB-разъем наружу, в следующий раз придется обновлять прошивку в модуле менее приятным способом - по воздуху. Для этого меняю таргет в настройках конфигуратора на "HappyModel_ES24TX_2400_TX_via_WIFI" и заново собираю прошивку.

Жму "BUILD", жду, и на выходе, если все хорошо, открывается файловый менеджер с выделенным файлом готовой прошивки.

Этот BIN-файл бросаю на телефон. В пульте запускаю ELRS-скрипт и выбираю "WiFi Update". Появляется надпись "Goto http://10.0.0.1"

В телефоне открываю настройки Wi-Fi и подключаюсь к точке доступа "ExpressLRS TX Module" с паролем "expresslrs".

Затем открываю браузер, если автоматически не открылся, и перехожу по адресу "http://10.0.0.1". Перематываю страницу вниз, выбираю файл прошивки, ранее брошенный на телефон.

Нажимаю кнопку "Update" и жду примерно 10-15 секунд, пока прошивка в модуле не обновится. Если все хорошо, то получаю ответ "Ok" от модуля.

Чтобы убедиться, что прошивка в модуле обновилась, надо запустить ELRS-скрипт в пульте и посмотреть значение хеша в первой строчке. Первые 6 символов должны совпадать со значением релиза на github. Но в более новых версиях здесь выводится просто номер релиза.

С модулем разобрались. Теперь приемник Happymodel EP2 RX 2.4G. Он реально маленький! Такой и на тинивупе не будет обузой:)

Габариты приемника 10.6x10.35x6.05мм, вес 0.45г. Кроме габаритов, большим плюсом этого приемника является керамическая антенна. Можно спрятать приемник так, что он гарантированно не пострадает при авариях. А дальности приема с такой антенной без проблем хватит на 2-3 километра, а больше и не нужно. Схема подключения приемника полностью повторяет схему подключения CrossFire-приемника. Такой приемник можно установить на любой полетный контроллер или переходник, поддерживающий интеграцию с CrossFire-приемником.

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

Подключил один из приемников к полетному контроллеру на свободный UART-порт. После подачи питания на полетный контроллер, приемник неспешно начинает мигать индикатором, а через 20-30 секунд, если пульт не свяжется с приемником, индикатор будет мигать быстро-быстро. Это значит, что приемник перешел в режим прошивки по воздуху. Но сначала надо собрать прошивку. Параметры такие же, как и для модуля, таргет "HappyModel_EP_2400_RX_via_WIFI".

Параметр "AUTO_WIFI_ON_INTERVAL" отвечает за автоматическое включение Wi-Fi-точки на приемнике для обновления прошивки, если до истечения этого времени к приемнику не поступит сигнал от пульта. Если отключить этот параметр, то придется обновлять прошивку приемника другими способами, менее удобными. Если отключить параметр "BINDING_PHRASE", то приемник можно будет забиндить с любым другим модулем, но с некоторыми лишними телодвижениями. Нажимаю кнопку "BUILD" и жду результат. Если все в порядке, то после сборки откроется окно файлового менеджера с выделенным бинарным файлом прошивки приемника.

Как и в случае с модулем, бросаю BIN-файл на телефон. Если приемник включен и быстро-быстро мигает индикатором, то телефоном надо найти точку доступа "ExpressLRS RX" и подключиться к ней с паролем "expresslrs".

В браузере перехожу по адресу "http://10.0.0.1", спускаюсь вниз и выбираю файл прошивки приемника.

Жму "Update". Прошивка заливается довольно быстро, несколько секунд, после чего приемник перезагружается и снова начинает мигать медленно - ждать пульт. Если на экране телефона появилась надпись "Update success! Rebooting...", значит все в порядке - прошивка обновилась.

Настройка ExpressLRS в прошивке BetaFlight довольно проста и примитивна. В BetaFlight-конфигураторе, в портах нужно указать, какой порт использует приемник. В моем случае это UART1.

В конфигурации, в блоке приемника, надо выбрать "Serial-based receiver..." и "CRSF".

Чтобы получить максимальное быстродействие, в настройках приемника надо указать тип сглаживания "Interpolation", ручной режим и интервал 5мс для частоты передачи пакетов в 500Гц, 10мс - для 250Гц и так далее.

На канал AUX11 будет выводиться LQI-значение, а на AUX12 - RSSI, но не нужно указывать RSSI-канал в настройках приемника. Эти значения уже доступны для вывода на OSD.

Остается включить пульт, подать питание на полетный контроллер и все. Индикатор на приемнике будет светиться ровно, отклик по каналам будет виден в BetaFlight-конфигураторе.

Если прошивка приемника была собрана без задания параметра "BINDING_PHRASE", то приемник надо еще и забиндить с пультом. Для этого на короткий интервал времени подается питание на приемник три раза подряд, после чего он переходит в режим сопряжения - индикатор будет мигать двойными прерывистыми вспышками. На пульте запускается ELRS-скрипт и в нем нажимается кнопка "Bind". Если сопряжение состоялось, индикатор на приемнике загорится ровно. Приемник с прошивкой, в которой задан параметр "BINDING_PHRASE", нельзя перевести в режим сопряжения!

Если по какой-либо причине обновление прошивки приемника не получается через Wi-Fi, есть альтернативный вариант - обновление через проброс порта в полетном контроллере или через FTDI-адаптер. Способы схожи с обновлением модуля через USB. Если используется FTDI-адаптер, то приемник подключается к нему, как и к полетному контроллеру: "RX-TX, TX-RX" и питание. Перед подключением FTDI-адаптера к компьютеру, надо на короткое время закоротить BOOT-контакты на приемнике, чтобы перевести его в режим загрузки прошивки. Делал это пинцетом. Индикатор приемника мигнет и загорится ровным светом. В ExpressLRS-конфигураторе выбираю таргет "HappyModel_EP_2400_RX_via_UART", в самом низу выбираю порт FTDI-адаптера и нажимаю кнопку "BUILD & FLASH". Все, прошивка должна обновиться.

Если приемник уже установлен на модель, его можно обновить через проброс порта в полетном контроллере. Перед подключением полетного контроллера через USB, надо замкнуть BOOT-контакты на приемнике, хотя в инструкции сказано, что после версии 1.0.0-RC6 этого делать не надо, но изначально неизвестно, какая версия прошивки стоит в приемнике. Если уверены, что версия старше - ничего замыкать не надо! В ExpressLRS-конфигураторе, выбираю таргет "HappyModel_EP_2400_RX_via_BetaflightPassthrough", а в самом низу - порт, к которому подключен полетный контроллер.

Жму кнопку "BUILD & FLASH" и, после сборки прошивки, наблюдаю за процентами заливки прошивки в приемник. Конфигуратор сам считает параметры полетного контроллера и определит UART-порт, к которому подключен приемник.

Это намного проще, чем через Wi-FI, но бывает, что получается не с первого раза:) Уф, с этим делом разобрались!

На очереди - новый полетный контроллер HappyModel ExpressLRS ELRS F4 2G4 AIO с интегрированным ExpressLRS-SPI-приемником.

Поставляется он в классической пластиковой коробочке. В комплекте есть набор винтиков, демпферы, провод для камеры и силовой провод с PH2.0-разъемом на конце. Внешне полетный контроллер по дизайну очень похож на Happymodel Crazybee F4 Lite от Mobula6. По характеристикам так же близок: F411-процессор, MPU6000-гироскоп, OSD - AT7456E. Блок регуляторов собран на EFM8BB21-чипах, силовые ключи SiA517DJ-T1-GE3. Питается полетный контроллер от 1S-аккумулятора. На SPI-шине висит ExpressLRS-приемник с керамической антенной. Интегрированный видеопередатчик на 40 каналов может работать на мощности 25/100/200мВт. Антенна видеопередатчика сделана на U.FL-разъеме. Вес полетного контроллера без антенны передатчика составляет 4.6г. Для примера, полетный контроллер от Mobula6 весит 4г. Столь значительная разница в весе при практически идентичной компоновке объясняется просто. Толщина платы HappyModel ExpressLRS ELRS F4 2G4 AIO 1мм (справа), а Happymodel Crazybee F4 Lite - 0.8мм (слева).

Хочется верить, что у нового тинивупа Happymodel Mobula6 ELRS плата стала тоньше и легче, но нет, кого я обманываю:)

Новый полетный контроллер хоть и похож на Happymodel Crazybee F4 Lite, но некоторые существенные отличия все же присутствуют.

Производитель обещал наличие двух полноценных UART-портов. Да, они есть, но... второй занят под управление встроенным передатчиком. Это можно исправить, убрав перемычку из олова между TX2 и пятачком SmartAudio. Тогда да, будет два UART-a, но не будет управления встроенным передатчиком:) Есть еще одна перемычка в передней части полетного контроллера снизу. Если ее убрать, то питание встроенного передатчика будет отключено. Так же доступны выводы Video-IN и Video-OUT для подключения внешнего передатчика, если встроенный не устраивает. На плате больше нет инвертированного RX1-вывода для подключения внешнего приемника по SBUS.

Полетный контроллер HappyModel ExpressLRS ELRS F4 2G4 AIO поставил на URUAV UZ80. При установке оказалось, что разъемы моторов развернуты на 180 градусов, сначала даже не обратил на это внимания. Разъем видеоантенны и керамическую антенну приемника дополнительно зафиксировал "клеем для антенн" - тавтология какая-то... Получилась 20-граммовая зубочистка. Надо бы новые пропики Gemfan-двушки на этом квадрике попробовать.

В полетный контроллер залита ранняя версия BetaFlight-4.3.0 с патчами для поддержки ExpressLRS на SPI-шине, но версия ExpressLRS довольно старая, требующая обновления. ExpressLRS-патчи еще не включены в основную версию BetaFlight и вряд ли будут включены до окончательного релиза. Из-за этого с обновлением прошивки есть проблема. Производитель предлагает отслеживать появление новых сборок в запросе на github. Для настройки прошивки потребуется еще не выпущенный BetaFlight-конфигуратор версии 10.8.0. Прежде, чем производить обновление прошивки, надо сделать дамп настроек полетного контроллера командой "diff all" в командной строке BetaFlight-конфигуратора. Результат надо скопировать в файл и сохранить.

Залил в полетный контроллер прошивку от 28 августа. Основные параметры взял из обзора по URUAV UZ80. В регуляторы установил Bluejay-0.14 на 48кГц с такими же настройками. Чтобы посмотреть, какие параметры доступны для настройки ExpressLRS, надо выполнить в консоли BetaFlight-конфигуратора команду "get expresslrs".

Параметр "expresslrs_uid"  отвечает за привязку полетного контроллера к модулю. Привязку можно выполнить несколькими способами. Можно взять значение из лога сборки прошивки для модуля, если в настройках модуля задан параметр "BINDING_PHRASE", и присвоить это значение параметру "expresslrs_uid". Результат сохранить командой "save". Все, приемник будет привязан к модулю.

Другой способ еще проще. Надо на вкладке приемника BetaFlight-конфигуратора нажать кнопку "Bind Receiver". Тот же результат можно получить, если вместо кнопки в конфигураторе, перейти в консоль и выполнить команду "bind_rx". Затем в пульте выполнить ELRS-скрипт и в нем нажать "Bind". После этой процедуры параметр "expresslrs_uid" не будет равен нулю, но и значение не будет совпадать со значением из лога сборки прошивки для модуля, хотя все будет работать. Если полетный контроллер не привязан ни к какому модулю, то значение "expresslrs_uid" равно нулю.

Следующий параметр "expresslrs_domain" имеет одно значение и остается без изменений. Этот параметр отвечает за тип ExpressLRS-оборудования, установленного на полетный контроллер.

Параметр "expresslrs_rate_index" отвечает за частоту приема пакетов данных от модуля. По умолчанию стоит значение "0". Это значит, что прием идет на частоте 500Гц. Таблица значений выглядит так:

  • 0 - 500Гц
  • 1 - 250Гц
  • 2 - 150Гц
  • 3 - 50Гц

Последний параметр "expresslrs_hybrid_switches" отвечает за режим работы ExpressLRS-системы. При значении "OFF" - нормальный режим, при "ON" - гибридный режим с возможностью использования телеметрии. Подробнее по настройке ExpressLRS-приемника на SPI-шине можно почитать в официальной документации.

По итогу, конфигурация 1S-зубочистки получилась такой:

# version
# Betaflight / CRAZYBEEF4SX1280 (HAMO) 4.3.0 Aug 28 2021 / 16:06:30 (e6937f4ea2) MSP API: 1.44

# start the command batch
batch start

# reset configuration to default settings
defaults nosave

# name: UZ80E

# feature
feature -TELEMETRY
feature -AIRMODE

# serial
serial 1 2048 115200 57600 0 115200

# beeper
beeper -ALL

# beacon
beacon RX_LOST
beacon RX_SET

# aux
aux 0 0 0 1900 2100 0 0
aux 1 1 1 1900 2100 0 0
aux 2 2 2 1900 2100 0 0
aux 3 13 3 1900 2100 0 0
aux 4 15 5 900 1100 1 0
aux 5 15 0 900 1100 1 0
aux 6 28 6 1900 2100 0 0
aux 7 35 4 1900 2100 0 0

# adjrange
adjrange 0 0 7 900 2100 12 7 0 0

# vtxtable
vtxtable bands 5
vtxtable channels 8
vtxtable band 1 BOSCAM_A A FACTORY 5865 5845 5825 5805 5785 5765 5745 5725
vtxtable band 2 BOSCAM_B B FACTORY 5733 5752 5771 5790 5809 5828 5847 5866
vtxtable band 3 BOSCAM_E E CUSTOM 5705 5685 5665 5645 5885 5905 5925 5945
vtxtable band 4 FATSHARK F FACTORY 5740 5760 5780 5800 5820 5840 5860 5880
vtxtable band 5 RACEBAND R FACTORY 5658 5695 5732 5769 5806 5843 5880 5917
vtxtable powerlevels 3
vtxtable powervalues 0 1 2
vtxtable powerlabels 25 100 200

# master
set yaw_spin_recovery = ON
set yaw_spin_threshold = 800
set dyn_notch_q = 250
set dyn_notch_min_hz = 125
set dyn_notch_max_hz = 350
set acc_calibration = -74,42,-93,1
set airmode_start_throttle_percent = 50
set dshot_idle_value = 900
set dshot_bidir = ON
set motor_pwm_protocol = DSHOT300
set motor_poles = 12
set vbat_max_cell_voltage = 460
set vbat_min_cell_voltage = 310
set vbat_warning_cell_voltage = 330
set beeper_dshot_beacon_tone = 4
set yaw_motors_reversed = ON
set small_angle = 180
set deadband = 2
set yaw_deadband = 2
set runaway_takeoff_prevention = OFF
set thrust_linear = 25
set simplified_gyro_filter = ON
set osd_warn_link_quality = ON
set osd_warn_rssi_dbm = ON
set osd_rssi_dbm_alarm = -98
set osd_cap_alarm = 300
set osd_tim1 = 1025
set osd_vbat_pos = 2433
set osd_link_quality_pos = 2102
set osd_rssi_dbm_pos = 2096
set osd_tim_1_pos = 2454
set osd_throttle_pos = 2448
set osd_vtx_channel_pos = 2440
set osd_craft_name_pos = 2089
set osd_display_name_pos = 2081
set osd_stat_tim_1 = ON
set osd_stat_tim_2 = OFF
set osd_stat_max_spd = OFF
set osd_stat_battery = ON
set osd_stat_min_rssi = OFF
set osd_stat_bbox = OFF
set osd_stat_bb_no = OFF
set osd_stat_max_esc_rpm = ON
set osd_stat_min_link_quality = ON
set osd_stat_min_rssi_dbm = ON
set cpu_overclock = 120MHZ
set vtx_band = 5
set vtx_channel = 3
set vtx_power = 2
set vtx_freq = 5732
set vcd_video_system = NTSC
set expresslrs_uid = 152,176,177,192,49,82
set name = UZ80E
set display_name = MCHeli

profile 0

# profile 0
set vbat_sag_compensation = 100
set anti_gravity_gain = 2000
set crash_recovery_angle = 5
set crash_recovery = ON
set iterm_relax_cutoff = 10
set iterm_limit = 500
set pidsum_limit = 1000
set pidsum_limit_yaw = 1000
set p_pitch = 68
set i_pitch = 25
set d_pitch = 58
set f_pitch = 250
set p_roll = 68
set i_roll = 25
set d_roll = 58
set f_roll = 250
set p_yaw = 120
set d_min_roll = 0
set d_min_pitch = 0
set d_min_advance = 0
set level_race_mode = ON
set simplified_dterm_filter = ON

# restore original profile selection
profile 0

rateprofile 0

# rateprofile 0
set roll_rc_rate = 18
set pitch_rc_rate = 18
set yaw_rc_rate = 16
set roll_expo = 50
set pitch_expo = 50
set yaw_expo = 40
set roll_srate = 54
set pitch_srate = 54
set yaw_srate = 40
set tpa_breakpoint = 1750

rateprofile 2

# rateprofile 2
set thr_expo = 50
set roll_rc_rate = 18
set pitch_rc_rate = 18
set yaw_rc_rate = 16
set roll_expo = 80
set pitch_expo = 80
set yaw_expo = 40
set roll_srate = 86
set pitch_srate = 86
set yaw_srate = 40
set tpa_breakpoint = 1750

# restore original rateprofile selection
rateprofile 0

# save configuration
save
#

Испытания проводил при мощности модуля 10мВт и 25мВт, чтобы квадрики не очень далеко улетали, но было видно возможности ExpressLRS-системы. Первое впечатление - квадрик летит еще до того, как тронул стики:) Непривычно отзывчиво! Если раньше некоторые маневры закладывал заранее, то сейчас получается, что местами переруливаю, надо привыкать по новой. Чувствую, что могу лететь быстее. Управление очень-очень четкое! Модель буквально идет за стиком.

Забегая немного вперед, отмечу, что в будущих версиях ExpressLRS не будет выбора номального или гибридного режима, останется только гибридный. Не будет возможности собрать прошивку без телеметрии, но будет возможность отключить ее. Такие изменения необходимы для поддержки динамической мощности модуля, тут без телеметрии не обойтись. Будет возможность подключить модуль к локальной сети, чтобы проще обновлять прошивку.

Предвидя один из первых же вопросов по ExpressLRS-системе, сразу отвечу - модули и приемники разных производителей абсолютно совместимы в рамках частотного диапазона 2.4ГГц или 868/915МГц!

Благодаря открытости, на сегодняшний день ExpressLRS-система - наиболее перспективный проект по обеспечению связи с моделями. По моему, в скором времени возможно появление пультов, имеющих встроенную поддержку ExpressLRS:)