Baychi OpenLRS - дружелюбная ЛРС с широкими возможностями )

khomyakk
emax:

Я попробовал изменить прошивку, и на получившемся приемнике, буквально в выходные улетели на 50км.

А можно поподробнее? Файл прошивки? Ну и комментарии, что и как?

Shuricus
Бомбастер:

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

Если честно, не понимаю, какое видео снимать про то как скачать програму и нажать кнопку аплоад. Всего пять шагов:

  1. Найдите, готовую прошивку под именем OpenTiny_RX.cpp.hex во временной папке ПК;
  2. Скачать загрузчик www.ngcoders.com/?dl_id=13 , распаковать и запустить arduinoloader;
  3. Подключитесь к разъему UART приемника через адаптер USB->UART и определите COM-порт адаптера;
  4. Загрузчику укажите файл с прошивкой, порт адаптера и тип процессора – «m328p». В нижнем окне проверьте параметры, скорость работы –b должна быть 57600;
  5. Нажмите «Upload» и сразу подайте питание на приемник.
    После первой загрузки программы, выставьте значения регистров или сделайте привязку к передатчику.

emax

прошивка, что бы из 100мвт передатчика Orange сделать приемник.

rxtx.rar

Бомбастер

Александр спасибо, бум пробовать. Может и кто еще присоединится.

khomyakk
emax:

прошивка, что бы из 100мвт передатчика Orange сделать приемник.

Я так понимаю все действия по настройке совпадают с другим “железом” ?

AndreyI

А я вот хочу вернуться к моему старому вопросу про неработающий сбас оранжевого приемника и сбас2 оригинального футабовского приемника, работающего в режиме простого сбас.
Разобрался в прошивке, нашел один недочет в разборе протокола (из за этого не работал оранжевый сбас) и конкретный глюк который при определенной паузе между пакетами, приводил к ошибкам в распознавании пакетов. Так же поправил в прошивке корректное распознавание пакетов кастрированного сбас2.
Так что если кому надо, милости прошу в ЛС…

Shuricus

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

Что за недочет, и что за глюк? Интересно поподробнее.

Plohish

Уже хрен знает сколько использую Сбас на Байчи и никогда никаких глюков не видел…

kostya-tin
khomyakk:

Я так понимаю все действия по настройке совпадают с другим “железом” ?

да. как я понимаю, в этих прошивках просто переназначены другие выводы атмеги в соответствии с подключением приемника

AndreyI
Shuricus:

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

Что за недочет, и что за глюк? Интересно поподробнее.

Вот это я называю глюком:
// byte i=(val+TICK_IN_BIT/2)/TICK_IN_BIT; // сколько бит формируем (оригинальна строка)
word i=(val+TICK_IN_BIT/2)/TICK_IN_BIT; // сколько бит формируем (исправленая строка)

Переменная val это длительность импульса (значение таймера), размерность переменной 16 разрядов, при этом разрядность i назначается всего в восемь разрядов. Как следствие при определенном значении паузы между пакетами, эта самая пауза программой не увидится. Например при значении val=15530, прога не поймет что это пауза между пакетами и будет пытаться разобрать ее на байты.

Вот это я называю недочетом:
if(++pktPtr >= SBUS_PKT_SIZE) {
endPkt();
// break; // Оригинал
// } // Оригинал
} // Правка
break; // Правка

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

Изменение для SBUS2:
if(pktPtr >= SBUS_PKT_SIZE && eCntr1 == 0 && // если набран кворум, нет ошибок по четности
// sbusPkt[0] == 0x0F && sbusPkt[24] == 0x00 ) { // проверяем начало и конец (оригинальная строка)
sbusPkt[0] == 0x0F && (sbusPkt[24] == 0x00 || sbusPkt[24] == 0x04 || sbusPkt[24] == 0x14 || sbusPkt[24] == 0x24 || sbusPkt[24] == 0x34)) { // проверяем начало и конец (исправленая строка)

Смысл в том что современные приемники поддерживающие SBUS2, да же в режиме простого SBUS, в конце пакета передают не 0, а другие значения. Все они отражены выше.

Ну и для корректного определения ФС с оранжевого приемника, пришлось сделать такое изменение:
if(sbusPkt[23]&0x8 || sbusPkt[23]&0x10) return false;

Тут решение спорное, но работает нормально и на оранже и на оригинальном приемнике.

Plohish:

Уже хрен знает сколько использую Сбас на Байчи и никогда никаких глюков не видел…

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

Plohish
AndreyI:

… Именно по этому алгоритму происходит аппаратный разбор последовательного протокола в атмеге и именно по этому оранжевый приемник работает с OpenLrsNG и не работает с этой прошивкой.

резонный вопрос, в Тини от Эксперта тоже стоит Атмега, почему она работает без проблем?

emax

не забываем про фьюзы, через бутлоадер их изменить нельзя, нужен ISP программатор.

AndreyI
Plohish:

резонный вопрос, в Тини от Эксперта тоже стоит Атмега, почему она работает без проблем?

Так ответ был в предыдущем сообщении, у Эксперта все разбирается аппаратно Т.к. Сбас там подключается на последовательный порт. И соответственно там все работает.

khomyakk
emax:

не забываем про фьюзы

Я чуть выше спрашивал. Оптибут подходит? Дело в том, что у меня был глюк с родным ардуиновским загрузчиком на 100мВт передатчике в режиме приемника. После ряда ФС на 10км приёмник не восстановил связь с ретранслятором. Вернулся домой и сел по отсечке регуля. Вернуть связь помогло передергивание питания на приемник. Прошил оптибут в приёмник и больше такой глюк не повторялся.

khomyakk

Прошил модуль как приемник(Оранж - ещё раз спасибо Эдуарду), через путти подключился. попробовал менять регистры, вроде всё получается.
Теперь вопросы. 😃
Приемник у меня должен выдавать ппм для автопилота.
В регистр 7=1
Что писать в регистр 5? У меня в ретрансляторе стоит 10 канальный приёмник на 2,4ГГц с ппм выходом.
11-18 регистры отвечают за каналы. Так как нет рации на этот диапазон буду биндить с передатчиком с прописанными каналами и в эти регистры пропишутся каналы из передатчика. И частоты совпадут. И мне частоту не надо будет подстраивать. Всё правильно понял?
Теперь регистры по файлсейву, с 31 по 38. В опенлрснг я жестко(галочками) прописал в третий канал 950. Как здесь это осуществить? У меня АПМ настроен на ФС по 3-каналу.

Shuricus
khomyakk:

В опенлрснг я жестко(галочками) прописал в третий канал 950. Как здесь это осуществить?

Это я как раз попросил доделать AndreyI, если он захочет. Только добавлением строк в прошивку.
Пока ФС только кнопкой.

А где вы вообще нашли 31-38 регистры?

khomyakk

Александр, а остальные вопросы можешь прокомментировать?
31-38-й у меня отображается в путти

Shuricus

Это, видимо, emax добавил. Очень круто! А тогда вопрос к Эдику - можно отключить функцию изменения ФС дистанционно? Хочу, что бы сбросить ФС было невозможно. И выложить код с регистрами ФС сюда. Спасибо.

По остальным вопросам вроде все правильно, по пятому регистру - я летаю с 0, если у меня ППМ на входе.

Plohish

судя по F14 это чей то самопал…
на Гитхабе у Байчи только F13