OrangeRx Open LRS 433MHz TX Module

тигромух
baychi:

Супермаяк близок к победе!
Все-таки сэмплы? Фонемный синтез отвергнут?
И как с GPS-ом, есть перехват NMEA?

Фонемный синтез оказался такой фонемный… В чистом канале, потренировавшись, можно что-то разобрать, но в шумах - без шансов.
Конечно, жалко флеша на сэмплы, но за качество надо платить.
Разбор NMEA оставил на сладкое, ибо предстоит эпичная битва за жизнь батарейки 😃

baychi:

Само собой. Какой оверсамплинг и паттерны в итоге выбрали?

Табличная синусоида 😉
На самом деле я долго провозился пытаясь сгенерить PWM программно (A1 не поддерживает аппаратный ШИМ), но потом кинул 9й пин на SDI, подсмотрел алгоритм в аппноутсах атмела и адаптировал под себя.
Сейчас думаю, что наверное это все зря и прокатила бы достаточно быстрая поочередная генерация обоих тонов DTMF-а. Но пусть уж будет по-правильному.

baychi
тигромух:

что наверное это все зря и прокатила бы достаточно быстрая поочередная генерация обоих тонов DTMF-а.

Проверяли? ИМХО не должно было прокатить - при переключении появлется 3-я частота самих переключений и еще 2 пары ее суммы и разности с каждым из тонов.

тигромух:

Табличная синусоида

Там две синусоиды. 😃

тигромух:

потом кинул 9й пин на SDI,

То есть в штаном Оранжде работать не будет?

тигромух:

пытаясь сгенерить PWM программно

Что-же помешало? Причие прерывания типа таймера или от самой RFMки не должны, по идее мешать…

Deverex
baychi:

Покажите настройки передающей стороны (регистры в меню). И покажите шум командой ‘N’.
Покажите настройки приемника (регистры в меню) и его шум (команда N) при выключенном передатчике.

baychi:

Включите отладку на передатчике (R6=3) и смотрите как меняются длительности импульсов при сбоях.

Прилагаю собранный лог с комментариями.
bind-log-2014-02-05.zip

baychi:

Фьюзы Мегам на приемнике и передатчике правили?
Что пишут модули при включении? Нет ли сообщений типа “FLASH Error” или “Settings error”?

До фьюзов пока не добрался и bootloader тоже не трогал. Мне еще не доехал AVRISP программатор.
Сообщений об ошибках не было. Единственные документированные ошибки - несколько CRCerr в приемнике в процессе получения пакетов, когда иногда работало.

Мне главное понять - это проблема железа или софта.

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

Deverex
baychi:

Включите отладку на передатчике (R6=3) и смотрите как меняются длительности импульсов при сбоях.

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

Передатчик


1417 1500 1487
1417 1498 1487
1418 1497 1485
1417 1498 1487
1417 1499 1487
1414 1508 1485
1285 1528 1485
1092 1545
Stop: T=55 Tc=-3 M=332 A=30
988 2008 1485
988 2008 1485
988 2008 1485
988
Stop: T=53 Tc=-3 M=332 A=30
997
PPM3 mode: T=53 Tc=-3 M=332 A=31
1266 1497 1487
1393 1496 1487
1501 1497 1487
1611 1498 1487

Приемник

R=219 S=6 C=5 A=255 Rn=63
R=211 S=6 C=6 A=255 Rn=42
R=224 S=6 C=7 A=255 Rn=57
$RL1 S=6 C=8 Rn=59
$RL2 S=6 C=1 Rn=51
$RL3 S=6 C=2 Rn=51
$RL4 S=6 C=3 Rn=46
$RL5 S=6 C=4 Rn=49
$RL6 S=6 C=5 Rn=63
$RL7 S=6 C=6 Rn=42
$RL8 S=6 C=7 Rn=55
$RL9 S=6 C=8 Rn=58
$RL10 S=6 C=1 Rn=52
$RL11 S=6 C=2 Rn=54
$RL12 S=6 C=3 Rn=47
$RL13 S=6 C=4 Rn=43
$RL14 S=6 C=5 Rn=63
$RL15 S=6 C=6 Rn=43
$RL16 S=6 C=7 Rn=48
$RL17 S=6 C=8 Rn=55
$RL18 S=6 C=1 Rn=50
to fs
$RL19 S=6 C=2 Rn=54
$RL20 S=6 C=3 Rn=44
baychi
Deverex:

собранный лог с комментариями.

Хм. Думал регистры обнуляться. Рекомендую сбросить в 0, регистры 3-6. На передатчике в регистрах 19-22 выставить адекватные пfраметры: номер канала переключения мощности и ее уровень (0-7). Если не надо управлять, поствьте 7-ки везде.

По сигналу на входе передатчика пишет PPM5 (первые 5 каналов) - что странно. Это стабильно?
На приемнике: номер бинда и каналов не совпадают с передатчиком.
Нужно делать так.

  1. Дать команду “rebind” или нажать кнопку на передатчике. Передатчик выберет случайны номер бинда и наименее шумные каналы.
  2. При включенном передатчике, дать команду “rebind”, или поставить перемычку RX-Tx, перед включением на премнике. Приемник автоматически настраивается на bind и номера каналов (приемник держать подальше от передатчика, чтоб не прегружался).
  3. Перевключть оба, убрав перемычки, и проверит остальные настройки…
Deverex:

Мне главное понять - это проблема железа или софта.

Пока на железо не грешим…

Deverex:

при срывах связи

Срывы связи скорее всего связаны с R4 передатчика не равным 0.
Почему он берет только 3-5 первых каналов, пока понять не могу…
Что- не так с входным PPM сигналом. Вы можете его изменить в настройках передатчика РУ?

тигромух
baychi:

роверяли? ИМХО не должно было прокатить - при переключении появлется 3-я частота самих переключений и еще 2 пары ее суммы и разности с каждым из тонов.

Нет, не проверял. Может и не прокатит, но проверить нетрудно 😃

baychi:

То есть в штаном Оранжде работать не будет?

Что-же помешало? Причие прерывания типа таймера или от самой RFMки не должны, по идее мешать…

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

тигромух
тигромух:

Нет, не проверял. Может и не прокатит, но проверить нетрудно

Проверил. Прокатило 😃
Ловит гораздо хуже, чем в “честном” варианте.
Пруфик:

while(true) {
  beacon_tone(1477,8000); //1477Hz
  beacon_tone(941,8000); // 941Hz
  if(++i%10==0) delay(500);
}
Hight

Вопрос: Чтобы было 1Вт вместо 600мВ, нужно просто RFM запитать от 5В? Т.е. обрезать дорожку и запитать откуда-то? (модуль пока не держал в руках)

Deverex
baychi:

Хм. Думал регистры обнуляться. Рекомендую сбросить в 0, регистры 3-6. На передатчике в регистрах 19-22

выставить адекватные пfраметры: номер канала переключения мощности и ее уровень (0-7). Если не надо управлять, поствьте 7-ки

везде.

На данный момент:
Полностью проверил настройки аппы (4ch, FrLen 20ms, без миксов), смазал поты, перекалибровал и через тренерский разъем запечатлел

PPM-сигнал:

Провел правильный rebind - эффекта не дало.
Установил TX R19-R22=0 - эффекта не дало.
Установил TX R4=0 (FS check enable) - исчезли потери связи(!)
При R4=1 на каждое крайнее положение любого стика был Stop:

Stop: T=37 Tc=-1 M=320 A=29
Stop: T=38 Tc=-1 M=320 A=29
PPM3 mode: T=38 Tc=-1 M=320 A=31
Stop: T=38 Tc=-1 M=320 A=29
PPM3 mode: T=38 Tc=-1 M=320 A=31
Stop: T=38 Tc=-1 M=320 A=29
PPM3 mode: T=38 Tc=-1 M=320 A=32
PPM3 mode: T=38 Tc=-1 M=320 A=31
Stop: T=38 Tc=-1 M=320 A=30
PPM3 mode: T=38 Tc=-1 M=320 A=31
1544 1497 1510

Теперь при R4=0 - только изредка выкидывает

PPM3 mode: T=38 Tc=-1 M=320 A=31

а так - все время бегут три цифры (хоть мне и кажется, что чисто теоретически их должно быть 4).
Данные калибровки APM 2.5:
CH1 900 | 2090
CH2 900 | 2092
CH3 905 | 2095
CH4 906 | 2096

Спасибо за совет! Буду дальше разбираться.

UPD: 6 каналов тоже пашут гладко.

baychi

Редкие строчки Mode связаны с изменением температуры, это нормально.
А вот 3 канала вместо 4-х или 6 - что-то не так.
У Вас в качестве передатчика модуль передатчика или приемника? Если приемник, как цепляете PPM сигнал: через диод или напрямую? Какое напряжение напряжение на ppm выходе РУ? (на картинке плохо видно).
И насколько стабильна ситуация с каналами? При каждом включении одинаковое кол-во кажет? И в процессе работы при неподвижных стиках, цифры сильно пляшут?

Deverex

Передатчик - именно передатчик (такой, в оранжевой коробке, с JR дырками на спине, вставляемый в гнездо аппы). Приемник - собственно OrangeRX Receiver. Скажем так - использую самую типовую и классическую схему применения оборудования.
PPM-сигнал снимал с тренерского JR-разъема на микрофонный вход компа, писал в Sound Forge. Уровень сигнала определить не могу, осциллографом не располагаю, а вольтметр не показывает нормально.
Цифры выводятся всегда для трех каналов. Может, у меня терминальная программа косячит, но если Вы задумали вывод с отсылкой сигнала возврата каретки и повторным выводом в терминале в одну строку - то всегда выводятся именно три цифры.
При неподвижных стиках - дребезг минимален и совпадает с дребезгом, наблюдаемым через меню Turnigy.
А в HEX есть возможность эти цифры выводить (чтобы с менюшкой турниги сравнить)?

baychi
Deverex:

Установил TX R4=0 (FS check enable) - исчезли потери связи(!)

Это понятно. R4 !=0 - режим для ретрансляторов, что-бы отрубать связь, когда хотя-бы один из сингналов выходит за предеделы 1000-2000 мкс, а у Вас:

Deverex:

CH1 900 | 2090

Deverex:

все время бегут три цифры (хоть мне и кажется, что чисто теоретически их должно быть 4).

Поясню логику. После первого удачного отлова каналов, программа подсчитывает и запоминает количество ненулевых (больше 880 мкс) импульсов. Именно это число и выводится в моде и именно столько длительностей отображается на экране. Хотя в протокол все равно пакуется 10-12 текущих каналов и если дальше кол-во отлавливаемых импульсов становится 4 или больше, они тоже передаются…

Deverex:

Установил TX R19-R22=0 - эффекта не дало

0 это минимальная мощность. В рабочем варианте лучше поставить макс. мощность (7-ки) или настроить переключение: R19 - номер канала переключателя, а остальные - уровень.

Deverex:

При неподвижных стиках - дребезг минимален и совпадает с дребезгом, наблюдаемым через меню Turnigy.

Это хорошо.

Deverex:

А в HEX есть возможность эти цифры выводить (чтобы с менюшкой турниги сравнить)?

Да. 3-й бит регистра 6 поставьте в 1-цу (R6=5).
Только это будут Футабовские hex-ы: Длительности протокола sbus в кодах от 000 до 7FF, где 0 = 880 мкс, 400 - 1520 мкс, 7FF = 2160 мкс.
Если надо просто перевести мкс в HEX, придется править программу: добавьте параметр ,HEX в вызов serial.print(, где они печатаются (в ppmsbus.ino, ближе к концу, после case 😇

Deverex:

UPD: 6 каналов тоже пашут гладко.

А сколько циферок кажет при 6-ти?

Ну а фактическое кол-во передаваемых канлов смотрите на выходах приемника.

PS: И лучше бы вопросы по моим прошивкам перенести в соотв. тему. 😃

Deverex
baychi:

А сколько циферок кажет при 6-ти?

Столько же.

baychi:

PS: И лучше бы вопросы по моим прошивкам перенести в соотв. тему.

ОК. Теперь хоть стало понятно с чем мне надо разбираться 😃

baychi:

Если надо просто перевести мкс в HEX, придется править программу: добавьте параметр ,HEX в вызов serial.print(, где они печатаются (в ppmsbus.ino, ближе к концу, после case 0

Займусь, отпишусь.

Makey

Пост удалил так как всё заработало. В файле config.h не указал тип платы 😌

9 days later
Meesha

подскажите где копать и что смотреть
имеем приемник оранж, хотим залить OpenLRSNG, успешно записываем загрузчик программатором USBasp, цепляем на паралельный порт, не хочет коннектиться ругается что нет ответа, все перепроверено, аналогичным образом были прошиты 2 передатчика и два приемника, програматоры менял толку нуль.
Но при этом прошивку baychi через USBasp из ардуины принял и зажег “красный” диод после заливки загрузчика мигал “зеленым”. Есть подозрение на брак, ибо кетай. что скажете? выкидывать ?

BAU
Meesha:

записываем загрузчик программатором USBasp

Если пишет, значит работает. Может UART конечно дохлый.
Залейте прошивку на прямую, программатором. Будет все сразу ясно.

BAU

Дак проверьте Юарт через терминалку. Что не работает? ТХ или РХ?
Прозвоните эти сигналы до чипа, мож не пропай где…

Meesha
BAU:

Если пишет, значит работает. Может UART конечно дохлый.
Залейте прошивку на прямую, программатором. Будет все сразу ясно.

Что имелось в виду под " дохлый уарт" ? я не настолько юзер, у меня три програматора 2 на ftdi и один на CP2102 ни один не работает с ним.
не далее как вчера все удачно прошил, комплект оранжа для товарища.

BAU

UART - асинхронный последовательный порт. Через него вы пытались заливать прошивку после того как запрограммировали загрузчик, через USBasp.

Meesha:

у меня три програматора 2 на ftdi и один на CP2102

Вы путаете термины. Это не программаторы, это все ftdi адаптеры. Преобразуют интерфейсы USB в UART.
А вот USBasp это последовательный программатор.

Meesha

монитором порта ардуины работа интерфейса проверена, все работает, ноги прозвонены все ок, смахивает на колдовство)