Baychi OpenLRS - дружелюбная ЛРС с широкими возможностями )
Я попробовал изменить прошивку, и на получившемся приемнике, буквально в выходные улетели на 50км.
А можно поподробнее? Файл прошивки? Ну и комментарии, что и как?
Вот если бы кто отважился сделать вот такое видео как этот турок с Openlrsng, но с Байчи, то цены бы не было этому человеку. Много бы вопросов отпало и людей прибавилось к прошивке Байчи.
Если честно, не понимаю, какое видео снимать про то как скачать програму и нажать кнопку аплоад. Всего пять шагов:
- Найдите, готовую прошивку под именем OpenTiny_RX.cpp.hex во временной папке ПК;
- Скачать загрузчик www.ngcoders.com/?dl_id=13 , распаковать и запустить arduinoloader;
- Подключитесь к разъему UART приемника через адаптер USB->UART и определите COM-порт адаптера;
- Загрузчику укажите файл с прошивкой, порт адаптера и тип процессора – «m328p». В нижнем окне проверьте параметры, скорость работы –b должна быть 57600;
- Нажмите «Upload» и сразу подайте питание на приемник.
После первой загрузки программы, выставьте значения регистров или сделайте привязку к передатчику.
прошивка, что бы из 100мвт передатчика Orange сделать приемник.
Александр спасибо, бум пробовать. Может и кто еще присоединится.
прошивка, что бы из 100мвт передатчика Orange сделать приемник.
Я так понимаю все действия по настройке совпадают с другим “железом” ?
А я вот хочу вернуться к моему старому вопросу про неработающий сбас оранжевого приемника и сбас2 оригинального футабовского приемника, работающего в режиме простого сбас.
Разобрался в прошивке, нашел один недочет в разборе протокола (из за этого не работал оранжевый сбас) и конкретный глюк который при определенной паузе между пакетами, приводил к ошибкам в распознавании пакетов. Так же поправил в прошивке корректное распознавание пакетов кастрированного сбас2.
Так что если кому надо, милости прошу в ЛС…
Выложите тут исправленные фрагменты кода, а я добавлю в дневничек. Так будет гораздо круче.
Что за недочет, и что за глюк? Интересно поподробнее.
Уже хрен знает сколько использую Сбас на Байчи и никогда никаких глюков не видел…
Я так понимаю все действия по настройке совпадают с другим “железом” ?
да. как я понимаю, в этих прошивках просто переназначены другие выводы атмеги в соответствии с подключением приемника
Выложите тут исправленные фрагменты кода, а я добавлю в дневничек. Так будет гораздо круче.
Что за недочет, и что за глюк? Интересно поподробнее.
Вот это я называю глюком:
// 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;
Тут решение спорное, но работает нормально и на оранже и на оригинальном приемнике.
Уже хрен знает сколько использую Сбас на Байчи и никогда никаких глюков не видел…
А это просто повезло, как я писал в самом начале, если пауза между пакетами попадет в определенный диапазон, то глюки будут.
… Именно по этому алгоритму происходит аппаратный разбор последовательного протокола в атмеге и именно по этому оранжевый приемник работает с OpenLrsNG и не работает с этой прошивкой.
резонный вопрос, в Тини от Эксперта тоже стоит Атмега, почему она работает без проблем?
Я тоже все зарюсь на Байчи, но к сожалению мозгов не хватает залить прошивки.
Всё шьётся через Openlrs Configurator! Уже всё давно описано за нас github.com/axulige/OpenBaychiTX/wiki/3.-Прошивка
не забываем про фьюзы, через бутлоадер их изменить нельзя, нужен ISP программатор.
резонный вопрос, в Тини от Эксперта тоже стоит Атмега, почему она работает без проблем?
Так ответ был в предыдущем сообщении, у Эксперта все разбирается аппаратно Т.к. Сбас там подключается на последовательный порт. И соответственно там все работает.
не забываем про фьюзы
Я чуть выше спрашивал. Оптибут подходит? Дело в том, что у меня был глюк с родным ардуиновским загрузчиком на 100мВт передатчике в режиме приемника. После ряда ФС на 10км приёмник не восстановил связь с ретранслятором. Вернулся домой и сел по отсечке регуля. Вернуть связь помогло передергивание питания на приемник. Прошил оптибут в приёмник и больше такой глюк не повторялся.
Оптибут подходит.
Прошил модуль как приемник(Оранж - ещё раз спасибо Эдуарду), через путти подключился. попробовал менять регистры, вроде всё получается.
Теперь вопросы. 😃
Приемник у меня должен выдавать ппм для автопилота.
В регистр 7=1
Что писать в регистр 5? У меня в ретрансляторе стоит 10 канальный приёмник на 2,4ГГц с ппм выходом.
11-18 регистры отвечают за каналы. Так как нет рации на этот диапазон буду биндить с передатчиком с прописанными каналами и в эти регистры пропишутся каналы из передатчика. И частоты совпадут. И мне частоту не надо будет подстраивать. Всё правильно понял?
Теперь регистры по файлсейву, с 31 по 38. В опенлрснг я жестко(галочками) прописал в третий канал 950. Как здесь это осуществить? У меня АПМ настроен на ФС по 3-каналу.
В опенлрснг я жестко(галочками) прописал в третий канал 950. Как здесь это осуществить?
Это я как раз попросил доделать AndreyI, если он захочет. Только добавлением строк в прошивку.
Пока ФС только кнопкой.
А где вы вообще нашли 31-38 регистры?
Это, видимо, emax добавил. Очень круто! А тогда вопрос к Эдику - можно отключить функцию изменения ФС дистанционно? Хочу, что бы сбросить ФС было невозможно. И выложить код с регистрами ФС сюда. Спасибо.
По остальным вопросам вроде все правильно, по пятому регистру - я летаю с 0, если у меня ППМ на входе.
судя по F14 это чей то самопал…
на Гитхабе у Байчи только F13