Meshtastic: сам себе провайдер SMS-ок.

Самые популярные товары с Али по лучшей цене:

Зарядное устройство USB Quick Charge3, 4 порта 290 руб.
Пиксельные песочные часы 1079 руб.
Оригинальный RTL-SDR v3 c TCXO 2908 руб.

29 ноября 2025, 13:00

Meshtastic: сам себе провайдер SMS-ок.

Meshtastic: сам себе провайдер SMS-ок.

Чую, что вскоре
Даже мыльницы скупят.
Есть и причина...

Урбанистическая концепция «15-минутного города», возникшая из лучших побуждений лет десять назад, но получившая известность в качестве элемента «новой нормальности» Шваба во времена ковидобесия, лично для местного автора таки обрела актуальность. Он практически не покидает трёхкилометрового участка местности месяцами, причём это даже не радиус условного круга, а его диаметр.

В пределах столь крошечной территории есть всё для жизни и работы. Тут же обитают ближайшие родственники, и те, на кого не пофиг. Примерно так и случается иммобилизация населения по Швабу. Если бы была хоть какая-то уверенность в завтрашнем дне, то при таком раскладе даже и машина не нужна.

Но вот этой-то уверенности как раз и нет.

Будущее однозначно тоталитарно, с полнейшим отсутствием приватности, конфиденциальности, прав и свобод. Блажен тот, кто этого ещё не понял, либо думает, что его-то земли обетованной сиё точно не коснётся.

Правильному пониманию ситуации весьма способствуют стимулирующие отключения интернетов с перспективой вообще скатиться в «Кванмён». Инфраструктурные риски тоже велики, особенно при чётком понимании: случись чего, у гражданских никакой связи просто не будет. Ну так это уже и не секрет.

К исходу 2025 года до жирафа всё это с трудом, но дошло. А учитывая проживание жирафа в «15-минутном городе», простим его великодушно за интерес к относительно новым технологиям, которые во вводной статье позиционируются в качестве «Disaster Radio» для небольших расстояний.

Это как раз то, что надо.
И почему-то есть полная уверенность, что оно точно пригодится.

Речь там про радиосеть Meshtastic (сокращение от Mesh и Fantastic) на базе модулей связи LoRa (Long Range) и сетевого протокола LoRaWAN. Звучит страшно, но по сути дела это не что иное, как текстовый пейджер на базе современной версии «короткой» безлицензионной УКВ радиосвязи в рамках масштабируемой сети ячеистой структуры.

    По сложившейся традиции, далее местный автор напишет шибко много слов, породив энциклопий. Чтобы вдумчиво почитал один раз, и обрёл понимание, о чём речь, нужно ли оно, и что с этим делать.

Суть и смысл технологии Meshtastic.

Никто не готов сходу воспринять сложные инновации из технологического уклада, в Стране пока не случившегося. Потому рекомендуется изучить структурированные тезисы про «Что это, зачем, и как пользоваться». Есть локальная копия, ибо.

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

Местный автор всё там сказанное переформулировал бы чуть иначе:

  1. Это вообще не замена отключенному интернету. Периодически в Ютубе возникают персонажи с миллионами подписчиков, и неосторожными словами провоцируют людей на завышенные ожидания.

    Пока что это не более чем новая и прикольная технология. Некоторый аналог цифровой моды JS8Call, если хотите. Какого-либо практического применения у неё сегодня нет.

    Но есть и неиллюзорный шанс сказку сделать былью, и тогда…

    Когда Meshtastic, не дай бог, полноценно начнёт играть роль средства коммуникации, передаваться в нём будут сообщения типа «Мы в лесу на площади Ленина у развалин театра отбили лося у волков. Помогите нам его съесть. А то скоро протухнет».

  2. Технология только в начале своего пути, и не несёт на борту девайсов ни достаточных вычислительных мощностей, ни экономичных больших экранов. Посему основным интерфейсом взаимодействия с ней пока что будет смартфон. Мера вынужденная, отнеситесь к ней с пониманием.

    Обычно связь между смартфоном и девайсом организуется по Bluetooth. Однако не исключён Wi-Fi (субъективно всё шевелится в разы быстрее), если он поддерживается железом девайса. Есть вариант со «шнурком».

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

    Наиболее популярны готовые платы с разъёмами, объединяющие в себе радиочастотный LoRa трансивер, производительный микроконтроллер с «прошивкой», стабилизаторы в цепях питания, контроллер заряда аккумулятора. Но можно приобрести набор тех же самых модулей, и спаять их между собой проводочками на макетке, либо запаять на печатную плату небывалой красоты.

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

  4. Само устройство под названием «нода» получается весьма компактным, а его габариты зависят только от энергоемкости аккумулятора. Типовая комплектация предусматривает примерно суточную автономность. Чего в большинстве случаев маловато будет.

    В этом месте подразумевается DIY и прочее творчество по подбору либо изготовлению корпуса методом 3D печати. Без неё случится форменный колхоз. Далее по тексту мы им непременно займёмся, как иначе.

    Альтернативой может служить готовое устройство, которое обойдётся заметно дороже. Никаким доработкам его подвергнуть нельзя. Но ведь захочется…

  5. Количество нод в сети может быть от двух до сотни с лишним.
    При правильной организации сети - до нескольких сотен.

    Сама сеть разворачивается в ISM диапазонах, частотные слоты внутри которых можно выбрать. Не исключена работа нескольких сетей на одной территории, как в разных частотных слотах, так и с пересечением спектров. Поэтому и делается оговорка про правильную организацию сетей - изначально кто-то должен посмотреть эфир на SDR, и выбрать относительно свободную частоту в рамках разрешённого диапазона.

  6. Работа сети в выбранном частотном слоте проистекает в каналах. Все каналы используют одну и ту же центральную рабочую частоту, но разные ключи шифрования.

    Основной канал считается общим, в него уходит телеметрия и Node Info. По сути дела это служебная информация, эквивалентная «heartbeat» в любительской цифровой связи, и нужна для организации ячеистой сети. Чтобы любая нода понимала, кого она слышит напрямую или через ряд посредников.

    В основном канале можно посылать прямые сообщения от ноде к ноде, заголовок которых читается всеми (он нужен для маршрутизации), а содержимое зашифровано ключами нод в формате protobuf. Это тот самый транспортный протокол, ради чего всё и затеяно.

    Существует и общий чат, для всей сети.

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

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

  7. Если нодой транслируется Position (данные GPS, они не обязательны), возможно визуализировать взаимное расположение нод на карте. Когда важно понимать, кто где находится.

    Во избежание деанонимизации путём привязки к местности, весьма часто практикуется размытие координат, степень которого варьируется в широких пределах. На практике - от 0 до 1000 метров, хотя доступна и многокилометровая неопределённость.

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

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

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

  8. Любую передаваемую информацию по любому каналу договоримся именовать пакетом. Ещё его называют кадром, но это звучит непонятно.

  9. При передаче пакета нода, принявшая неискажённый пакет, отвечает рапортом. Если отправитель рапорт не получил, передача повторяется с определённым интервалом. Число попыток передачи ограничено, чтобы не засорять эфир.

  10. Одноранговый протокол порождает много гитик :)

    В концепцию сети заложена небесспорная модель оценки полезности ноды для маршрутизации по слышимости ею ретранслируемого сигнала.

    Например, если принятый сигнал слаб, подразумевается, что он пришёл издалека, и услышавшая этот сигнал нода непременно должна передать пакет дальше. Что она честно делает тотчас, ни секунды не думая.

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

    Вроде всё логично.
    В документации такой метод назван «управляемая лавинная рассылка».

    Между тем в такой логике есть изъян, потому как случайно оказавшаяся рядом мобильная нода (например, пешеход) ответит рапортом о приёме, но никуда дальше пакет не уйдёт. Отправитель будет наивно полагать, что сообщение отправлено в сеть.

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

  11. Раз на уровень сигнала в качестве критерия расстояния между нодами всецело полагаться нельзя, в концепцию сети внесли ещё один уровень абстракции.

    В зависимости от выгодности положения антенны в пространстве (как далёк радиогоризонт в этой точке) любой ноде можно назначить роль. Она варьируется от полного неучастия в ретрансляции до работы исключительно в качестве ретранслятора.

    Ролей много, правильный выбор не очевиден.
    Иногда в этом месте сильно косячат.

  12. При транзите пакета между нодами каждая нода запоминает хэш этого пакета, и пересылает пакет единожды. Это сделано для исключения закольцовывания пакета, и прочих артефактов маршрутизации.

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

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

    Исключением является нода в роли ретранслятора.
    Она не уменьшает счётчик хопов.

  14. Если пакет достиг своей цели, получатель отправляет рапорт, который распространяется по сети примерно таким же образом, но в обратном направлении.

    Это механизм информирования о доставке сообщения.
    Он есть, но не особо надёжен.

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

    Фактически мы наблюдаем постепенный уход от простейшей концепции лавинной рассылки к более сложным вариантам маршрутизации, хоть и тоже не сильно продвинутым.

    Чтобы ещё больше разгрузить сеть от всякого рода телеметрического спама, ноды самостоятельно уменьшают частоту спамления сети, как только обнаружат вокруг себя свыше 40 узлов.

    Что как бы намекает на предполагаемую численность сообщества.

  16. Интересно, что нода ведёт почти самостоятельную жизнь, накапливая в себе адресованные ей сообщения. Можно с нодой надолго разлучиться, а после подключения к ней смартфона увидеть эти сообщения. Носить с собой ноду нет нужды.

    К сожалению, буфер сообщений невелик.

  17. Дальнобойность технологии зависит от настроек нод. Если их в сети немного, можно играться в дальнюю, но медленную связь. При большом числе нод выбора не остаётся. Возможна только ближняя связь на быстрых пресетах.

  18. В коде приложения можно увидеть контроль данных акселерометра смартфона, а так же его GPS датчика. Если включить режим подвижной ноды, частота рапортов об изменении её местоположения станет пропорциональной скорости движения, что позволяет отмечать на карте трек перемещений через примерно равные промежутки пути.

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

Эволюция связи с использованием модулей LoRa.

В Интернете можно поначитаться всякого, иногда и вовсе не актуального. Уместно будет небольшое лирическое отступление, чтобы понимать, в какую сторону ситуация развивается, и чего от неё ожидать.

Трансиверы производства американской компании Semtech основаны на проприетарном протоколе физического уровня LoRa PHY, что нехорошо. Но они дёшевы и надёжны, подключаются к любому микроконтроллеру по SPI интерфейсу, работают в безлицензионных ISM диапазонах, а некоторые даже в S-диапазоне (спутниковые радиомодемы).

Это выглядит смешно, но ресурсов даже простенькой Ардуины Нано вполне хватает для обслуживания LoRa модуля, а также экранчика для вывода сообщений, и стандартной клавиатуры, совместимой с интерфейсом PS/2 для набора тех сообщений самым простым и очевидным способом. Оно не компактно, но наиболее близко к «Disaster Radio» в режиме standalone (передачи текста «от клавиатуры к клавиатуре» без всякой инфраструктуры и компьютеров/смартфонов).

Понятно, что такие девайсы осилят только гики, да упоротые айтишники. А они не сделают кассу. По этой причине далее эволюция пошла в сторону сопряжения со смартфоном в качестве устройства ввода-вывода, для чего потребовалась поддержка Bluetooth и/или Wi-Fi, и микроконтроллера помощнее. С которым уже можно играться в сетевые технологии, а не только в связь «точка-точка» с простейшим скетчем на Ардуине.

В настоящее время сборка девайса из комплектующих не особо популярна, хотя и практикуется. Потому как готовое устройство получается и дешевле, и надёжнее. При стоимости около $20 за универсальный девайс начального уровня, нюхать паяльник будет только тот, кому хочется получить нечто шибко особенное.

Все остальные покупают у китайцев функционирующий прямо «из коробки» девайс, который можно подоткнуть к питанию по USB и прилагающейся антенне. Далее девайс сопрягается по Bluetooth со смартфоном, через который и управляется программой, похожей на мессенджер, но с АйТи-шными прибабахами. Прибабахов там насыпано от души, с ними можно кувыркаться очень долго. Ибо они насквозь непонятные и загадочные.

Каждое из устройств, после сборки обзываемое термином «нода», участвует в трансфере трафика, выходя за рамки собственного радиогоризонта. Это когда нужная нода напрямую не видна, но доступна через нескольких посредников. Если нод достаточно, радиосеть способна покрыть весь город.

Тут уже не особо важна мощность нод, важнее плотность их размещения на местности. Понятно, что в случае «15-минутного города», когда все ноды (у свата, брата, и т.д.) видят друг друга либо напрямую, либо через посредников из числа себя же, сообщения доставляются весьма быстро. Если часть сети нам не принадлежит, тут ничего гарантировать нельзя.

Но даже если трафик ходит через чужие ноды, конфиденциальность не страдает. Сообщения шифруются.

Далее у нас есть выбор из нескольких альтернатив. Поговорим об этом.

Диапазон.

В Стране разрешено запускать модули связи LoRa на таких частотах:

Frequency Range,
MHz
Duty Cycle
%
Power Limit Channel Plan
dBm mW
433.075-434.750101215EU433
866.0-868.011425RU864-870
868.7-869.21020100RU864-870

Ссылка на данную табличку есть прямо в коде приложения Meshtastic, и потому циферки из таблички воспринимаются как истина в последней инстанции. Однако данные несколько устарели, да и интерпретируются иначе. Проникнитесь этим документом.

    Нужно отдавать себе отчёт, что в интернетах понаписано много бреда, к которому лучше относиться критически.

    Кувыркание по ту сторону ссылки вокруг непривычного термина ЭИИМ (Эквивалентная Изотропно Излучаемая Мощность), она же известна как EIRP (Effective Isotropic Radiated Power) связано только с тем, чтобы не превысить драконовские нормы СанПиН, ненароком сжигая в пепел голубей, залетевших в створ диаграммы направленности антенны.

    Птичку жалко.

    Если государевы люди нам разрешили безлицензионно излучать на ISM диапазоне 868 MHz мощность 25 mW (они же 14 dBm), то в городской среде на стандартных пресетах есть шанс принять эту передачу метрах этак в пятистах. Но не очень уверенно. И нас это расстраивает ну вот прямо до слёз.

    Потому вместо простенькой спиральной антенны ростом всего 4 см мы подключаем к ноде здоровенный «волновой канал» с усилением 9 dBi, направив его, куда нам надо. Согласно логике прилинкованного выше документа, одновременно мы должны прикрутить на передатчике выходную мощность до 5 dBm, дабы 5+9 давало в сумме 14.

    Вопрос: а каков смысл этого действа?
    Ответ: никакого ровным счётом. Почему?

    Потому что в месте приёма напряжённость электрического поля будет той же самой, что и в случае простенькой спиральной антенны. И даже меньше, ибо к волновому каналу прилагается фидер, разъём, и потери в них. Ну и зачем мы тогда потратили деньги на «волновой канал», спрашивается?

      В этом месте стоит подумать и осознать, почему лженаука про ЭИИМ обесценивает любую, сколь угодно совершенную антенну.

    Далее будут обидные красные буквы про физику: изменение мощности передатчика обратно пропорционально усилению антенны абсолютно бессмысленно. Есть разрешённая (безопасная по СанПиН) мощность, вот и работайте ею с какими угодно антеннами.

В данном опусе мы всё-таки под мощностью будем понимать ERP (Effective Radiated Power), эффективную мощность излучения антенны с учётом всех потерь и огрехов согласования. А мощность будем иметь ввиду ровно ту, что доступна в фабрично производимых девайсах (20 dBm на 868 MHz).

Для начала посчитаем энергетический бюджет радиолинии (Link Budget). Мощности в диапазонах 433 MHz и 868 MHz будут 12 dBm и 20 dBm соответственно.

Потери в пигтейлах и разъёмах, а так же на далеко не единичном КСВ антенны, фигурируют в калькуляторе в качестве отрицательного значения «Antenna Gain» -3 dBi. Ибо диполь относительно идеальной изотропной антенны это сразу -2 dBi, пигтейл -0.4 dB, ну и пара разъёмов пигтейла и один разъём антенны по -0.2 dB каждый. Все значения примерные, но адекватные.

Parameter Pruning Value
BW KHz
SF
TX dBm
  dBi
SNR dB
RSSI dBm
  dB

Теперь обратимся к графику затухания радиоволн в той или иной среде. Открытый космос нам не интересен, открытое пространство при условии прямой видимости тоже, а вот партизанские леса издревле привлекают. Данные для негустого лесного массива взяты из курсовой работы Лаптева И.А:

Затухание радиоволн частотой 30 MHz - 30 GGz в лесу.

Для определённости будем считать поляризацию вертикальной, хотя по графику горизонтальная поляризация выгоднее (конечно, если в графике нет ошибки).

Легко видеть, что на 433 MHz каждый метр лесного массива поглотит ~0.12 dB энергетического бюджета радиолинии, и тогда предел дальности связи составляет 1175 м. На диапазоне 868 MHz связь при потерях ~0.18 dB/m пропадёт уже где-то через 830 метров.

Таким образом, диапазон 433 MHz дальнобойнее диапазона 868 MHz. Даже при регламентных мощностях. И без учёта реальной помеховой обстановки.

Казалось бы, аллилуйя. Но нет.

При перемещении из сельской местности в городскую застройку отражение от бетонных поверхностей на частотах 433 MHz не особо выраженное, да и диапазон сильно загажен. 868 MHz для города подходят лучше. Недаром самый «дальнобойный» стандарт сотовой связи 2G посадили на 900 МГц, а не на какие-то другие частоты. Ну и мощность разрешена поболее - 25 mW это для разных датчиков, а 100 mW для интересующих нас экзерсисов.

По факту городские сети LoRa разворачиваются именно в диапазоне 868 MHz, что логично. Если застройка малоэтажная и неплотная, да ещё со всяким озеленением, диапазон 433 MHz может оказаться сильно лучше.

Однако на практике все эти соображения имеют смысл, только если Вы разворачиваете Meshtastic в своей локации с нуля, либо не обращаете внимания на функционирующие сети. При присоединении к существующей сети выбор диапазона уже сделан за Вас.

Скорее всего, это будет 868 MHz. Но лучше уточнить в закрепе TG канала.

Выбор девайса.

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

Полезно знать, к какому поколению относятся LoRa модули, впаянные в ту или иную железяку. Вот эта таблица очень поможет.

Part
number
Modulations Frequency
range, MHz
RX,
mA
RSSI
dBm
TX
dBm
SF BW
kHz
LoRa generation 1
SX1272FSK,LoRa,OOK862-102010-137+206-12125-500
SX1276FSK,LoRa,OOK137-102011-137+206-127.8-500
SX1278FSK,LoRa,OOK137-52511-137+206-127.8-500
LoRa generation 2
SX1261FSK,LoRa,LR-FHSS150-9604.6-137+155-127.8-500
SX1262FSK,LoRa,LR-FHSS150-9604.6-137+225-127.8-500
LLCC68FSK,LoRa150-9604.6-129+225-11125-500
SX1268FSK,LoRa410-8104.6-137+225-127.8-500
LoRa generation 3
LR1121FSK,LoRa,LR-FHSS150-9605.4-141+225-1262.5-500
LoRa generation 4
LR2021FSK,LoRa,LR-FHSS
FLRC,O-QPSK,OOK
150-9605.5-142+225-127.8-500

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

На момент написания опуса уже нет смысла смотреть на девайсы первого поколения, фигурирующие в ранних статьях о технологии LoRa. Вроде бы хороши девайсы поколений 3 и 4. Но поскольку модемы серии LR умеют работать в спутниковых линиях связи L и S диапазонов, чувствительность в -141 и -142 dBm реализуется именно на GHz частотах, а на интересных нам диапазонах могут оказаться всё те же -137 dBm.

Наиболее популярным решением является SX1262 второго поколения, с реальной мощностью 21±1 dBm, и возможностью работы в диапазоне 433 или 868 MHz.

Нюансы «айтишных прибабахов».

Чувствительность RSSI (Received Signal Strength Indicator) в сравнительной табличке выше нормируется для самого «медленного» режима SF12 (spreading factor) при ширине канала BW (bandwidth) 125 kHz.

Совершенно не факт, что в Вашей городской сети Meshtastic будут приняты именно такие значения SF и BW. Возникает вопрос, насколько хуже обстоят дела в реальности по сравнению с идеальным случаем.

Точный ответ на такой вопрос даст породистый калькулятор, учитывающий все нюансы. Но мало кто понимает, в какие позиции надо выставить настройки породистого калькулятора, потому воспользуемся встроенным в этот пост. Вот какие он дал результаты RSSI как функции от SF и BW:

Bandwidth
kHz
Spreading factor:
SF5 SF6 SF7 SF8 SF9 SF10 SF11 SF12
7.8 -131.6 -134.1 -136.6 -139.1 -141.6 -144.1 -146.6 -149.1
10.4 -130.3 -132.8 -135.3 -137.8 -140.3 -142.8 -145.3 -147.8
15.6 -128.6 -131.3 -133.6 -136.1 -138.6 -141.1 -143.6 -146.1
20.8 -127.3 -129.8 -132.3 -134.8 -137.3 -139.8 -142.3 -144.8
31.25 -125.6 -128.1 -130.6 -133.1 -135.6 -138.1 -140.6 -143.1
41.7 -124.3 -126.8 -129.3 -131.8 -134.3 -136.8 -139.3 -141.8
62.5 -122.5 -125.0 -127.5 -130.0 -132.5 -135.0 -137.5 -140.0
125 -119.5 -122.0 -124.5 -127.0 -129.5 -132.0 -134.5 -137.0
250 -116.5 -119.0 -121.5 -124.0 -126.5 -129.0 -131.5 -134.0
500 -113.5 -116.0 -118.5 -121.0 -123.5 -126.0 -128.5 -131.0
Max tolerated frequency offset between transmitter and receiver, no sensitivity degradation
ppm: ± 200± 100± 50

В стандартных пресетах доступны только некоторые значения bandwidth (серые ячейки таблицы), причём все без исключения городские сети работают в канале с шириной полосы пропускания 250 kHz, либо, в лучшем случае, 125 kHz. То есть не с самой хорошей чувствительностью по приёму.

Варианты пресетов, подсмотренные в конфигурационном файле исходного кода, бывают такими (Cycling Coding Rate ответственен за избыточность, вносимую в передаваемые данные с целью автоматической коррекции ошибок при приёме).

Modem Preset Bandwidth
kHz
SF CCR RSSI
dBm
Distance
km
SHORT TURBO 500 SF7 CCR5 -118.5 ~0.3
SHORT FAST 250 SF7 CCR5 -121.5 0.5-1
SHORT SLOW 250 SF8 CCR5 -124.0 0.7-1.5
MEDIUM FAST 250 SF9 CCR5 -126.5 1-2
MEDIUM SLOW 250 SF10 CCR5 -129.0 1.5-2.5
LONG FAST 250 SF11 CCR5 -131.5 2-4
LONG MODERATE 125 SF11 CCR8 -134.5 3-5
LONG SLOW 125 SF12 CCR8 -137.0 4-7
VERY LONG SLOW 62.5 SF12 CCR8 -140.0 5-10

Опять-таки, серым выделено то, что пользователь получает по дефолту. И большинство сетей при развёртывании эту установку не меняют. Что и правильно - при перемещении между городами нода без перенастройки оказывается совместимой с местной Mesh-сетью.

Но правая колонка таблицы нам намекает, что это далеко не самый лучший вариант. Почему же по дефолту выставляется именно он?

Если посмотреть на детальки, распаянные на плате модема, то там вполне может не оказаться термокомпенсированного кварца (TCXO). А стандартом LoRa чётко оговаривается, что центральная рабочая частота девайса не может смещаться от предписанного частотного слота более чем на 25% от ширины канала. При малых значениях BW это может уже и не получиться.

Для значений SF от 10 до 12 стандарт отдельно оговаривает предельное отклонение рабочих частот в ppm. В этом месте мы должны понять, что для действительно дальнобойной аварийной связи, способной работать в широком диапазоне температур, всё-таки нужна не самая ширпотребовская железяка.

Скорее всего, у массового пользователя будет железяка попроще, из числа самых дешёвых. Причём конечный пользователь всех этих «айтишных прибабахов» не понимает, и о причинах отказа техники не догадается.

Чтобы не спотыкаться о такой нюанс, LoRa разработчикам показалось проще ограничить пользователя пресетами, не особо требовательными к качеству аппаратуры. Именно из этих соображений шикарный пресет «VERY LONG SLOW» в середине 2024 года был утерян.

Частотные слоты стандартных пресетов.

Для стран с высокой технологической культурой существует однозначная инструкция, в каком номере частотного слота запускается сеть в том или ином пресете. Инструкцию сложно нарушить, потому как приложение в этом регионе тупо не позволит встать в неправильный слот.

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

Modem Preset Slot Number / MHz:
1 2 3 4
SHORT TURBO 868.95      
SHORT FAST 868.825 869.075    
SHORT SLOW 868.825 869.075    
MEDIUM FAST 868.825 869.075    
MEDIUM SLOW 868.825 869.075    
LONG FAST 868.825 869.075    
LONG MODERATE 868.7625 868.8875 869.0125 869.1375
LONG SLOW 868.7625 868.8875 869.0125 869.1375

Паттерны использования технологии.

Радиочастотным трансивером все премудрости не исчерпываются.
Важно и то, что стоит дальше.

Для разворачивания сложных сетевых протоколов поверх LoRa потребуется микроконтроллер. Он должен удовлетворять требованиям, зависящим от способа использования девайса. И вот сейчас будет самое важное при выборе железяки.

При посещении странички с полным перечнем поддерживаемых устройств сперва станет чуток страшно от обилия моделей железяк. Но потом придёт понимание, что все они строятся на базе всего лишь двух контроллеров. Это семейство ESP32 (в основном S3) и nRF52840. И тут надо определиться, что более любо.

Хорошее представление о вариантах применения «мышастиков» можно получить из таблички с ролями нод.

  1. Даже при работе на действующем в данном городе канале всегда есть возможность не участвовать в общей движухе, а держать связь только между своими устройствами (CLIENT_MUTE). Можно даже объявить какую-то из особо удачно расположенных своих нод ретранслятором (CLIENT_BASE), работающим только со своими же нодами.

    Это не спортивно. Но представляется наиболее правильным вариантом конфигурации личной аварийной радиосвязи. Все радиосети силовиков без исключения работают точно так же - любые вопли «спасите-помогите» от посторонних просто игнорируются.

    При не спортивном поведении не требуется поддержка «мышастиком» технологий Wi-Fi и GPS. Передавать свои координаты в автоматическом режиме мы не будем, что-либо транслировать в сеть интернет тоже. Приоритетна максимальная экономия питания посредством применения малопотребляющего контроллера nRF52840 или подобного ему.

  2. Если хочется спортивного поведения (ретрансляция чужого трафика), да и просто чтобы вкатиться в тему, лучше взять устройство на базе контроллера ESP32-S3 «на вырост». Там будет Wi-Fi и демократичный ценник, но ценой повышенного энергопотребления. Нужен ли GPS, есть сомнения. Наверное, не особо.

  3. И совсем уж спортивным поведением будет подключение своей ноды ещё и к интернету через Wi-Fi, с поднятием на ноде MQTT протокола (Message Queuing Telemetry Transport). Обычно так делают при сильной фрагментации сети, когда связи между её частями нет. Это позволяет понять, что творится в недоступных фрагментах сети, а заодно отобразить все активные ноды на карте, к примеру говоря.

  4. То же, что и предыдущий пункт, но публичного брокера MQTT, обычно работающего с ограничениями, можно заменить на собственного, что позволит полноценно объединить несколько радиосетей, разнесённых в пространстве или по частоте. В последнем случае даже и интернет не нужен, для шлюза между сетями достаточно сил контроллера ESP32.

  5. Есть ещё одна грань выбора. Наличие дисплея.

    1. В большинстве случаев толку от дисплея немного, он мелкий и не особо информативный. Учитывая, что устройством ввода-вывода всё равно будет смартфон, без дисплейчика можно обойтись.

    2. Отдельным классом идут девайсы с использованием E-Ink Paper Display. Размер дисплея на электронных чернилах тут побольше, ибо предполагается взаимодействие с устройством преимущественно через него (пользовательский интерфейс InkHUD). Идея хорошая, но реализация на данный момент не особо вдохновляет. Когда-нибудь это доведут до ума.

  6. На самом последнем месте стоит выходная мощность.
    Есть три банальных соображения.

    1. Стандартной мощности 20 dBm (100 mW) хватает для работы в «кусте» низовой радиосети, покрывающей территорию в десятки квадратных километров. Дотянуться до соседнего «куста» простым наращиванием мощности сверх разрешённой регламентом обычно не получается, если нода не стоит достаточно высоко.

      Придётся выделять отдельную ноду, и поднимать её куда повыше. Как правило, обычно все возвышенные места слабообитаемые. Так что далее будет квест, как и чем запитывать устройство.

    2. Если возвышение над рельефом не помогло, а забраться ещё выше уже не реально, можно попытаться умощниться, или/и взгромоздить на верхотуру направленную антенну. Или более эффективную.

    3. Но.

      Радиолинии лучше быть симметричной. Чувствительность, мощность и эффективность антенн с обеих сторон должны быть примерно одинаковы. Если наша нода тупо не слышит соседа, то всё равно, сколь высока у нас мощность. Можно умощниться сверх регламента, и сосед нас таки услышит. Но толку-то с того, если в обратную сторону пакеты не ходят?

  7. А вот об этом вообще мало кто думает.
    Информация не афишируется, но потом приходит расплата:

    1. Микроконтроллер nRF52840 экономичен, но ему не хватает памяти. Популярная у народа нода «t-echo» нормально работает только в сетях до примерно 80 нод. Потом ей становится плохо.

    2. Нода «t-beam» на ESP32 применима в чуть более крупных сетях, до 100 узлов. По исчерпании памяти наблюдается та же беда.

    3. Микроконтроллер ESP32-S3 осиливает сети в сотни узлов. Местный автор не сталкивался с по-настоящему крупными сетями, более 300 узлов. Но в таких условно-больших сетях проблем не было.

Если учесть всё тезисно перечисленное выше, то для села и аутдора можно рекомендовать систему на экономичном микроконтроллере nRF52840. Для городов с их потенциально большими сетями (не успеете моргнуть, как сеть вырастает кратно) пригоден только ESP32-S3, причём без вариантов.

В любом случае девайс надо выбирать из этого списка. Software имеется строго для них. Существует сравнительная табличка. Должна пополняться.

Поскольку местный автор живёт в миллионнике, его выбор естественным образом пал на Heltec WiFi LoRa 32(V3), построенный на ESP32-S3 и SX1262 LoRa Node.

Безусловно, это не самый лучший выбор, контроллер не экономичный. Но для стационарной ноды, с которой ещё и хочется поиграться в разные грани технологии, самое то. К тому же до 80% нод работает именно на этом микроконтроллере, что явно неспроста.

Heltec WiFi LoRa 32(V3)

Продавец присылает аккуратную пластиковую коробочку с нормальной полиграфией, внутри коробочки надёжно упакована плата девайса, две «гребёнки» на случай её распайки на какой-нибудь плате интеграции, а так же разъём с проводками для подключения аккумулятора, и пигтейл с очень маленькой антенной:

Упаковочная коробка и комплект поставки Heltec WiFi LoRa 32(V3).

Под моделью «Heltec WiFi LoRa 32(V3)» могут подразумеваться несколько разных версий. Та, что на фото, финальная. Если детальки в левой части платы распаяны иначе или в другом количестве, такое покупать не надо.

GPS в этой версии железяки отсутствует. Сама железяка не экономична по питанию, но зато к ней можно прицеплять всяческую периферию на шину I2C. Дозиметр в списке обязательно есть :)

Пины GPIO тоже можно задействовать, подсовывая туда всякое, от пищалки до GPS. Недаром же в коробушке с девайсом лежат две «гребёнки» по 18 пинов.

Но это всё потом. Нам предстоит Большой Путь. Поначалу он страшен, но со второго раза проходится за пять минут. Вот его этапы.

1) Сперва нас ждут неприятности.

Примечательно то, что девайс, подсоединённый к прилагаемой антенне (это обязательно) и питанию, похоже, «из коробки» не заработал ни у кого. Нет, он стартует на какой-то непонятной прошивке, но подключиться к нему отчего-то не получается. Так что далее возникает мысль о перепрошивке. И она верная.

Но нельзя просто соединить что-то с чем-то шнурком.
Без танцев с бубном не кошерно.

2) Драйвер.

У каждого девайса на USB порту висит тот или иной преобразователь USB-UART. У Heltec c микроконтроллером ESP32S3 это традиционно CP210x. Соответственно, под конкретную операционку драйвер можно брать здесь или в любых иных местах, которые выгуглятся. Лучше всего «with Serial Enumeration».

После установки драйвера девайс можно подтыкать к компу, наблюдая в «Диспетчере устройств» возникновение соответствующего COM-порта (его номер пригодится дальше) в виде строчки наподобие такой:

Silicon Labs CP210X USB to UART Bridge (COM12)

    Сплошь и рядом на этом этапе COM-порт девайсу не выделяется. И в большинстве случаев это не драйвер криво встал или не встал вообще, а попался шнурок, в котором отсутствует проброс Data линий. Он для зарядки, не для передачи данных.

3) Прошивка.

Русским людям не возбраняется видеть на экранчике девайса сообщения на русском языке, что не получится сделать, пока в прошивке вместо родной кодовой страницы 1251 стоит европейская 1252. Как бы заменить одно другим не трудно, но далее придётся всё это компилировать, осваивая попутно IDE и прочие малопонятные штуки.

Поэтому вместо прошивки во flasher.meshtastic.org либо квеста по сборке прошивки из исходников самому, можно порекомендовать прошиться на сайте mrekin.duckdns.org. Русификация там уже проведена, марка девайса в первой выпадающей форме выбирается в версии (RU).

Далее есть два пути.

3.1) Прошивка онлайн.
Прошивка устройства meshtastic с поддержкой русского языка.

Как правило, во второй выпадающей форме в самом низу будет стабильная прошивка, на которой все и работают. Выше - версии с новшествами, оттестированные хуже.

Способ прошивки «wipe and reinstall device».
Ибо неведомо, что там в памяти девайса сидит.

Далее жмётся кнопка «Install»

На старте процесса пригодится знание номера COM-порта. Хотя возникшее модальное окно отобразит все доступные, так что по именам девайсов, в них воткнутых, тоже получится сделать правильный выбор.

Сама процедура тривиальна, как нажимать кнопочку, пояснения не нужны.

    Хочется предупредить.

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

    Онлайновая прошивка очень не рекомендуется.

3.2) Прошивка оффлайн.

Если интернет поломали, и прошиться онлайн не судьба, будет полезна загодя скачанная прошивка (кнопочка «Download FW ZIP» на рисунке выше как раз про это) и любая тулза для вливания прошивки в устройство по USB кабелю, драйвер для которого мы уже установили.

    Рекомендуется завести папочку с невинным именем «ArcticFox».
    И заколлекционировать в неё то, что уже имеем (драйвер, прошивки).
    Флешка с такой папочкой скоро станет ценностью.

Имеется несколько альтернативных вариантов локальных прошивальщиков.

3.2.1) Flash Download Tool

Те, кто ковырялся в ESP32 разных модификаций под Виндой, должны знать такую утилиту. В скачанной ранее прошивке содержатся файлики с до боли знакомыми именами (bootloader.bin, partitions.bin, firmware.bin), которые заливаются в девайс каждый с определённого адреса как раз этой утилитой.

Краткий гайд на примере прошивки для heltec-v3-ru.

  1. Вытаскиваем перечисленные выше файлы из архива с прошивкой.
    Их там может быть больше, но нужны только эти.
    Куда-нибудь их складываем, не особо далеко.

  2. Девайс уже подключен USB шнуром к компьютеру, драйвер установлен, номер COM-порта известен.

  3. Запускаем утилиту Flash Download Tool.
    Eё приветственное окошко конфигурируется таким образом:

    Flash Download Tool - Chip Type:ESP32-S3; WorkMode:Develop; LoadMode: UART;
  4. Кнопками с изображением многоточия добавляем пути к составляющим прошивки, указывая каждому файлу его начальный адрес. Перед строками нужно поставить крыжики.

    Flash Download Tool - bootloader.bin:0x0; partitions.bin:0x8000; firmware.bin:0x10000;

    COM-порт должен быть подставлен верный.
    Как и все остальные чекбоксы, показанные на рисунке.

  5. Нажимаем кнопку «START». В DOS-овском окне будет виден процесс.
    Процесс неспешен, скорость передачи данных всего 115200 Baud.
    Текст «is stub and send flash finish» говорит о его завершении.

    Flash Download Tool - log

Это вся премудрость.

Вариацией может служить вливание в 4-ом пункте только одного файла с нулевого адреса, если прошивка его содержит (firmware.factory.bin).

Стоит отметить, что заливка прошивки одним файлом и тремя отдельными не равнозначны. В одном из случаев память ноды (настройки каналов и всё такое) сотрётся, а в другом нет.

    Оффсайт утилиты Expressif Flash Download Tool.
    Про хранение её в папке «ArcticFox» все всё понимают правильно.

3.2.2) esptool

Доверие у народа к китайскому софту с иероглифами на кнопках, скажем так, весьма сдержанное. Альтернативой будет чуть более распространённый софт, который можно скачать много где. Речь про esptool.

К сожалению, это консольная утилита, в которую надо вбивать команды с клавиатуры ручками, на хакерский манер. При этом чётко осознавая, что именно натыкано пальцами.

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

Давайте просто ради любопытства и без всякой необходимости перепрошьём девайс ещё раз, но из-под утилиты esptool:

  1. В произвольную папку помещается сама утилита, её командный файл (обычно flash.bat) и файлы прошивки.

    Командный файл редактируется под реальный номер COM-порта.
    «Блокнот» Винды для этого вполне подойдёт.

  2. Далее понадобится виндовая утилита cmd.
    Обычно она доступна в «Пуск» ⇒ «Выполнить» ⇒ ввести cmd
    Ну или комбинация клавиш Windows+R и ввести cmd

  3. В возникшем окошке следует набрать досовскую команду cd и через пробел путь до папки с утилитой, нажав в завершении Enter.

  4. Ручками указать командный файл и нажать Enter.

  5. Дальше в этом же окне случится вывод содержимого командного файла, а также лог действий. Для прошивки одним файлом firmware.factory.bin с нулевого адреса картинка будет такой:

    esptool, прошивка firmware.factory.bin

    Но можно залить все три файла прошивки bootloader.bin, partitions.bin, firmware.bin по подобающим им адресам.

    esptool, прошивка bootloader.bin, partitions.bin, firmware.bin

    Процедура проистекает неожиданно быстро благодаря скорости обмена данными 921600 Baud, что подразумевает наличие качественного USB шнурка. Но если с качеством шнурка всё плохо, в командном файле скорость придётся скинуть до 115200 Baud.

Как видим, это самый простой в реализации вариант.

    Заколлекционировать утилиту можно тут: github-espressif-esptool
    Образцы .bat файлов: ZIP (обязательно поменяйте COM порт на свой).

Всё показанное выше является чистым лайфхаком для упрощения жизни, потому как предписанная последовательность действий с предварительной установкой Python и работой в esptool через командную строку описана здесь, и весьма смахивает на мазохизм. Но в итоге окажется, что любые действия с девайсом можно произвести по шнурку, без всякого приложения. Соответствующие инструкции можно получить в разделе Python CLI Guide.

4) Приложение.

Наиболее функционально приложение под Андроид, брать его лучше здесь, а не в Google Play или F-Droid. Под Iphone оно тоже есть, но не для нашей локации. Чтобы просто приложение скачать и запустить, придётся сделать множество хитрых телодвижений. Однако местный автор мало что понимает в буги-вуги, он не любитель этого дела, и инструкций не даст.

После установки приложения сильно рекомендуется пойти телефоном в его настройки, выбрать пункт «Приложения» ⇒ «Meshtastic» ⇒ «Открывать по умолчанию», и разрешить приложению ходить в домен meshtastic.org по ссылкам.

Зачем это надо.

В TG-группе Meshtastic Вашего города где-нибудь в закрепе обязательно будут настройки канала в виде дюже страшной ссылки либо QR-кода. При их активации в приложение пропишутся правильные настройки канала, актуальные в данной местности. С изменениями надо согласиться, после чего сопряжённый по Bluetooth девайс перезагрузится, и тут же станет нодой. Которая даже чего-то начнёт ловить, если вокруг есть жизнь.

Взаимодействие ноды с приложением.

Нода способна работать автономно, накапливая в себе информацию по каждой станции. В момент сопряжения со сторонним софтом происходит передача большого объёма информации из ноды в софт. Делается это в формате JSON, последовательно для настроек трансивера LoRa, каналов, настроек самой ноды, и всех зафиксированных нодой станций.

При подключения по USB шнурку или Wi-Fi процедура проистекает быстро и почти незаметно. Bluetooth же не порадует. При числе нод в сети за сотню обмен информацией длится довольно долго, что нервирует. Видимо, в том числе и по этой причине люди склонны к выбору в пользу девайсов, поддерживающих Wi-Fi.

5) Капризы Bluetooth.

Каждый раз, когда нода принимает новые настройки (их много, какие-то по-любому будете часто менять), она выключается и включается вновь. В этот момент Bluetooth связь рвётся, и зачастую сама не восстанавливается.

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

Как правило, помогает отключение Bluetooth в самом телефоне, и через пяток секунд включение его обратно. Некоторые отмечают, что при включенной геолокации проблема уходит. У других от геолокации ничего не зависит.

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

6) Wi-Fi.

Раз уж девайс умеет работать в сети Wi-Fi (а Heltec LoRa 32 умеет), можно не мучить себя блютузом. С вай-фаем открываются новые перспективы. Интеграция с картами через MQTT и прочие развлечения. Да и банально приложение быстрее взаимодействует с нодой именно в сети Wi-Fi, а связь поддерживается на более длинных дистанциях.

Но есть нюанс.

Если через приложение переключиться в режим Wi-Fi, а потом потерять эту сеть, то вернуться на Bluetooth не получится. Потому как переключение режимов осуществляется в приложении. С которым у ноды контакт потерян.

Ситуацию спасёт кнопка «PRG» ноды. Ею надо вызвать экран с уровнем сигнала Wi-Fi, нажать её же подольше, и тем самым войти в меню. Там короткими нажатиями переместиться в пункт выключения вай-фая, и опять зажать кнопку.

Правда, есть такое только в относительно свежих версиях прошивок. При старой, но стабильной прошивке, альтернативой будет только COM-порт.

7) COM-порт.

Ежели смартфон не обучен взаимодействовать с COM-портом по шнурку, починять вышедшую из повиновения ноду придётся через Web-клиент. Если он убит роскомнадзором, можно попробовать альтернативный.

Разработчики приложения сделали всё, чтобы фатально запутать юзера:

  1. Есть отдельный выключатель Bluetooth, изначально он включен.
  2. В другом пункте настроек включается Wi-Fi, изначально выключен.
    Имеет приоритет над Bluetooth.
    Если включены оба, работает Wi-Fi.
  3. Ещё встретится управление COM-портом, «из коробки» порт отключен.
    Но это не оно.
  4. В разделе безопасности есть созвучное: консоль COM-порта.
    Вот она-то нам и нужна.

Консоль COM-порта очень рекомендуется держать включенной, потому как случайное отключение Bluetooth (после загрузки прошивки только он и активен) оставит Вас вообще без возможности управлять нодой.

Правда, с COM-портом тоже не всё ясно. Если воткнуть ноду шнурком прямо в смартфон, управление через порт возможно только при отключенном Wi-Fi. Но если переткнуться в десктоп, то Web-client по COM-порту прекрасно работает независимо от включенности либо выключенности остальных беспроводных протоколов.

Следует иметь ввиду, что на некоторых комбинациях версий прошивки ноды и приложения при работе через Bluetooth нет никакой возможности войти в меню управления Wi-Fi (нода сразу уходит в перезагрузку). И есть только один способ это победить - подключиться через COM-порт.

Вот так всё сложно и затейливо.

8) Антенна.

Сперва местный автор расскажет анекдот, не выдумав ничего.

Расстояние до города у него километров двадцать, и основное скопление нод именно там, вдалеке. Вблизи тоже есть, но мало. К счастью, окна обращены в сторону города, так что можно поставить на подоконник пару нод с разными антеннами, и сравнить приём на грани чувствительности. Потом поменять на нодах антенны, дабы проверить воспроизводимость результатов. Ведь не факт, что две разные железяки идентичны друг другу.

Роль этих нод одинаковая, CLIENT_MUTE.
Они не пытаются ретранслировать трафик.

Смешно стало, когда нода со штатной крошечной антеннкой (высота вместе с разъёмом меньше спичечного коробка) показала приём лучше, чем с полноразмерным диполем. Настройка «отображать только слышимые узлы» предъявляет список нод, принимаемых напрямую, без прыжков. У штатной антенны он обширнее, а в списке есть ноды более удалённые по сравнению со списком от дипольной антенны.

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

Местный автор полагает, что внутри жилых помещений довольно много электроники, создающей электронный смог. Особо стараются роутеры и компьютеры. Банальной радейкой 70-см диапазона с отжатым шумодавом даже можно оценить вклад каждого девайса, поводив рядом с ним антенной радейки. Будет шумно.

Думается, что полноразмерная дипольная антенна просто впитывает больше индустриальных помех, заглушающих эфир. Бороться с этим проще всего выносом антенны за пределы здания на кабеле. Да, в кабеле будут какие-то потери, но уровень эфирных шумов упадёт сильнее, чем полезный сигнал.

За пределами здания диполь несоизмеримо лучше штатного штыря.
Да и эффективность излучения у него однозначно выше, кто бы спорил.

Но сам факт того, что крошечная спиралька (фактически это не что иное, как модель антенны, своего рода терминатор, дабы не пожечь трансивер в режиме передачи) позволяет услышать из помещения хоть что-то, живущее в 20+ километрах, несказанно удивил. А что работа на приём этого уродца лучше, чем у диполя в тех же условиях, удивило сверх всякой меры.

На передачу штатный коротыш плох.
В городской застройке его слышат хорошо если метров на 500.

В науке принято объект исследования охарактеризовывать.
Векторный анализатор воспринимает штатный коротыш так:

Штатная спиральная антенна Heltec LoRa 32 v3

Естественно, антенна оказалась на 915 MHz (для американского рынка), а на нашей частоте КСВ у неё двойка. Импеданс плох.

Перестройка штыревых антенн (пусть и свёрнутых спиралькой) вниз по частоте бесперспективна. Вверх по частоте перестраиваться проще, можно откусывать кусачками активный вибратор по миллиметру.

Для смещения резонанса вниз увеличим диэлектрическую проницаемость пластикового корпуса антенны, надевая на антенну сверху колпачок от ручки. Этот метод вполне рабочий:

Смещение резонанса штатной спиральной антенны Heltec LoRa 32 вниз по частоте колпачком от ручки.

Примерно то же самое достижимо, если корпус антенны снять, внутрь спиральки антенны вставить примерно сантиметровый кусок стержня от шариковой ручки, а уже в центр стержня затолкать чуть менее сантиметра проводника от витой пары. Его длина подбирается так, чтобы при надетом обратно корпусе антенны резонанс получился в нужном месте:

Смещение резонанса штатной спиральной антенны Heltec LoRa 32 вниз по частоте внутренним проводником.

Физически такой экзерсис равноценен повышению межвитковой ёмкости у спиральки антенны, а подобные вещи обычно сопровождаются сужением полосы пропускания. И действительно, крутизна графика КСВ со стороны высоких частот стала побольше. Скорее всего, это наш выбор.

Можно вообще извратиться, взять сантиметров шесть транспортировочной скрутки (используется для фиксации кабелей и проводов наушников, по сути это тонкая сталистая проволочка в хреновой плоской изоляции) и намотать спиралькой в два витка по всей длине защитного пластика антенны. Держаться будет плохо, так что синей изолентой её поверх.

Смещение резонанса штатной антенны внешней спиралью.

Работает такая порнография на удивление хорошо:

Смещение резонанса штатной спиральной антенны Heltec LoRa 32 вниз по частоте внешней спиралью.

Выглядит идеально, но эффективность излучения укороченного штыря не высока. Однако никто и не планировал всерьёз воспринимать штатную антенну, потому на любом маркетплейсе за самый минимальный ценник стоит приобрести дипольную антенну, можно даже в излишне просторном корпусе:

Дипольная антенна 868 MHz

При обзоре векторным анализатором в диапазоне 700-1200 MHz можно увидеть резонанс на ~865 MHz, КСВ вблизи 1.2:

Дипольная антенна для Heltec LoRa 32 v3

В принципе, даже такая копеечная антенна уже хороша.
Её внутреннее обустройство на рентгене:

Рентгеновский снимок дипольной антенны 868 MHz.

Мы видим классический диполь с запорным стаканом. Пластиковый корпус подразумевает возможность монтирования внутрь диполя на 433 MHz, и в данном случае корпус излишне просторен.

Он легко снимается, укорачивается сантиметров на 13-15, и надевается обратно. Резонанс при этом никуда не уходит.

У более породистых антенн внутри всё будет точно таким же, только корпус сразу по размеру. Но уже не за копейки.

Впрочем, «породистые» антенны имеют смысл лишь при эксплуатации в строго контролируемых условиях. А ручная нода - вещь такая. Сегодня она стоит на подоконнике в окружении цветов, завтра её вдруг передвинули вплотную к оконному стеклу, а то и вовсе в рюкзак кинули. А всё, что на расстоянии нескольких длин волн, влияет на резонанс. Даже если оно не из металла.

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

868/915 MHz 20cm WT антенна с Алиэкспресса.

В лот «868/915 MHz 20cm WT» входят две антенны, два длинных пигтейла, и шайбочки с гаечками для крепления разъёма пигтейла на панели. Внутри антенны будут уже знакомые нам потроха (кликните, чтобы увеличить):

Внутренний мир 868/915 MHz 20cm WT антенны с Алиэкспресса.

В разных интернетах написано, что инновационный латунный цилиндрик от запорного стакана надо тотчас отломать, и изъять его из конструкции:

Модификация 868/915 MHz 20cm WT антенны с Алиэкспресса.

Давайте оценим по приборам, что нам это дало.

Изначально, с латунным цилиндриком, антенна настроена посерёдке между диапазонами 868 MHz и 915 MHz. Если на частотах этих диапазонов КСВ получится менее двойки, это нормально:

Частотная зависимость КСВ 868/915 MHz 20cm WT антенны с Алиэкспресса.

При отламывании латунной трубочки резонанс уходит точно на нужную нам частоту, а завал в области высоких частот заметно возрастает:

Перестройка двухдиапазонной 868/915 MHz 20cm WT антенны с Алиэкспресса на частоту 869 MHz.

На минимальное значение КСВ латунная трубочка никак не влияет, а вот широкополосности она добавляла. Сейчас влияние окружающих предметов на частоту настройки антенны будет заметнее. И как бы это влияние не попортило нам жизнь сильнее, чем не совсем точная настройка антенны «из коробки». Хотя так-то всё красиво.

Скорее всего, именно такую антенну с инновационной латунной трубочкой и стоит ставить на ноду. Трубочку недолго отломать, если только возникнет мысль подобным заниматься (что не обязательно). Сделана антенна из качественных материалов, несравненно лучших, нежели аналогичная с рентгеновским снимком выше по тексту.

Любителям Ротхаммеля предлагается каноническое описание этой антенны.

    Ну и раз уж мы снизошли до учебника, минутка науки.

    1. Конечно же, пассивные антенны не обладают никаким усилением. Более того, они не способны без потерь излучать подводимую мощность. Конкретно в нашем случае мы будем терять примерно 2 dB мощности на большинстве типов антенн даже при их единичном КСВ.

      Другое дело, что опять-таки в нашем конкретном случае хочется излучать во все стороны, но строго в горизонт. Вверх и вниз не надо, как и под разными углами к горизонту. Если это удастся, то корреспондент услышит нас громче, чем если бы мы ту же мощность излучали сферически. Этот выигрыш договорились называть усилением антенны относительно изотропной. При всём при том, что изотропной антенны в природе не существует, это буквально сферический конь в вакууме, строго умозрительная концепция.

      Усиление антенны в нужном направлении выражают в dBi. Чтобы подчеркнуть, что сравнение производится именно с изотропной антенной, в конце пишут i.

    2. Комплектный «штатный коротыш» конструктивно соответствует четверьволновому штырю, укороченному удлиняющей катушкой. Действие не очень здравое, ибо оно снижает апертуру. Но мы понимаем, для чего это сделано - чтобы штатная антенна влезла в комплектную коробку, внутренний размер которой 6 см.

      Формально четвертьволновый штырь имеет затухание в 0.85 dBi, и лишь при организации ему системы противовесов можно получить усиление в 1-2.2 dBi. Но это совершенно точно что-то более серьёзное, чем пигтейл, обычно уложенный как попало.

      Учитывая, что корпус ноды всегда пластиковый, и в нём нет ничего, что сошло бы за противовес, в реальности с жалкой пародией на противовес в качестве пигтейла можно надеяться на усиление такой антенны в 0 dBi. То есть никакого усиления нет, и это в лучшем случае.

      В зависимости от того, как именно организован противовес (горизонтальная заземлённая пластина, несколько радиальных проводников, загнутых вниз под определённым углом для получения 50-омного импеданса), энергия излучается под углом к горизонту, в небо, но никогда не ровно в горизонт. Это тоже надо понимать.

    3. Диполь противовесов не требует, и имеет усиление 2.15 dBi. Это в цифрах соизмеримо с четвертьволновым штырём, прикрученным на здоровую металлическую пластину, и на 3 dB больше, если штырь на пластину не садить. Но тут излучение строго в горизонт, а не в небо.

      По сравнению со штатной антенной, диполь всяко лучше.

    4. Не исключено применение штыря в 5/8 длины волны, по аналогии с профессиональной связью. Потребуется система противовесов, а так же конструктивная катушка в полотне антенны. Всё это довольно сложно, а усиление антенны воображение не поражает, всего 3 dBi. Различия с диполем почти нет.

    Все простые антенны не могут иметь «усиление» выше означенных цифр. Если антенна не коллинеарная (что сразу понятно по размерам и цене), любые циферки на много dBi всего лишь фантазии нескромных китайцев. Собственно, такие фантазии про 5 dBi на скрине чуть выше мы наблюдали.

9) Питание от аккумулятора.

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

Согласно схемы, в девайсе стоит контроллер заряда в типовом включении. Ток заряда по даташиту LGS4056HDA составляет ½ Ампера, светодиод индикации светится при заряде. Контроля температуры батареи нет.

Конечное напряжение заряда для чипа с таким индексом составляет 4.35 V, что для «обычного» Li-Ion либо Li-Pol много. По всей видимости, здесь подразумевается использование химии HV-Li (High Voltage Lithium Polymer). По возможности стоит приобретать именно такую, современную, химию.

С другой стороны, элементы на стандартной химии, будучи снятыми с зарядки, потом ещё долго демонстрирую ЭДС в районе 4.4 V. Причём даже длительное выдерживание элементов под внешним напряжением вплоть до 4.5 V не сокращает их срок службы. Поэтому вместо HV-Li можно спокойно ставить Li-Ion или Li-Pol. Второй из них лучше.

Неожиданно отсутствие защиты от переразряда. На схеме MOSFET AO3400 (Q4) вроде бы должен батарею при сильном её истощении отключать, только вот напряжение отсечки для этого номинала всего около полутора Вольт, а не три, как бы хотелось.

Эмулятор BMS аккумуляторной батареи Heltec WiFi LoRa 32(V3).

    Скорее всего, этот непонятный транзистор поставлен спасать схему при неправильном присоединении аккумулятора. Да, от переполюсовки он поможет. Но при глубоком разряде аккумулятора транзистор перейдёт из ключевого в линейный режим, что чревато его выгоранием. По воплям в российском TG канале, такое периодически случается.

Интересно, что девайс сам считает батарею разряженной при напряжении на ней 3.37 V. Между тем в табличке SoC за 0% заряда приняты 3.0 V:

State of Charge Li-Ion Voltage
100% 4.2
80% 4.0
50% 3.7
20% 3.4
0% 3.0

Итого девайс игнорирует около 20% остаточного заряда аккумулятора, что расточительно. Хотя при рекомендации держать заряд батареи для долгой её жизни в диапазоне 20-80% и теперь понимая, что 0% по показаниям девайса как раз и соответствуют 20% по SoC, это как раз хорошо.

Чтобы не гадать на подобных таблицах, местный автор приобрёл вот такое изделие с иероглифами от китайских ремесленников:

Тестер элементов 18650.

В левый слот втыкается аккумулятор для питания поделия (либо 5 V через разъём), в правый - тестируемый элемент. Его разрядка на резистор 8 Ω с замером тока и напряжения позволяет посчитать каким-то простеньким микроконтроллером ёмкость в единицах mAh и mWh. Значения получатся пессимистичные, ибо при меньшем токе разряда ёмкость точно будет выше.

Вариаций такого пробника есть штук пять разных, но по конкретно этому оптимизация ещё не прокатилась бессмысленным катком, и все аналоговые измерительные цепи исполнены аппаратно, а не эмулированы программно. В любом варианте исполнения пробника его ценность заключена в двух правых кнопках, позволяющих произвольно выбирать конечное напряжение разряда с шагом 100 mV.

Как оказалось, при разряде элементов 18650 стандартной химии с 4.2 V до 3.4 V фиксируется ёмкость в среднем на 13% меньше, нежели при разряде в ноль, до 3 V ровно. Погрешность тестера тут роли не играет.

Давайте подумаем, что случится при оборудовании девайса стандартным литиевым аккумулятором с платой защиты. В реальности напряжение может просесть до 2.5 V, что очень далеко от 3.37 V, принятых в девайсе за 0%.

Микроконтроллер ESP32S3 по даташиту остаётся работоспособным до 2.7 V. При дальнейшем снижении питающего напряжения он начинает работать нестабильно. Тут мы явно ходим по краю.

Трансивер SX1262 можно запитывать напряжением от 1.8 до 3.7 Вольт, то есть он будет работать до последнего. При этом максимальная мощность в режиме передачи снижается до 17 dBm (50 mW) при напряжении 1.8 V.

Meshtastic.

Про потерю чувствительности даташит ничего не говорит, никаких цифр не приводит. Известно только, что в диапазоне 1.8-2.0 V возможна деградация чувствительности, от 2.0 до 3.3 V чувствительность и стабильность работы оптимальны.

Со стороны трансивера никаких проблем не предвидится.

10) Строительство ноды.

Про «строительство» громко сказано. Это всего лишь засовывание готовой платы в подходящий корпус, вкладывание в него аккумулятора на 5-10 Ah с химией Li-Ion либо Li-Pol, с выводом наружу стандартного SMA разъёма с целью вкручивания в него антенны. Она непременно должна быть съёмной.

Вот что уже понятно:

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

    В качестве более универсального решения подойдёт модуль заряда на чипе TP4056 в комбинации с защитой на DW01A. У китайцев пять таких модулей стоят меньше доллара. Наиподробнейшее изложение, как это всё работает, причём ажно в трёх частях, можно лицезреть тут.

    Модуль заряда Li-Ion TP4056 со схемой защиты на DW01A и FS8205A.

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

  2. Кстати, о ёмкости аккумулятора.

    Кардинальным решением вопроса автономности стало бы применение 4695E на 30 Ah. Это то, к чему надо стремиться :) Но путь в метро или на вокзал будет заказан - на рентгене нарисуется граната.

    Более скромная мысль - использовать парочку элементов 26650 на 5 Ah каждый. Однако потом вычиталось, что честную ёмкость у них мало кто видел, это в чистом виде лотерея. В то же время в большом количестве имеются дармовые 18650 после потрошения сборок. Типовая остаточная ёмкость при разряде от 4.2 до 3.4 Вольт порядка 2.5 Ah. причём банки породистые, от Matsushita Electric или каких других японцев.

  3. Местный автор полагает, что нескольких элементов 18650 (от трёх и больше) ему должно хватить. Но коробочка получается немаленькой. Поэтому, раз не сложилось с миниатюрностью, пускай коробочка будет с трёхмиллиметровыми стенками, дабы стойко переносить все тяготы службы. Лучше с прозрачной крышкой, чтобы наблюдать дисплей. Хотя вроде как это и не особо надо.

    На маркетплейсе можно подобрать гермобокс на любой размер. Тут вполне подошёл 100*70*50 мм, причём габариты взяты с запасом. Если захочется дополнить ноду GPS модулем или контроллером солнечной панели, всё это без проблем влезет внутрь.

    Габариты коробки в 3-4 раза превышают размеры красивых фигурных корпусов, напечатанных на 3D принтере, и ставших визитной карточкой технологии. Но таков путь.

  4. Ну и раз уж мы начали играть в герметичность, две кнопки на плате, которые изредка требуется нажимать, имеет смысл продублировать чем-то брутальным, вынесенным на корпус.

    Брутальные кнопки на замыкание зачастую снабжаются подсветкой. Встречается подсветка на 3-6 Вольт, так что оба светодиодика на плате имеет смысл обесточить, перенеся индикацию в тело кнопок.

    На маркетплейсах есть вполне компактные.

    Кнопки на замыкание с RGB подсветкой.

    Кнопки бывают разного диаметра, нам подойдёт самый мелкий размер. Внутри три светодиода с общим катодом, выведенным на общий провод (минус). Пятый вывод - кнопка на замыкание без фиксации, второй контакт которой также подключен к минусу.

  5. С антенным разъёмом самые большие непонятки, и складывается такое ощущение, что про них мало кто вообще задумывается. Потому как есть два взаимоисключающих варианта.

    1. Штатная антенна типа «штыря» или аналогичная.
      Та, которую сразу приговаривают «под замену».

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

      Тоненький экран пигтейла, уложенный внутри корпуса как попало, в качестве противовеса рассматривать нельзя. Поэтому иногда люди делают так (применена самоклеющаяся лента Фарадея, link):

    Противовес экспромтом для штыревой антенны.
    1. Разные варианты вертикальных диполей.

      В большинстве случаев это будет несимметричный диполь (ибо нужен импеданс 50 Ω), причём не разрезной, а питаемый с конца. Никаких противовесов ему не надо. Вся проблематика связана лишь с необходимостью как-то поделить питающий фидер на собственно пассивный фидер, и активную часть диполя. На КВ это делается запорным дросселем, на УКВ запорным стаканом.

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

    Чтобы не творить странное, как показано на рисунке выше, лучше сразу подложить под антенный разъём массивную железяку. Идеально, если это будет медная железяка максимальной площади.

    Люди с профильным образованием всё изложенное выше прекрасно понимают, но во избежание массивной железяки оклеивают корпус ноды изнутри медной фольгой потолще, с надёжным контактом на массу антенного разъёма. Смысл действа тот же самый.

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

11) Лютый колхозинг.

В выбранную коробочку укладывается 6 элементов 18650 двумя слоями. Но одним элементом пришлось пожертвовать, так как кнопки и электроника тоже требуют пространства.

Электроника запаяна на макетку с двух сторон, вид снизу такой:

Распайка всех комплектующих ноды на макетке.

На плату Heltec-а мы смотрим снизу, полигон J2, первый пин расположен слева. Распиновка в высоком разрешении доступна по клику в картинку:

Распиновка Heltec WiFi LoRa 32(V3).

Видно, что к Heltec-у выполнено присоединение всего в пяти точках (слева направо по фото):

Pin Use Comment
1GNDОбщий провод, земля, масса.
25VВнешнее питание, тут не используется.
7RSTКнопка RST
8GPIO0Кнопка PRG.
10GPIO35LED RST.

С пинами RST и PRG всё предельно ясно, они выводятся на дублирующие «брутальные кнопки». LED RST подключается к зелёному светодиоду «брутальной» кнопки PRG, он светится достаточно ярко от 3.3 Вольт, и загорается на пару секунд при старте либо перезагрузке ноды. Им же индицируется «сердцебиение», которое обычно всегда отключается. То есть к самим физическим кнопкам и светодиодам платы Heltec-а припаиваться тоненькими проводками под микроскопом не придётся.

С модулем контроллера заряда TP4056 дела обстоят чуть сложнее.

На нём распаяны два светодиода «заряжается» и «заряжено», но сами светодиоды запаяны анодами на +5 Вольт, коммутируясь катодами на массу. В «брутальных кнопках» катоды светодиодов объединены вместе и посажены на массу, а зажигаются они подачей +5 Вольт на выводы анодов. То есть всё сделано с точностью до наоборот, и полностью не совместимо по полярности.

Конвертер полярности проще всего выполнить на паре PNP транзисторов, либо p-канальных MOSFET-ах. Первый вариант лучше, потому как при соединении баз транзисторов прямо к светодиодам (эмиттеры на +IN платы) те светодиоды светиться не смогут, так что их не придётся выпаивать. Коллекторы транзисторов уходят на светодиоды «брутальной кнопки», дублёра RST. При выборе LED красного и зелёного цвета свечения яркость чуть избыточна, лучше в коллекторы поставить по резистору на 100 Ω.

Аккумулятор подключается к выводам «B-» и «B+» модуля, в авторском варианте второй провод присоединён через переключатель тумблерного типа. Это позволит полностью отключить аккумулятор от всех цепей при длительном хранении девайса.

Разъём аккумулятора ноды (красный провод) припаян к «OUT+» модуля TP4056. Второй провод с разъёма (чёрный) соединён с GND. Это исключает из цепи питания совершенно ненужный транзистор, что иногда норовит сгореть, по поводу чего выше по тексту было ворчание. «OUT-» и «GND» ноды, естественно, соединены.

Выводы «IN+» и «IN-» модуля TP4056 выведены на разъём Type-C, врезанный в корпус устройства. Местный автор выдрал такой из той штуки, что сегодня суют в рот заместо сигарет, но, вероятно, на маркетплейсах можно сыскать что-то пригодное для монтажа на поверхность.

Таким образом, нода питается только через разъём аккумулятора. +5 Вольт к ней не подводится, а штатный разъём используется только для прошивки.

Итог колхозинга с пока прозрачной крышкой:

Heltec WiFi LoRa 32(V3) в гермобоксе с прозрачной крышкой.

Дабы оно влезло в кадр, антенна привинчена штатная.

Heltec WiFi LoRa 32(V3) в громадном корпусе.

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

12) Корректный контроль батарейки.

Перед началом работы имеет смысл откалибровать индикатор батарейки. По схеме напряжение с неё через канал MOSFET-а Q1 попадает на делитель из резисторов 390 и 100 kOm, и дальше уходит на GPI01 микроконтроллера.

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

Сама процедура описана тут. Не сказать, что она шибко прецизионная, да ещё и привязана к максимальному напряжению на аккумуляторе. Которое при эксплуатации девайса мы вряд ли будем видеть часто. Сделаем иначе.

Типовая разрядная кривая Li-ion аккумулятора формата 18650:

Разрядная кривая Li-ion аккумулятора.

Если на кривой SoC взять среднюю точку по оси ёмкости, и именно в ней откалиброваться, погрешность измерения напряжения на аккумуляторе будет минимальной на большей части разрядной кривой.

Так и поступим.
Методика предельно простая.

Вольтметром, умеющим измерять mV (дешёвый китайский тестер так точно не умеет), замеряем напряжение на аккумуляторе, и, корректируя ADC Multiplier в приложении, добиваемся совпадения с циферкой, выдаваемой микроконтроллером в лог. Изначальное значение ADC Multiplier единица, и это очень далеко от должного.

Лог можно увидеть в приложении по пути «Настройки» ⇒ «Расширенные» ⇒ «Панель отладки», параметр «voltage» для своей ноды там содержит три знака после запятой. То же самое, но в mV, можно наблюдать при связи с нодой по Wi-Fi в браузере, адрес такой (айпишник должен быть от своей ноды):

http://192.168.0.199/json/report

Нужный раздел JSON - файла выглядит так:

"power": {
    "battery_percent": 37,
    "battery_voltage_mv": 3801,
    "has_battery": "true",
    "has_usb": "false",
    "is_charging": "false"
},

По итогу ADC Multiplier для Heltec окажется близким к 4.95-4.98.

Следует понимать, что при питании цепей девайса от последовательного стабилизатора на 3.3 V, на входе стабилизатора должно быть по меньшей мере 3.4 V, и примерно такое напряжение девайс станет считать за 0% заряда. Хотя по SoC это 3 V.

Плюс к тому мы уже видим из лога, что напряжение аккумулятора 3.8 V считается уровнем заряда батареи в 37%, что на правду не особо похоже. Стало быть, на показания индикатора в процентах ориентироваться не стоит, эти проценты не правдивы.

Информативны исключительно Вольты.
И только после калибровки.

Два варианта прошивки ноды.

На этапе покупки у пользователя вроде бы есть простой и понятный выбор между микроконтроллерами ESP32S3 и nRF52840. Нода с первым из них изволит кушать ~120 mA, со вторым ~16 mA. Компенсируется это ценой.

Большинство «для поиграться» склоняется всё-таки к ESP32S3.
Там ещё и Wi-Fi есть, с ним игры веселее.

Как вдруг оказалось, официальные прошивки не очень-то проработаны. В частности, над энергопотреблением никто даже и не задумывался. Но таки нашёлся грамотный человек, собравший отличный форк: meshtastic m1nl.

Применительно к Heltec WiFi LoRa 32(V3) этот форк даже без перевода в экономичный режим (у приложения в разделе питания есть такой пункт) вместо ~120 mA потребляет ~50 mA. Уже хорошо.

А вот если пунктик энергосбережения включить, потребление падает до ~30 mA, что почти соизмеримо с nRF52840.

По ощущениям местного автора, энергосберегающий режим никак не вредит функционалу. Нод в списке не становится меньше, сообщения в общем канале не пропускаются, на приложение нода реагирует, и полноценно с ним общается. Даже возникает ощущение колдунства.

Взять себе эту чудесную прошивку можно здесь, репозиторий m1nl.
Сразу с поддержкой экраном ноды русского языка.

Есть ещё одно соображение в пользу такого выбора.

Любой человек, имевший дело с внедрением микропроцессоров в приёмную технику, не понаслышке знает о наводках с процессора на приёмный тракт.

Конкретно тут микропроцессор физически находится под чипом трансивера, причём трансивер даже экраном не закрыт, и никакой защиты от помех фактически нет.

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

Meshtastic: как это работает.

Всегда интересно, как выглядит та или иная модуляция.
Донгл RTL-SDR способен отобразить структуру сигнала LoRa:

Модуляция Meshtastic на RTL-SDR.

Сразу после включения новенькой ноды и её настройки на канал, под чем понимается установка правильной частоты и пресета, а так же принятого в сети ключа шифрования, в приложении начинают появляться другие ноды, шлющие в сеть NodeInfo либо Position. Или телеметрию всякую.

В первом случае рядом с нодой нарисуется зелёный замочек (мы получили публичный ключ этой ноды), во втором случае цвет замочка поначалу будет жёлтым (мы уже знаем о существовании такой ноды, но её публичного ключа пока не видели). С течением времени жёлтый замочек позеленеет, и тогда с нодой можно будет переписываться.

В ходе других действий (ретрансляция сигнала, трассировка, рассылание телеметрии) все ноды-участники также заносятся в базу с жёлтым замочком. Полная коллекция собирается примерно за сутки. По прошествии суток, как правило, все замочки уже зелёненькие.

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

Но раз информация за семь прыжков до нас как-то дошла, имеется шанс с любой далёкой нодой связаться. Да, через посредников, и без гарантии на успех. Шанс будет тем выше, чем меньше прыжков потребуется. Если корреспондент доступен через 3-4 посредников, связь обычно есть.

Пару уместных слов про безопасность передачи данных.

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

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

Другое дело, если красный замочек вдруг нарисовался у ноды куда более приватного сообщества, и точно известно, что никто никакими сменами прошивок не занимался. Ибо для подобного в сообществе обычно есть специально обученный человек. Тогда красный замочек всяко должен насторожить - скорее всего, эта самозванец.

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

Таким образом, помимо шифрования (общего для всего канала и отдельного между любыми двумя девайсами) имеется и какая-то базовая безопасность. Пусть и на уровне цветовой дифференциации штанов замочков.

Техника безопасности.

Тут есть два момента - как не спалить передатчик (просто не надо включать ноду без антенны, либо с заведомо неподходящей антенной от какого-нибудь вай-фая), и как не спалить приёмник. О втором подробнее.

Перед проведением всяческих экспериментов полезно знать хотя бы приблизительную формулу потерь в зависимости от расстояния и частоты. В общем виде она такая, без учёта влияния зоны Френеля:

L[dB] = 32.45 + 20*log(D[km]) + 20*log(F[MHz])

На частоте 868 MHz формулу можно упростить до:

L[dB] = 91.22 + 20*log(D[km])

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

Чтобы такого не допустить, в левую часть уравнения надо подставить 20-10+2*2.15, где 20 dBm - мощность передатчика, 10 dBm максимальная мощность, приведённая ко входу трансивера, 2*2.15 dBi это усиление двух дипольных антенн относительно изотропного излучателя.

Разрешая это уравнение относительно D, получим минимальное расстояние между нодами 14 см. Вернее, между их антеннами, если они располагаются параллельно. Ближе придвигать их друг к другу не стоит. Чревато.

Местный автор для проверки поставил пару нод в полуметре друг от друга, и на полной мощности 20 dBm увидел на индикаторе RSSI ровно 0 dBm. По формуле это должно произойти на расстоянии 45 см, совпадение с теорией хорошее. Так что ноды ближе 15 см (между антеннами) ставить нельзя.

Связь в реальности.

Естественно, в пределах городской застройки про все формулы сразу надо забыть. И просто понаблюдать, как оно будет на самом деле.

Местному автору немного не повезло. У него относительно низкий этаж, да и обзор из окна полностью перекрыт соседними домами. Почти что двор-колодец, жители Питера поймут.

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

Всё, что дальше километра, из такой закрытой позиции не доступно.
Но через ретрансляцию от ближайших нод - таки да.

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

Особо ценны возвышенные ноды. Без них и семь прыжков не помогут, а сигнал дальше городского района никуда не уйдёт. Но по району (размером с хорошую такую деревню) связь будет.

Маршрутизация в сети Meshtastic.

Когда «возвышенная нода» забирается достаточно высоко, куда-нибудь на 22 этаж, принимать её напрямую даже на малюсенькую штатную антеннку можно на двадцать км в округе. А то и дальше.

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

Маршрутизация в сети Meshtastic.

Жёлтый трейс - прямой приём возвышенной городской ноды в деревне местного автора, красный трейс - путь обратно. Он затейлив.

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

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

Про «15-минутные города».

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

Оказалось, что между двумя такими зданиями (их этажность низкая, окна выходят в противоположные стороны, на пути радиосигнала высотные здания и лес вперемешку) прямая связь таки есть, причём даже на штатные коротыши, прямо из помещений.

И, скорее всего, это заслуга диапазона. Потому как рациями связаться не особо получалось - 433 MHz плохо отражаются от зданий, слабо пробиваясь через их массив. Вдвое большая частота даже при мизерной мощности сыграла свою роль, рикошетит она знатно.

С другой стороны, между зданиями всего-то 500 метров по прямой, а мы уже выяснили, что на таких дистанциях мышастики умеют держать коннект даже с закрытых позиций.

Про безопасность чуть серьёзнее.

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

Действительно, если обстоятельно поизучать тему про Meshtastic, рано или поздо где-нибудь прочитаете, или придёте к такому выводу самостоятельно, что с секьюрностью у конкретно данной технологии всё не очень хорошо. А что именно не хорошо, давайте изложим по пунктам.

  1. Размещать себя на карте, пускай и с «размытием» координат, не самая лучшая идея. Даже если это было сделано по глупости и всего-то один раз, с отключением функции впоследствии, из лога уже никуда не деться. А лог где надо копится.

  2. Маршрутизация пакетов подразумевает полное отсутствие шифрования заголовка пакета, в котором обозначены отправитель и получатель. В частном случае передача широковещательная, в общий чат.

    Это означает, что лог трафика фиксирует факт общения нод между собой. По сути дела метаинформация, без раскрытия содержимого переписки. Но на самом деле и это не совсем так.

  3. Теперь вспомним, что широковещательные сообщения шифруются PSK ключом канала, который всем известен. По факту общение в канале идёт открытым текстом.

  4. Ещё есть DM (Direct Message), передача текста от ноды к ноде. Сразу заявляется о секурности этой процедуры, потому как применяется публичный ключ адресата. Который использует парный ему приватный ключ, и извлекает из шифровки исходное сообщение.

    По логике вещей, где-то в этой схеме должен быть ещё публичный ключ адресанта (отправителя сообщения), как и PSK ключ канала. Может быть, ещё какие-то сущности, однозначно известные обоим участникам обмена. Казалось бы, сложность процедуры достаточно велика, чтобы радоваться своей безнаказанности.

    Однако вместе с тем публичные ключи нод открыто передаются в сеть в рамках NodeInfo, и не являются секретом. Что это означает?

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

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

    Отсюда логичный вывод. Хоть переписка напрямую не вскрывается, но может быть дешифрована вполне стандартными методами через подбор предполагаемых букв (фактически как майнинг в биткоине). Гораздо безопаснее общаться длинными фразами, нежели короткими. Причём фразами вычурными, в магистра Йоды стиле.

    Ну или преднамеренно делать кучу орфографических ошибок.

  5. Если предположение о задействованности в алгоритме шифрования PSK ключа канала верно, то вместо DM в основном канале сильно лучше слать ровно то же DM, но во вторичном канале.

    Разница только в PSK ключе, который для первичного канала известен всем, а для вторичного канала только своим. Тут уже радужную таблицу не составить, пока каким-либо образом не вызнать ключ вторичного канала.

  6. Ну и опять-таки, даже в таком случае в логе радиообмена сохраняется информация, кто кому писал. Потому, применяя вторичный канал с мало кому известным PSK ключом, Штирлиц не будет напрямую адресовать сообщение Юстасу. Он отправит широковещательное сообщение (то есть в весь вторичный канал), чтобы адресат в логах не фигурировал.

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

Подытоживая.

Если в соображениях местного автора нет грубых фактологических ошибок, то в логе товарища майора зафиксированы все случаи радиообмена между всеми нодами, сами шифрованные сообщения, и примерное расположение каждой ноды на местности, даже если она никогда не передавала своих координат. Это совсем просто, когда сообщения шли через посредников.

Более того, для коротких сообщений возможно восстановление исходного текста. Процедура тем сложнее, чем длиннее текст. По аналогии с длиной пароля, взламываемого методом перебора. Математики даже формулу какую-нибудь степенную приведут на этот счёт.

Безопаснее всего не писать DM в основном канале, а создать вторичный, с максимально возможной сложностью PSK ключа (не AQ==, как принято). И писать широковещательные сообщения там, в общий для этого канала чат.

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

Из всего выше сказанного мы имеем право сделать вывод, что by design концепция Meshtastic ориентирована на тех, кому нечего скрывать. Если кто и попытается, то фактически у него мало что получится.

Что в Meshtastic сделано не очень хорошо.

Поигравшись в технологию, начинаешь понимать некоторые её недостатки. Другие недостатки остаются непонятыми, но они будут смущать умы иных людей, копнувших глубже. Из того, что уже очевидно для местного автора применительно к большой сети:

  1. Универсальность ноды с кучей ролей на борту подразумевает много кода и мало оставшихся ресурсов. К примеру, очевиден недостаток памяти для хранения сообщений. Расширение буфера сообщений даже ценой отказа от ненужного функционала пошло бы только на пользу.

  2. Телеметрия помогает почувствовать жизнь сети, но мешает собственно транспортному протоколу. Телеметрический спам занимает чуть ли не 80% эфира, хотя с практической точки зрения бесполезен совершенно.

    Имеет смысл поставить режим ретрансляции как CORE_PORTNUMS_ONLY вместо ALL, чтобы пакеты из нестандартных портов (TAK, Range Test, PaxCounter) не бегали по эфиру. Это не мешает хождению пакетов NodeInfo, Text, Position, Telemetry, Routing.

  3. Пользовательская нода имеет избыточную функциональность, много непонятных юзеру путаных настроек и ролей. Хотя большинство юзеров ведёт себя адекватно, не тыкая пальцем в подозрительные кнопки, всегда найдётся адепт секты «слабоумие и отвага».

    Благодаря такой пытливости ума нередко отваливаются целые сегменты сети, перегруженные непрерывной трансляцией всяческой фигни из предыдущего пункта. И поделать с этим ничего нельзя.

  4. О серьёзном.

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

    Во искупление такого первородного греха нам дан специальный режим сервера «Store & forward» для запоминания сообщений, адресованных определённой ноде, и выдачи их ей по требованию. Емкость буфера - не менее 10 тыс. сообщений.

    При правильном понимании буковок из пунктов (b) и (c), нас не должен удивить отказ такого взаимодействия в первичном канале (сеть ляжет). Стало быть, это возможно только во вторичном канале, а это уже явно не общедоступная технология. То есть такую ноду придётся заводить и поддерживать самому.

    Для этого нода должна быть оборудована дополнительной микросхемой памяти PSRAM на 8 МБ, причём бесшовно она интегрируется пока что только с некоторыми микроконтроллерами серии ESP32. Это девайсы наподобие T3S3 и T-Beam последних версий. Возможно, какие-то ещё. Но точно не все подряд.

      На T-Beam отзывы стабильно плохие. Срок жизни девайса около года. Слишком узкие дорожки печатной платы (0.1 мм, это ж надо было додуматься), да ещё и из тонкой фольги. Термоциклирования достаточно, чтобы дорожки порвать.

  5. Километровый список нод в приложении (у местного автора их там за две сотни) либо засилье точек на карте дезориентируют пользователя. Мало кто осознаёт, что это список «маяков», а не нод, действительно доступных для коннекта.

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

Что понравилось в Meshtastic.

У любой технологии есть «порог входа».

Под этим термином обычно подразумевается сумма денег, необходимая для покупки самого простого и дешёвого варианта аппаратуры, с помощью которой «текнолоджия» становится доступна. В более широком смысле это ещё и компетенции, отчасти экономящие деньги, если человек из интереса что-то решил собрать сам.

В случае мышастика, скажем прямо, компетенции на порог входа не влияют никак. Ни микроконтроллер, ни LoRa трансивер собрать из деталек со свалки не получится. И то, и другое придётся купить. Либо поотдельности, либо в составе готовой платы. Разница будет невелика.

Поэтому народ берёт готовые платы. И они совершенно доступны, а работа с ними упрощена до предела. Их можно обвешивать периферией под свои хотелки, причём firmware всю эту разнообразную периферию понимает, достаточно в приложении обозначить пин, на который хотелка припаяна. Куда проще-то?

Теперь любой человек способен обзавестись двусторонним УКВ пейджером, либо несколькими. Если только придумает, зачем они ему в принципе могут понадобиться. Когда что-то непонятно, сложившееся комьюнити способно вразумить. Впрочем, никаких особых проблем и не возникает.

Далее всё зависит от фантазии. Как именно пейджер можно применить в жизни. Шанс того, что на базе не шибко хитрой технологии можно сделать что-то ещё, гораздо более интересное, весьма высок. Кстати, это также шанс мощного старта в радиолюбительство для молодых пытливых умов.

Meshtastic в больших городах.

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

Это мало чем отличается от радиолюбительства с обменом позывными и RST. Если спросить человека с позывным, в чём практический смысл его хобби, прямого ответа не получите. Только отговорки про «случись чего, у меня будет связь и богатый опыт по её развёртыванию в разных условиях». Видимо, так же и тут.

Действительно, «случись чего», выстроенная и оптимизированная сеть, пока совершенно бесполезная, это куда лучше, чем ничего. Особо ценны робкие эксперименты с необслуживаемыми нодами, заселёнными в леса на холмы, и питанием от солнечных батарей. Как оказалось, технология не очень-то совместима со снегом и низкими температурами.

Перспективы технологии.

Тем не менее местный автор не верит в светлое будущее городских сетей Meshtastic, потому как то будущее самурайское (путь виден, но цели нет). Своего рода хобби для скучающих айтишников, хотя и с гипотетической пользой, потенциально возникающей при глобальном ахтунге.

С ахтунгом-то всё нормально, мы в него истово веруем, как никогда.
Но надежд на масштабную Mesh сеть при ахтунге нету совсем.

Скорее всего, это всё-таки сугубо локальная история, когда ячеистая сеть разворачивается на небольшой территории. В интересах ограниченного и выверенного круга лиц, под конкретную задачу. Пока ключевого события не произошло, протестированная и отстроенная аппаратура стоит на полке, и изредка проверяется в ходе «учений» на работоспособность. А вот когда уже пора, включается всерьёз.

Но это будет совсем не та игрушечная по оформлению аппаратура, что имеет хождение в народе сейчас. Либо не те протоколы, а что-нибудь в жанре MeshCore либо ATAK. Железо то же самое, прошивка и приложение другие. Ну и идеология там кардинально иная, её стоит поизучать сильно загодя.

Возможно, всё свернёт в другую сторону, по пути предельного удешевления оборудования. Раз этак в десять - тому есть пример (на китайском).

Этот "китайский путь" не подразумевает создание крупных городских сетей или чего-то столь же масштабного. Речь скорее про «локальную историю», цена вхождения в которую из-за ардуиноподобных комплектующих совсем копеечная, а программинг доступен любому китайскому школьнику. Это мощный фактор.

А не покарают ли за это всё?

С формальной точки зрения, мы имеем дело с незарегистрированным РЭС, первичный грех которого - оно не сертифицировано. Какова у этого РЭС мощность, какой диапазон, то никого не волнует. Нет нотификации и сертификации минсвязи, и оно вне закона только по этой причине. То есть подлежит конфискации и сопровождается штрафом (статья 13.4 КоАП РФ).

Максимально понятными красными буквами:

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

То есть, как и с пресловутыми «баофенгами», демонстративно ходить с Meshtastic-устройствами не надо.

Ну и уже бывали случаи, хотя бы на примере админа группы Meshtastic Кавказских Минеральных Вод, когда по звонку чрезмерно бдительных граждан человека с непонятной коробкой в руках принимали под белы рученьки, отбирали подозрительную коробку, и бездарно тратили его нервы и время. И это ещё принимающая сторона не прознала, что в мышастике есть шифрование...

Раз уж технология по факту находится в серой зоне, не стоит свои ноды размещать на карте, и вообще включать в них геопозицию и телеметрию. А на фасадах зданий крепить специфические демаскирующие антенны. Судя по количеству нод без геолокации, примерно десятая часть пользователей уже обрела просветление. Остальные в процессе.

А не запретят ли это всё?

Могут. Хотя вряд ли.

Как мы уже понимаем, Meshtastic совершенно точно не является серьёзной технологией, претендующей на альтернативу хоть чему-то. Потенциал коммерциализации отсутствует напрочь, а потому это удел радиолюбителей и энтузиастов.

А всякий энтузиазм когда-нибудь, да кончается. Со временем популярность технологии закономерно упадёт, и её ждёт участь СиБи-шек. Потому как при уменьшении числа нод до какого-то критического порога связанность сети пропадёт, и смысла в ней уже не будет.

Прекрасно всё это осознавая, власти вряд ли усмотрят угрозу в детских экспериментах не совсем повзрослевших дядек. Тратить средства на борьбу с гипотетической угрозой не станут, но от контроля процесса тоже никто не откажется. Где-нибудь в центре города на высотном здании уже стоит нода товарища майора. Это вот обязательно.

Если же энтузиасты со временем мигрируют на более серьёзные решения, типа MeshCore, то там начнётся уже совсем другая история.

Но не будем предвосхищать события.
У нас всё это ещё впереди.

Полезные ссылки.

Пусть будет некоторая коллекция уместных ресурсов:

1) Оффсайты.

  1. https://meshtastic.org/
  2. https://meshtastic-alt.ru/

2) WEB-прошивальщики.

  1. https://flasher.meshtastic.org/
  2. https://flasher.meshtastic-alt.ru/
  3. https://flasher.meshworks.ru/
  4. https://mrekin.duckdns.org/flasher/ (m1nl экономичная)
  5. https://de2-vardas.duckdns.org/

3) WEB-клиенты.

  1. https://client.meshtastic.org/
  2. https://client-test.meshtastic.org/
  3. https://client.meshworks.ru/
  4. https://client.tdesu.xyz/

4) Локальные WEB-клиенты под Винду.

  1. MeshRadar
  2. MeshMonitor
  3. Meshtastic.Network.Management.Client

5) Утилиты под Винду.

  1. MeshSense

Другие статьи категории «Радиосвязь»

AFP-FSK модем c приёмным трактом Уивера

AFP-FSK модем c приёмным трактом Уивера Очередной лонгрид от Мастера Ласто на тему сочинения из ничего и палок брутальной железяки для тактической радиосвязи в виде безобидного цифрового модема под AFP-FSK режимы. На этот раз всё не так примитивно, как раньше. Будем трогать руками метод Уивера, то есть получать SSB перегибанием НЧ спектра сигнала пополам два раза подряд, что даже звучит интересно.

Возможен ли разговор двух Ардуин на КВ?

Возможен ли разговор двух Ардуин на КВ? Сегодня мы будем решать задачу (ну или хотя бы попытаемся это сделать) приёма информации, переданной по эфиру, силами простейшей Ардуины. Автономно, без компьютера. Также оговоримся, что радиоканал расположен в пределах КВ диапазона, что подразумевает радиус действия порядка 1000 км при мощности в пару Ватт даже в случае самодельной железяки.

Заменяем Баофенг Кваншенгом. Уже можно.

Заменяем Баофенг Кваншенгом. Уже можно. Удивительное дело, но с момента массового прихода доступной радиосвязи в широкие народные массы как-то незаметно прошло десять лет. Местный автор в меру своих сил и способностей поучаствовал в этой вакханалии, породив две нетленки про Обзор BaoFeng UV-5R и его дальность связи с разными антеннами.
03 декабря 2025, 01:41

№ 1О meshtastic

Я услышал о meshtastic 3+ года назад, т.е. практически сразу после развертывания у них. И тогда речи о пейджере для Fallout не шла. Упор делался на сбор телеметрии датчиков контроля окр. среды: температура, давление, ветер, качество воздуха и т.д. Т.е. что-то в духе сети метеостанций для зеленой зелени, охраны всего и т.п. Т.е. для живого чата система не очень подходит. Часть фишек, вроде save & forward или удаленное администрирование ноды, были, похоже, заточены именно под сбор данных. Собственно интеграция MQTT тоже нужен именно для сбора данных. У датчиков есть абсолютное преимущество: их выход в эфир абсолютно предсказуем и при элементарной настройке системы они эфир не заспамят. В отличии от людей.
Я почти сразу купил набор lilygo модулей первых выпусков, они у меня и сейчас работают. Тогда я вышел в эфир, но ни с кем связаться не смог, несмотря на то, что живу в Подмосковье, фактически в большой Москве. Рядом нод не оказалось. Отложил всё в долгий ящик. Потом, где-то года полтора назад, а может больше, кто-то из сильно популярных блогеров про этот проект рассказал и туда рванули диванные выживальщики. Наконец, где-то в начале этого лета, народ начал понимать, что белый пушной зверек уже прямо улыбается из-за угла. И пошла следующая волна. При этом народ не разбирался что лучше, а пошел туда, где уже.
Подсчет я не делал, но навскидку в моем секторе Подмосковья число нод выросло вдвое.
Интересное наблюдение. С U-антенной в лоджии 100+ нод накапливается за 1 час. 300+ — за сутки. При этом в списке 100 нод, а на карте видно штук 20...
Замечу, что бОльшая часть нод, работает не от батарей, а от сети, если судить по скатерти, что выдает клиент. Что и понятно, организация автономного питания требует некоторых усилий, а этому народ не привык.
Это значит, что в случае чего бОльшая часть нод отвалится и армагедец-чатика не получится.
Есть также важные соображения насчет антенн, не разобранные в известных статьях на Хабре. Если кратко: всенаправленные антенны на подоконнике — это плохо, вы половину, как минимум, мощности тратите на обогрев квартиры. Узконаправленные тоже не очень хорошо — неясно куда их направлять. А если ясно, то обеспечить стабильность наведения непросто. А однонаправленные, с минимальным задним лепестком и достаточно широким передним очень хорошо. Поэтому советую присмотреться к антеннам типа maxon. Стоят копейки, продаются как у китайцев, так и на Озоне, если выдержаны размеры не требуют настройки. При надобности сделать самостоятельно тоже не проблема. Калькуляторов для расчета в сети полно.
Пользуясь случаем, скажу большое спасибо за Ваш труд, Ваши публикации. Подчерпнул немало полезного.
С уважением,
ivanstor
10 декабря 2025, 22:56

№ 2Знакомая тема

Когда-то на Кикстартере встречались годные проекты. В одном из них на картинках симпотные девки с рюкзаками шли в поход. На лямках рюкзаков у них висели с виду детские пеналы. Но с антеннами. А под картинками были буквы про LORA и GPS. И еще прога в смартфонах чтобы буквы друг другу писать.

Это же оно?

Цена там была не приведи Аллах.
Сейчас вроде не так страшно.
Слава китайцам!
Трололо
Все заметки категории «Радиосвязь»