Простой поисковый радио маячок.

Pavel_liev

LoRa терпима даже к 5в питания, оставлял работать на программаторе шнура компа, за пол часа ничего не произошло, стабилизаторы не использую нигде(исключение 1Вт, там нужно 5в), LoRa отлично работает с 4.2в лития.
GPS тоже не требует стабилизации, которую почему-то постоянно паяют с завода на модулях Нео6, в даташите к GPS черным по белому пишется что при 4.3в просто пару мА тока будет кушаться за зря, вот только в случае КРЕНки эти сами пару мА кушает она, сливая в тепло, так какая разница? Резисторы “ресета” тоже никогда не применяю, лишний обвяз, меня учили: нужное - просто! 😁

Если модуль очень долго запускается, возможно давно померла батарейка резервного питания, часто при покупке она уже полумертвая, модуль после начала работы если выключить и включить должен восстанавливаться за 5 секунд максимум, если нет, значит отсутствует резервное питание, в случае маячка завожу туда провод акума, а еще Нео6 самые долгодумающие и габаритные модули, те же L70R и ATGM336 раза в два компактнее и ног меньше.

Vladimir_N

У меня сейчас модули GPS L80-R простенький GPS, зато маленький и с антенной, он без батареек. Ищю модули L80-M39 они в таких же габаритах, но мультисистемные и чуйка выше, пока не вижу в продаже по нормальным ценам. Модули лора есть только RFM98 других пока нет, но он судя по даташиту максимум до 3.6V. Буду экспериментировать на них. Они по размерам совпадают с RFM22B, распайка немного отличается, но не критично. Буду использовать существующие платы приемника и маяка.

Pavel_liev

L80R отличный модуль, хотел купить но цены поднялись, кажется он с керамикой припаянной идет сразу, и у него тоже есть нога для резервного питания, с нею горячий старт за 5с, это когда модуль помнит актуальную математику спутников, и включается не реже чем раз в двое суток.
За все время ни один модуль, ни GPS, LoRa и Si4432 не пострадал от питания, к заявлениям в мануалах из-за этого давно отношусь скептически, ну не верю что транзисторы логики держат 3.6-3.8 и не держат 4.5в, сложно очень такое “г” изготовить, они все до 5-6в будут жить 😒

Vladimir_N

Собрал для проверки на существующих платах маяка и приемника. Залил тестовые прошивки. К сожалению, испытать полностью пока не получается, то работа, то дожди мешают. Но, в моей тестовой зоне, в городе, модули лоры показали весьма неплохой результат. Там, где модули Si4432 уже работали на пределе, лора при той же мощности показала приличный запас по дальности. Также понял, что лора довольно сильно гадит на GPS модули. Стоит включить передачу и резко уменьшается точность определения координат. При выключенных передатчиках координаты приемника и маяка совпадали с точность около 1метра, при включенных точность плавает порядка 10-30метров.

Pavel_liev

В моих испытаниях LoRa 0.1Вт в среднем выдает х2.5 от дальности Si4432 и +30% радейки Баофенг. Проблему с GPS не замечал, поскольку собираю координаты в неактивном режиме модуля связи, и на момент передачи они уже давно в ОЗУ тини13. А так во всех испытаниях получалось что устойчивая дальность связи LoRa больше чем самый слабый прием на аналоге радейки, превосходит она аналог по дальности в любых условиях 😒

Vladimir_N

Поигрался вчера на природе с комплексом, дальность связи получилась примерно раза в два выше чем с Si4432. Пеленговать не пробовал, у меня антенны простые неправленые, но обратил внимание на интересную особенность: RSSI действительно с расстоянием меняется слабо, а вот параметр SNR меняется существенно. Возможно его можно будет использовать для определения направления. Также пока не придумал алгоритм работы после того как маяк проснется. Понятно, что маяку нужно дать время для запуска GPS и фиксации координат (сколько?) при этом желательно не включать маяк на передачу. Но в тоже время неплохо было бы сообщить приемнику, что маяк проснулся и ловит спутники. Приемнику также желательно дать время для фиксации координат. Поэтому я думаю, обратная связь очень желательна для маяка и приемника. Нужно только продумать алгоритм взаимодействия.

Pavel_liev

Около года играюсь с LoRa а на существование SNR не обратил внимания, в мануале на ст.87 дана формула корректного подсчета реального уровня сигнала в дБм: dBm= -164+RSSI+SNR*0.25; а у меня на видео получается значения в попугаях 😛

Pavel_liev

По работе логики в маячке пришел к вот такой схеме, где основным идет спящий режим, но из-за длительного разогрева GPS маяк при выходе из сна сразу отвечает коротким одиночным пакетом, в котором уровень RSSI, и мы сразу видим, что он проснулся и насколько он “видит” нас. Дальше в зависимости от RSSI маяк ставит у себя конфиг мощности, если мы близко то зачем валить 100мВт, ведь можно экономить батарейку, и подает питание на свой GPS, сам процесс прогрева очень рандомный, а ждать не всегда выгодно, поэтому пришел к выводу что удобнее дать модулю 8 сек. после приема валидных спутников, и передавать на пульт что есть. Дрейф в 30-50 метров первого пакета может не мешать, а дальше у нас есть выбор, если на пульте активна опция “работать непрерывно”, то после приема с маячка пульт сразу пошлет короткий пакет, и маячек увидев активность канала пойдет на повторный GPS с повторным прогревом 8 сек, и уже третий или четвертый пакет будет точным.
Такой алгоритм позволяет работать как одиночно так и непрерывно, что кажется удобным. Код маячка кажется готов, а пульт еще допиливаю.

Vladimir_N

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

Pavel_liev

Порой очень не хватеет такого гиромодуля, у меня направление идет с GPS, а он любит потупить пару секунд и работает лишь в прямолинейном движении, еще видел ряд видео где дешевые модули компасов работали очень нестабильно, им мешали любые устройства что рядом, и осиливать связку компаса с акселерометром HMC5883 + MPU6050 пока руки не дошли. А у вас оно работает здорово, практически как на телефоне, к стати еще один вариант поиска - вбить координаты в гугл карту 😁

Pavel_liev

Кажется допилил тестовую программу маячка до вида на блок-схеме выше(режимы сна), памяти тини13 чудом хватило, включая софтварный UART с плюшками. Впереди испытания 😒

Pavel_liev

Предварительные замеры выявили серьезную проблему режима сна, быстрый CAD запрос наличия сигнала, что длится 60мс не видит сигналы ниже уровня шума, то есть не срабатывает с запросами менее rssi=58(-106дБм), при том сама кодировка LoRa работает гораздо дальше, до rssi=42(-122дБм), получается при использовании быстрого опросчика дальность маяка падает вдвое, до уровня Si4432. Еще очень короткие сообщения в 1 байт недостаточны для сработки уровня и хорошей работы протокола LoRa, нету той чувствительности пока не будет хотя бы несколько байт в пакете, в результате для корректной работы по дальности нужно вводить в прием RX, который длится в 10-20 раз дольше чем CAD, и не получается такой экономии батарейки как у Si4432 😦

Vladimir_N

Да, нехорошие грабли. 😦
Я тоже проверял дальность с уже разбуженным маяком. 😃
Может там проблема кроется в точной настройке частоты, у разбуженного маяка срабатывает автоподстройка и дальность возрастает.

Есть еще один момент, очень не желательно трясти микросхему запросами по шине SPI во время приема, от этого точно падает дальность даже у si4432.

Pavel_liev

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

Pavel_liev

Заменил модуль и повторил замеры, попутно исправил пару багов в коде, и оказалось что CAD сканирование работает корректно, сигнал LoRa вменяемо определяется когда есть, проблема была именно со старым модулем, не знаю что его замучило.
Но не все так гладко, двухсторонняя связь все-равно не так дальнобойна как односторонняя, без сна сигнал 100мВт удавалось ловить проволочной антенной до 1км в лесу, а иногда чуть больше, когда с режимом сна дальность упала до 700-800 метров. Пара таких мелких модулей работает примерно как радейка баофенг с аналоговым Si4432, тоже неплохо но всегда хочется большего. Еще возможен вариант разместить в пульте 1Вт модуль, такой гарантированно разбудит маячек, и в программе указать непрерывную работу на несколько минут, такой вариант связи может оказаться более дальнобойным, но 1Вт модули дороги и дефицитны.

По шине SPI, в мануале о запросах ничего не указано, а в реальности опрашиваю статусный регистр модуля раз в 10…20мс, но разницы по связи даже при постоянном опросе статусного регистра не заметил.

Vladimir_N

Есть чем померить выходную мощность?

Настройки по умолчанию:
RFM_Write(0x09,0x8F); //power =8f основной усилитель 80-8F -16 значений
RFM_Write(0x4D,0x84); // power default дополнительный усилитель ток 80-8F -16 значений
RFM_Write(0x0B,0x32); // current control on 100ma default. Для максимальной мощности согласно доке должно быть 120мА. 😃

Если поставить:
RFM_Write(0x09,0xFF); //Set maximum transmit power settings
RFM_Write(0x4D,0x8F); //мах power PA_boоst +20db
RFM_Write(0x0B,0x32); //current control on 150ma. Ток сильно задирать не стал, антенна не очень хорошая.

Мощность излучения должна быть больше.

Pavel_liev

Эти плюшки проходились еще пол года назад, регистр 0х09=8F максимальное значение, и FF для него вне конфига, будет пользоваться “по умолчанием”. Регистр 0х4D не принадлежит ЛоРа, он с пачки FSK/OOK и в режиме ЛоРа его не существует, только нативная таблица ЛоРы оказывает влияние на ее работу, отдельным особняком идут пины dio, но они больше бесполезны. С конфигом тока игрался ранее, и перебрав множество настроек пришел к выводу что максимальные значения по мощности и эффективности стоят по умолчанию, и любые правки сделают либо тоже самое либо хуже. А так 100мВт модуль при максимальной мощности потребляет около 120мА тока, это его предел, правда недавно вышли на Али модули SX1262 150мВт ревизии, ну 22дБм.
Еще очень охота спустить частоту на 170-315 МГц, согласно мануалу эти модули SX1278 это умеют, только развязка выходных фильтров не подходит, уже пробовал, при 370МГц завал был такой что реального выхода излучения почти не было, а номиналы неизвестны, и в самом Китае перестали продавать модули такой частоты, а раньше то были.

7 days later
Pavel_liev

В процессе работы по маячку вылезли неприятные грабли, проблема с питанием GPS. Для экономии акб необходимо отключать модуль приема спутников, но как это делать? Оказалось у тини13 не все выводы одинаковые по токоотдаче, РВ5 самый хилый, а РВ0/1 самые токовые, но даже с ними модуль что потребляет 25мА просаживается на 0.5в, что крайне плохо, ибо еще с рабочим АКБ получаем нерабочий GPS.
Отключать у GPS нужно именно провод “плюс”, ведь при отключении “минуса” потеряем запитку резервной памяти орбит “горячего” старта. Использование транзистора п-р-п не помогает, там так же просадка по переходу, а для р-п-р надо делать развязку, хочется простое компактное и надежное решение 😃

Vladimir_N

А чем p-n-p транзистор не нравится? Там из обвязки всего пара сопротивлений. Один с базы на вывод контроллера для ограничения тока 1-10кОм, второй высокоомный с базы на эмиттер 50-200К для надежного запирания транзистора. Второе сопротивление можно и не ставить, но нужно следить программно чтобы вывод не оказался воздухе. Транзистор эмиттером к аккумулятору коллектором к потребителю. Вместо биполярного можно поставить и полевой транзистор Р-типа c изолированным затвором, тогда вообще сопротивления можно не ставить.

V_Alex

Есть “цифровые” PNP транзисторы с обвязкой внутри, например - PDTA124. Очень экономят место на плате.