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

DossJ

Пока нормальный приемник в пути, решил добить работу OrangeRX Open LRS TX 100 mv как приемника для Baychi .

Схема передатчика во вложении (срисована с платы)

настройка в прошивке

#define SDO_pin 9 // PB1
#define SDI_pin 8 // PB0
#define SCLK_pin 7 // PD7
#define IRQ_pin 2 // PD2
#define nSel_pin 4 // PD4
#define IRQ_interrupt 0
#define nIRQ_1 (PIND & 0x04)==0x04 //D2
#define nIRQ_0 (PIND & 0x04)==0x00 //D2
#define nSEL_on PORTD |= 0x10 //D4???
#define nSEL_off PORTD &= 0xEF //D4???
#define SCK_on PORTD |= 0x04 //C2???
#define SCK_off PORTD &= 0xFB //C2???
#define SDI_on PORTB |= 0x02 //PB0???
#define SDI_off PORTB &= 0xFD //PB0???
#define SDO_1 (PINB & 0x01) == 0x01 //PB1???
#define SDO_0 (PINB & 0x01) == 0x00 //PB1???
#define SAW_FILT_ON _spi_write(0x0e, 0x04); // GPIO2=1
#define SAW_FILT_OFF _spi_write(0x0e, 0x00); // GPIO2=0
#define GREEN_LED_pin 13 //PB5
#define RED_LED_pin 12 //PB4
#define Green_LED_ON PORTB |= _BV(5);
#define Green_LED_OFF PORTB &= ~_BV(5);
#define Red_LED_ON PORTB |= _BV(0);
#define Red_LED_OFF PORTB &= ~_BV(0);
#define Servo1_OUT 5 //Servo1
#define Servo2_OUT 6 //Servo2
#define Servo3_OUT 7 //Servo3
#define Servo4_OUT 8 //Servo4
#define Servo5_OUT 9 //Servo5
#define Servo6_OUT 10 //Servo6
#define Servo7_OUT 11 //Servo7
#define Servo8_OUT 12 //Servo8
#define Servo9_OUT A4 //Servo9
#define Servo10_OUT A5 //Servo10
#define RSSI_MODE 1 // 0=disable 1=enable
#define RSSI_OUT 3 // PORTD.3
#define Serial_PPM_OUT_HIGH PORTD |= _BV(7) //Serial PPM out on Servo 3
#define Serial_PPM_OUT_LOW PORTD &= ~_BV(7) //Serial PPM out on Servo 3
#define SBUS_OUT_HIGH PORTD &= ~_BV(7) // SBUS out
#define SBUS_OUT_LOW PORTD |= _BV(7) // SBUS out
#define SBUS_OUT_BIT _BV(7) // SBUS out bit
#define SBUS_OUT_PORT 2 // SBUS out port
unsigned char offOutsMask[3] = { 0xE0, 0xCF, 0x1F }; // маски портов, при сбросе всех импульсов в 0
volatile unsigned char *portAddr[PWM_OUT_NUM] = { // адреса портов, поканально
&PORTD, &PORTD, &PORTD, &PORTB, &PORTB, &PORTB, &PORTB, &PORTB, &PORTC, &PORTC
};
unsigned char portMask[PWM_OUT_NUM] = { // маски портов поканально
_BV(5), _BV(6), _BV(7), _BV(0), _BV(1), _BV(2), _BV(3), _BV(4), _BV(4), _BV(5)
};
unsigned char diskrMask[8] = { // маски выходов
_BV(5), _BV(6), _BV(7), _BV(0), _BV(1), _BV(2), _BV(3), _BV(4)
};
unsigned char soundOut[] = { 1, 2, 7 }; // номера каналов, куда выводится звук через D5, D6, D11
#define PPM_MODE_JUMPER 6 // проверка на режим PPM
#define SBUS_MODE_JUMPER 0 // режим SBUS

Нужен только PPM и RSSI выходы.
Что еще сдесь нужно поправить?
Светодиоды и приемник выставлены правильно.

RFM22B.zip

andrey_by

а может кто-то подсказать как залить на Arduino Leonardo прошивку от ТХ? - поставил в конфиг тип - 6 … но че то залить не получается. (Arduino Pro Micro 32U4 + USB ) - одна микра потеряла бут , вторая по кругу перезагружается…

15 days later
Dautov

Собрал свой IZI LRS. Прошил Байчи. Все вроде работает. Заметил, если переключаю тумблер на увеличении мощности, то проскакивает CRC! в 1 позиции тумблера не появляется данная надпись вообще. во 2 уже местами проскакивает, а вот в 3 уже постоянно.
Из-за чего может быть? Тестировалось на расстоянии 1 метра между приемником и передатчиком.

Podkovka
Dautov:

Из-за чего может быть?

Если предположить, что аппаратная часть исправна, то попробуй понизить напряжение 5В. Иногда при напряжении уже чуть выше 5В начинает клинить ардуинку, что поделать - кЕтай 😃

Dautov

Ок, попробую вечерочком. Спасибо.

Dautov

CRC!
Оказалось это из-за не полностью закрытого корпуса LRS. Приемник 2,4 дает помехи.

Еще вопрос возникает. Никак не получается скорректировать поправку приемника, чтобы А был равен 0 или 255…
 При 0 проскакивает 1, а при 255 - 254.

Podkovka
Dautov:

Оказалось это из-за не полностью закрытого корпуса LRS

😃 CRC не должно проскакивать и при раскрытом корпусе, поверь, это траблы с напряжением. А должен быть близок к 0 или 255, но не обязательно эти значения.

Shuricus
Dautov:

При 0 проскакивает 1, а при 255 - 254.

Это нормально. От температуры еще тоже будет плавать.

leesicin
Shuricus:

От температуры еще тоже будет плавать.

Саша хорошо народ пугать, не плавать, а плыть плыть в одну сторону, но прошивка отклонение скорректирует.

Shuricus

Что вы все так любите к словам докапываться? Нечем заняться что ли? Будет именно плавать, потому что температура может повышаться и понижаться, в зависимости от условий эксплуатации. Например сидел в машине - вышел на мороз. Переключил мощность. Включил вентилятор, и т.д.

Прошивка не корректирует небольшие отклонения - это два.

Три - Байчи не особо рекомендовал пользоваться термокоррекцией вообще.

leesicin:

Саша хорошо народ пугать

Очень хорошо! Запятую забыл. Торопился очень поспорить.😉

Dautov

Я уже греша на помехи от DC-DC и на возможный нагрев RFM сделал некие экраны и теплоотводы. Поэкспериментируем, что получилось. Наверное бестолкова, но все равно хотелось мудрить 😃
Фотки после обеда выложу

leesicin

Саша прости, что задел твою тонкую натуру филолога 😃 Ну безграмАтный я 😃.
Никто к твоим словам не докапывался, но сказав, что частота будет плавать, не плохо было бы сказать, что прошивка её скорректирует. Рушан только что собрал Передатчик и у него имеются вопросы как по железу, так и по софту в настоящий момент (и ещё куча вопросов возникнет по мере изучения прошивки), это нормально. Вместо того чтобы помочь и разъяснить ты подлил масла в огонь (сейчас Рушан бросит всё и будет думать как ему с плавающими частотами бороться, хотя этого и не нужно). Ты же помнишь, сколько вопросов возникает при изучении Байчи и здесь нужно направлять человека в нужное (в настоящий момент) направление, а не расплёскиваться по сторонам.
По поводу твоего термина Плавать. Плавать (в моём понимании обсуждаемого предмета) - изменение частоты то вверх то вниз. Плыть - плавно изменяться в одном направлении.
При стационарных условиях (обычно они используются для первоначальных экспериментов), частота будет ПЛЫТЬ в одном направлении (т.к. передатчик при постоянной мощности будет нагреваться до определённого момента, а остывать не будет).

Shuricus:

Прошивка не корректирует небольшие отклонения - это два.

  1. Alex Sneg - "Александр, а какой смысл в температурной коррекции на передатчике, если вы регистр ухода на приемнике корректируете каждые 32 пакета? ".
Shuricus:

Три - Байчи не особо рекомендовал пользоваться термокоррекцией вообще.

Baychi - “Проделал измерение зависимости ухода от частоты от температуры на втором экземпляре RFM23BP и был неприятно удивлен - обнаружив строго обратную зависимость, по сравнению с первой. Модули визуально одинаковы , хотя из разных партий и тем не менее, такая вот фигня.
В связи с чем советую, тем, кто не может замерить температурную зависимость явно, отключать “Term corr enable” в меню.”

Саша будь добрее 😃 Мы же делаем общее дело, поддерживаем прошивку Байчи.

Shuricus
leesicin:

сейчас Рушан бросит всё и будет думать как ему с плавающими частотами бороться, хотя этого и не нужно

Dautov:

При 0 проскакивает 1, а при 255 - 254.

Shuricus:

Это нормально.

Этого не достаточно, что бы ни с чем не бороться? Не нужно за других решать, что они будут делать и с чем бороться. И не нужно постоянно говорить мне, что мне делать и кем быть. Мне не нужны две мамочки.

И это, друг мой, ты заблуждаешься. Частота именно плавает, в зависимости от температуры. Это общее описание физического процесса. Нагрев при “стационарном” использовании - это частный случай развития событий, никак не опровергающий факт общей зависимости от температуры. Не нужно думать, что другие не смогут понять столь очевидные вещи. Но я даже привел пример, когда температура может понижаться и на практике, тоже. Щелкнул тумблером - температура упала, частота опять поплыла.
Поэтому может не надо навязывать свою точку зрения так активно? Это и вызывает некоторую недобрость.

Dautov

Экранировал, было свободное время 😃
И теплоотвод от RFM припаял
Вечером посмотрю что будет.

leesicin

Никому ничего не навязываю, стараюсь объяснять и помогать (иногда могу искренне заблуждаться 😃 ). Зла никому не желаю.
Ну и чтобы поставить точку.
“При 0 проскакивает 1, а при 255 - 254.” - “От температуры еще тоже будет плавать.” - из твоего комментария можно сделать вывод, что значения 0-1 или 255-254 куда то уплывут!
Это Не так! В прошивке всё это учтено и будет скорректировано! Значения 0-1 и 255-254 никуда не уплывут! Они так и останутся 0-1 или 255-254. Да физические изменения будут происходить (температуры меняться, частоты изменяться и пр.). Но это всё пофигу! Всё будет скомпенсировано и частоты Приёмник-Передатчик будут синхронизированы!

Dautov

Проделанная экранировка в борьбе с CRC!, при включении тумблера в положение увеличенной мощности - не помогла. Даже пробовал питание DC-DC уменьшить до 4,5в. Разве что, стало меньше греться - 30’ примерно.
Но проблема пропадает сразу, если рядом или вовсе на корпус положить питающий аккумулятор, можно даже просто рукой жо корпуса дотронуться и пойдут пакеты без потерь совсем.

  • Может LC фильтр (Дроссель + конденсатор) на плате после DC-DC нужно было оставить?
  • Или пока попробовать на кабель надеть кольцо ферритовое.
  • Или вовсе не ломать голову и в один корпус засунуть приемник2,4 (антенна горизонтально) и передатчик433 (антенна ветикально), а между ними АКБ ближе к корпусу LRS, ведь на столе в таком расположении работает без проблем.

Кстати, прошивка сама сегодня подвела под А-0 и А-255
Но ФСЕЙФ забывает или каждый раз после длительного отключения питания или после каждого подключения к компьютеру. Надо каждый раз напоминать.

kostya-tin

В приемнике бутлоадер перешить нужно, что бы ФС не сбивался. Обычно он виноват. А антенна какая у на передатчике? Штырь или диполь?

Dautov

Антенна rmilec.
Нет ссылки под рукой, как бутлоадер прошить.

kostya-tin

самый простой вариант - подключить ISP программатор, открыть ардуину на компе, выбрать в сервисе нужный программатор, плату Arduino Pro Mini 5V 16MHz и нажать на “прошить бутлоадер”, помоему в сервисе (не у компа, поєтому точно не скажу)

polarfox
Dautov:

Но проблема пропадает сразу, если рядом или вовсе на корпус положить питающий аккумулятор, можно даже просто рукой жо корпуса дотронуться и пойдут пакеты без потерь совсем.

Потому что

Dautov:

Антенна rmilec.

Штыревым антеннам для нормальной работы нужен противовес.Либо делайте металлическую коробку для передатчика,либо делайте антенну типа диполь или граундплейн.Пардон,рассмотрел,что вроде как корпус металлический,тогда возможно площадь корпуса мала.Попробуйте сделать всё-таки диполь,делов на пять минут.

Dautov

Сейчас попробую что-нибудь добавить.
Точно. Кусок проволоки, подцепил на SMA разъем - уже помогает.