Как стать автором
Обновить

Meshtastic — оперативно-тактический радиочат без сотовой связи и интернета. Часть 4. Прошивка модема, выход в сеть

Время на прочтение12 мин
Количество просмотров31K

Оглавление:

Часть 1. Знакомство с темой

Часть 2. Радиомодемы фирменные

Часть 3. Радиомодемы самодельные

Часть 4. Сборка и прошивка радиомодема.

Предисловие

Итак, радиосеть строится на основе открытого ПО проекта Mesh-сети Meshtastic, описание которой вы можете найти на сайте.

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

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

Первым быть всегда трудно… но, интересно!

Главной особенностью радиосети Meshtastic является минимальная стоимость оборудования. Вы уже, наверное, успели ознакомиться с существующими решениями и могли выяснить, что единичный персональный радиомодем стоит не более 3000р, самодельный радиомодем обходится в стоимость меньше 1000р в минимальном исполнении.

Но это ещё не всё!

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

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

Если вы первый строитель сети в вашем городе, то есть смысл первым поставить у себя стационарный ретранслятор. Т.е. к своему Meshtastic-радиомодему приладить базовую антенну. Или, если у вас достаточная квалификация, то вы можете собрать собственный необслуживаемый ретрансляционный узел у себя на балконе или на крыше. По сути – это такой же Meshtastic-модем, только без экрана и GPS-модуля со своими настройками. По расчётам автора стоимость самодельного ретранслятора укладывается в сумму до 600…700р. Этот вопрос сейчас прорабатывается в русскоязычном сообществе.

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


Для запуска радиосети необходимо всего 2 простых действия: установить apk-приложения на ваш андроид смартфон и прошить вашу заготовку радиомодема под Meshtastic-сеть. Дальше, вам нужно будет подружить радиомодем с телефоном по Bluetooth и сделать сетевые настройки.

Ещё недавно, приложение Meshtastic было в магазине google-play и его легко можно было установить самостоятельно, но по какой-то причине оно сейчас пропало из магазина. Потому, приложение придётся скачать с GitHub автора самостоятельно. Будем надеяться, что автор проекта этот вопрос в ближайшем будущем с Гуглом уладит. Для верности, автор статьи положил ближайший свежий релиз к себе на Яндекс-диск, откуда вы сможете скачать все необходимые вам материалы.   

Автор предполагает, что подробно описывать, как пользоваться ANDROID смартфоном, как делать тонкие настройки и тем более, как  ставить приложение со стороннего источника на телефон вам разъяснять не надо, а если всё же у вас появятся на эту тему вопросы, то вы найдёте помощника в виде Гугла или в вашем ближайшем окружении.

  • Шаг 1. Установка Meshtastic-приложения на ваш смартфон.

Крайний свежий релиз APK-приложения расположен всегда ТУТ.

В списке присутствуют Alpha-версии приложения, в которых реализованы все нововведения и развитие и стабильные Beta-версии.

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

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

Ставить Alpha или Beta релиз – это ваш собственный осознанный выбор.

После установки, на рабочем экране смартфона появляется зелёная иконка Meshtastic с фирменным логотипом.

Рабочий экран смартфона

Перед открытием приложения Meshtastic необходимо включить в верхней шторке Bluetooth и Геопозиционирование.

Bluetooth и Геопозиционирование

На этом пока откладываем телефон в сторону. Теперь нужно залить в заготовку радиомодема прошивку, что бы оно стало Meshtastic-радиомодемом.

  • Шаг 2. Скачиваем утилиту-для прошивки модема, прошивки и драйвер.

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

Утилит есть несколько разных производителей. Автор предлагает самую простую в использовании: ESPHome-Flasher.

Свежий релиз утилиты под разные операционные системы вы можете скачать с GitHub ОТСЮДА

Утилита представляет собой самодостаточный файл и под Windows установки не требует.

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

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

А пока снова идём на GitHub и скачиваем архив со всеми прошивками ОТСЮДА

В списке прошивок так же присутствуют Alpha и Beta версии. Выбор, как писалось выше – за вами.

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

Так же, в папке архива находятся сценарные файлы для прошивки радиомодема с командной строки.

Список прошивок

При подключении радиомодема к компьютеру посредством USB интерфейса, в диспетчере устройств должен обнаружиться новый USB to UART мост. В большинстве случаев, выполнен он на микросхеме CP2104. Но если вдруг, вы собираете самодельный радиомодем, и используете какую-нибудь нестандартную плату DevKit., то UART-мостом может оказаться микросхема CH340.

Обнаружено новое устройство

За драйвером для микросхемы CP2104 идём на сайт компании Silicon Labs и качаем его ОТСЮДА

В зависимости от вашей версии ОС Windows драйвер крайней версии вам может не подойти, тогда качаем драйвер с именем: CP210x Windows Drivers with Serial Enumerator

Есть не нулевая вероятность, что ваш Windows при обнаружении нового устройства сам скачает нужный драйвер. Тогда в диспетчере устройств появится новый СОМ-порт.

Устройство установлено, у вас новый СОМ-порт

Ну, а дальше, всё совсем просто…

  • Шаг 3. Прошивка радиомодема.    

Открываем утилиту ESPHome-Flasher и в ней нужно:

  1. Выбрать новый СОМ-порт

  2. Нажать кнопку обзор «Browse»; найти папку, в которую вы распаковали файлы с прошивками и выбрать файл под ваш радиомодем. В моём случае это файл под модем Tlora32

  3. Нажать кнопку «FlashESP»

Окно флешера

Дальше, возможно несколько вариантов развития событий.

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

Процесс прошивки

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

Успешная прошивка, но неудачный рестарт

Далее, можно устройство отсоединить от компьютера и переключить или на батарейное питание, если у вас радиомодем Tbeam или Tlora или от внешнего источника питания, если у вас устройство самодельное из третьей части цикла. Автор без зазрения совести использует мощное зарядное устройство от смартфона на 5В/2А.

Если всё прошло успешно, то ваш Meshtastic-device оживёт и на экране радиомодема вы увидите приветственную надпись и выход на рабочий экран.

Рабочий экран Meshtastic-модема

Вариант 2 – нездоровый. Программа не сможет определить устройство и откажется прошивать. Такое может произойти на самодельном радиомодеме с китайской платой DevKit. В интернете есть много отзывов о некачественной или неправильной сборке этих плат. И скрипт, управляющий автоматической загрузкой прошивки не может инициализировать микропроцессор в boot-mode. Лечится обычно или нажатием кнопки BOOT на плате DevKit во время/перед  запуском прошивки или перепайкой одного из конденсаторов на выводе EN. Более подробно что и как паять, думаю вы без труда сами найдёте в интернете, проблема не единичная и хорошо описана.

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

  • Шаг 4. Настройка радиомодема и выход в сеть.

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

Для начала необходимо радиомодем подружить со смартфоном.

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

Код сопряжения Bluetooth со смартфоном

После благополучного сопряжения радиомодема со смартфоном, открываем приложение Meshtastic и переходим ко вкладке с настройками – это последняя вкладка с картинкой шестерёнки.

Меню настроек радиомодема на смартфоне

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

Здесь же можно видеть, какая прошивка стоит на вашем радиомодеме.

Галку о сборе анонимной статистики нужно ставить, без неё не будет работать карта. Это в программе какие-то партнёрские договорённости.

Справа находится выпадающее меню настройки региона вашего проживания. Для диапазона 868МГц в России, нужно выбрать регион RU. Если сеть планируется на 433МГц, то нужно выбрать регион EU433. Для каждой страны в регионе свои настройки разрешенных рабочих частот, каналов и выходной мощности радиомодема. Для любителей «разогнать мощности» информирую, что в регионе RU она стоит максимальная. В других регионах работать не стоит, дабы не вызвать на себя гнев радионадзорных органов. 

 

После этого шага, желательно перезагрузить модем.

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

  • Шаг 5. Настройка сценария работы вашей сети.

Сценарий настройки 1. Стартовый

В том случае, если вы пока первый и единственный абонент в сети, так сказать главный энтузиаст и первопроходимец (​), то и карты вам в руки.

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

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

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

Настройки канала связи

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

  • Short range (but fast) – короткая дальность, но быстрая передача данных.

  • Medium range (but fast) – средняя дальность, но быстрая передача данных.

  • Long range (but slower) – большая дальность, но медленнее.

  • Very Long Range (but slow) – очень большая дальность связи, но совсем медленная передача данных.

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

Если вы во время экспериментов решите поменять настройки, то вернуться всегда на старые настройки можно простым нажатием кнопки «RESET».

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

Итак, если вы первый абонент сети и определили её параметры, то другие абоненты смогут к вам присоединиться только по вашему приглашению. Для этого на экране отображается QR-код. Сделав предварительно скриншот, вам надо отправить его вашему другу, у которого второй Meshtastic-device, или сгенерировать URL-ссылку приглашение, посредством клавиши снизу справа экрана со значком «поделиться». Отправленную ссылку удалённом абоненту, нужно открывать не с помощью веб-приложения, а с помощью программы Meshtastiс. Программа сама распознает настройки и предложит их применить.

Получение новых настроек канала

Сценарий настройки 2. Абонентский

Этот сценарий настройки возникает в том случае, если в вашей местности уже существует настроенная сеть и вам надо к ней получить доступ. Для этого, кто-либо из существующих абонентов сети вам должен прислать QR-код или URL­-ссылку настроек. Естественно, регион и диапазон частот, в котором работает сеть на вашем абонентском устройстве должны совпадать с общей сетью. В общем случае по России это должен быть регион «RU» для диапазона 868МГц или «EU433» для диапазона 433МГц.

После применения сценария, обязательно нужно перезагрузить радиомодем!

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

  • Шаг 6. Дополнительные настройки радиомодема.

По началу, неочевидные настройки, вызывающие часто вопросы у новичков.

Находятся они во вкладке контекстного меню, вызываемого нажатием значка с тремя точками в правом верхнем углу экрана. Меню «Advancer settings».

Меню «Advancer settings»

В двух полях этого меню задаётся период, через который радиомодем будет рассылать информацию о своей текущей геопозиции– «Broadcast position period», задаваемый в секундах и время (минимальное значение 375 секунд или 0 - отключено), через которое модем будет просыпаться, что бы обновить актуальную информацию из сети – «Device sleep period», так же задаётся в секундах . Всё остальное время радиомодем будет находится в состоянии глубокого сна, чем и обеспечивается беспрецедентно долгое время работы радиомодема. По умолчанию геопозиция рассылается раз в 900 секунд (15 минут), из сна радиомодем выходит раз в 300 секунд (5 минут). При установке этих значений в 0, ваша геопозиция передаваться не будет, а радиомодем будет в состоянии постоянной работы.

Подробнее о том, что такое режим сна

В зависимости от того, какая электронная начинка вашего радиомодема, в сон будет переводиться вся окружающая периферия: Bluetooth, GPS, дисплей, сам ESP32 микроконтроллер. Следует отметить, что связь радиомодема со смартфоном в этот момент теряется. В то же время, модуль радиосвязи находится постоянно в работе. При получении и декодировании сообщения, по сигналу прерывания от радиомодуля микроконтроллер просыпается. Если получено «прыгающее» сообщение, то оно ретранслируется дальше. Если адресное – то сохраняется до выхода из сна всех систем по таймеру.

Частый вопрос новичка, «Почему при включении радиомодема, я себя или других абонентов не вижу сразу на карте?» Ответ кроется в меню расширенных настроек, карта обновляется так же по таймеру. Т.е. по умолчанию, если на телефоне ваша геопозиция определилась (через GPS смартфона), вы появитесь на карте через 15 минут. Если к этому времени синхронизация информации по всей сети не закончилась, то информацию о всех абонентах присутствующих в сети вы получите ещё минут через 15 или 30.

Ограничения, неудобства? Это издержки долгоживущей, но медленной радиосети.

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

Тёмная тема оформления

Заключение

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

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

P.S:

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

Часть 3 ← Добро пожаловать в Ex Часть 5 → Часть 1. Простые антенны. Теория.

Теги:
Хабы:
Всего голосов 15: ↑15 и ↓0+15
Комментарии28

Публикации

Истории

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Innopolis 2025
Иннополис