From 6180afe22f7e877ce6b2656bc57ace39b5b3888f Mon Sep 17 00:00:00 2001 From: assada Date: Sat, 22 Jul 2023 23:48:53 +0300 Subject: [PATCH] Meshtastic --- ham/meshtastic.md | 174 ++++++++++++++++++++++++++++++++++++ hw/tbeam-firmware-ut3ums.md | 91 +++++++++++++++++++ sitemap.xml | 92 +++++++++++++++++++ 3 files changed, 357 insertions(+) create mode 100644 ham/meshtastic.md create mode 100644 hw/tbeam-firmware-ut3ums.md create mode 100644 sitemap.xml diff --git a/ham/meshtastic.md b/ham/meshtastic.md new file mode 100644 index 0000000..8317fb1 --- /dev/null +++ b/ham/meshtastic.md @@ -0,0 +1,174 @@ +--- +Author: Assada +Title: Meshtastic в Україні +Description: Meshtastic — LoRaWAN Mesh Network в Україні +Preview: https://assada.dead.guru/storage/images/1690058736_image.png +--- + +![Meshtastic модем](https://assada.dead.guru/storage/images/1690058736_image.png){.md-cover .md-img-r} + +**Meshtastic** — це проект, який дозволяє використовувати недорогі радіоприймачі на базі LoRa як дальньобійну комунікаційну платформу в зонах без наявної або ненадійної комунікаційної інфраструктури. + +[TOC] + +# Історія появи технології LoRa. + +На початку 2015 року [Semtech Corporation](https://www.semtech.com/) та дослідницький центр [IBM Research](https://research.ibm.com/) представили новий відкритий енергоефективний мережевий протокол LoRaWAN (Long Range Wide Area Networks), що забезпечує значні переваги перед Wi-Fi та стільниковими мережами завдяки можливості розгортання міжмашинних (M2M) комунікацій, чи сколихнули ринок IoT. + +![IBM Research і Semtech Corporation](https://assada.dead.guru/storage/images/1690048845_image.png){.md-cover .md-img-r} + +Технологія **LoRa** з'явилася на світ під егідою некомерційної організації [LoRa Alliance](https://lora-alliance.org/), заснованої такими компаніями, як IBM, Semtech, Cisco та ін., з метою прийняття та просування протоколу LoRaWAN як єдиний стандарт для глобальних мереж з низьким енергоспоживанням (LPWAN — від англ. Low Power Wide Area ). + +Розробники **LoRa Alliance** позиціонують **LoRa** як технологію, що має значні переваги перед стільниковими мережами та WiFi завдяки можливості розгортання міжмашинних (M2M) комунікацій на відстанях до 20 км. та швидкостях до 50 Кбіт/с., при мінімальному споживанні електроенергії, що забезпечує кілька років автономної роботи на одному акумуляторі типу АА. + +Діапазон застосування даної технології величезний: від домашньої автоматизації та інтернету речей до промисловості та розумних міст. + +![Архітектруа LoRaWAN](https://assada.dead.guru/storage/images/1690049019_image.png){.md-cover .md-img-r} + +# Що таке Meshtastic? + +**Meshtastic** — це "LoRa based" проект, який дозволяє використовувати недорогі GPS-радіостанції (30 баксів плюс-мінус) як розширюваний меш GPS-комунікатор із надтривалим терміном служби батареї. Ці радіоприймачі чудово підходять для піших прогулянок, катання на лижах, велоспорту – практично для будь-якого хобі, де у вас немає надійного доступу до Інтернету. Кожен учасник вашої приватної мережі завжди може бачити місцезнаходження та відстань усіх інших учасників, а також будь-які текстові повідомлення, надіслані у ваш груповий чат або писати вам особисто через приватні повідомлення. + +Радіостанції автоматично створюють і підтримують мережу LoRaWAN для пересилання пакетів у разі потреби(до 7 хопів), тому кожен у групі може отримувати повідомлення навіть від найдальшого учасника. Радіостанції за бажанням працюватимуть із вашим телефоном, але телефон не обовя`зковий. + +![Мапа мережі в Укріїні](https://assada.dead.guru/storage/images/1690049900_image.png){.md-cover .md-img-r} + +**Основна функція проекту:** передача тексту та ваших координат через смартфон без використання стільникового зв'язку та інтернету. + +Тобто. на ваш смартфон Android або iOS, встановлюється програма Meshtastic. Це програма-чат на зразок Telegram або Viber. Телефон з'єднується з радіомодемом через Btuetooth. Через радіомодем здійснюється зв'язок з іншими абонентами, у яких стоїть така сама програма і такий же модем. На екрані смартфона ви можете бачити список абонентів та карту їх розташування. Ви бачите груповий чат та p2p чати з учасниками мережі. + +![Додаток Meshtastic для IOS](https://assada.dead.guru/storage/images/1690054367_meshtastic_app.png){.md-cover .md-img-r} + +**Варіанти сценаріїв застосування:** + +* Екстрений цифровий зв'язок при надзвичайних ситуаціях (наприклад відключення світла) +* Пошук втрачених людей +* Створення своєї радіомережі серед однодумців усередині свого району і навіть далі, що самоорганізується, у своєму власному проекті +* Передача легкої телеметрії, наприклад, з власної метеостанції, показання дозиметру чи іншого датчика +* Спорт на відкритому повітрі з обмеженим покриттям мобільного зв'язку. (Піші прогулянки горами, катання на лижах, катання на човнах, парапланеризм або квадрокоптери, і т. д.) +* Ситуації, в яких GPS-комунікатори із закритим вихідним кодом просто не допоможуть (легко додати функції для пілотів квадрокоптерів або планерів і т.д.) +* Безпечний зв'язок на великій відстані всередині груп, незалежно від стільникових операторів + +**Необхідне апаратне забезпечення для роботи з Meshtastic:** + +* Android/iOS cмартфон або комп'ютер для налаштувань і спілкування в чаті +* Meshtastic – радіомодем на основі LoRa-модулів зв'язку ==про це далі== +* антена. Краща антена – кращий зв`язок +* Li-Ion акумулятор або PowerBank для живлення модулю + +Радіомережа будується на основі готових LoRa-радіомодулів. Головна особливість їх полягає у великій дальності зв'язку за дуже мізерної потужності. В Україні виділено під LoRa ділянки частот 433МГц. Саме під цю частоту вам необхідно знайти або зібрати модем і антену. + +# Пристрої Meshtastic + +Загальний список пристроїв, які підтримуються Meshtastic можна переглянути на офіційному сайті проекту: [https://meshtastic.org/docs/supported-hardware](https://meshtastic.org/docs/supported-hardware) + +Є кілька варіантів радіомодемів, які [рекомендубться для використання в Українській мережі](https://wikimesh.pp.ua/uk/%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D1%96_%D0%BF%D1%80%D0%B8%D1%81%D1%82%D1%80%D0%BE%D1%97): + +* **LILYGO® TTGO LoRa32 V2.1_1.6 T-Lora** — найдешевший, без GPS і не великою потужністю передачі. https://a.aliexpress.com/_Ev5JaUT + +![LILYGO® TTGO LoRa32 V2.1_1.6 T-Lora](https://assada.dead.guru/storage/images/1690055311_image.png){.md-cover .md-img-r} + +* **LILYGO® T-Beam** - самий популярний пристрій. Вже з GPS і більшою потужністю передачі. https://www.aliexpress.com/item/4001286458852.html + +![LILYGO® T-Beam](https://assada.dead.guru/storage/images/1690055673_image.png){.md-cover .md-img-r} +@mat_bot ужність, енергоефективний дисплей, вбудований датчик температури і вологості. https://www.aliexpress.com/item/1005003026107533.html + +![LILYGO® TTGO Meshtastic T-Echo](https://assada.dead.guru/storage/images/1690055583_image.png){.md-cover .md-img-r} + +## Прошивка пристроїв + +Для себе я обрав саме **LILYGO® T-Beam** як найбільш збалансований по ціні і кількості функцій. +Отримавши модуль перше що треба зробити - оновити прошивку модему до останньої версії. Зробити це можна двома способами: простим через web інтерфейс і умовно складним, через esptool. +Вам можуть знадобитися драйвера для serial-чіпу ch9102: https://github.com/WCHSoftGroup/ch343ser_linux + +> Зверніть увагу! Драйвер не підтримує версію ядра >= 6.1. Але ви можете застосувати відповідні патчі. Наприклад https://github.com/WCHSoftGroup/ch343ser_linux/commit/0c08ee45b25ca93d2c213e18f881627849094268.patch + +### Прошивка через web інтерфейс + +1. Підключаємо пристрій до комп'ютера через USB +2. Відкриваємо https://flasher.meshtastic.org/ і виберіть прошивку, яку потрібно завантажити на Meshtastic , та виберіть COM порт, до якого підключений ESP32. +3. Натисніть кнопку "Flash" у веб-флешері. Процес прошивки може зайняти кілька хвилин. +4. Після завершення прошивки пристрій перезавантажиться. + +### Прошивка через esptool (складний варіант) + +Процес збірки і сам процес описаний **UT3UMS** тут: #hw/tbeam-firmware-ut3ums.md + +Додатково при виборі цього способу прошивки модему можна реалізувати наступне: +* Українська мова на екрані пристрою: https://wikimesh.pp.ua/uk/%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/%D0%A3%D0%B2%D1%96%D0%BC%D0%BA%D0%BD%D0%B5%D0%BD%D0%BD%D1%8F_%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D1%81%D1%8C%D0%BA%D0%BE%D1%97_%D0%BC%D0%BE%D0%B2%D0%B8 +* Збільшення потужності https://wikimesh.pp.ua/uk/%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/%D0%97%D0%B1%D1%96%D0%BB%D1%8C%D1%88%D0%B5%D0%BD%D0%BD%D1%8F_%D0%BF%D0%BE%D1%82%D1%83%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%96 +* Розширене логування RadioLib через Serial https://wikimesh.pp.ua/uk/%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/%D0%A0%D0%BE%D0%B7%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B5_%D0%BB%D0%BE%D0%B3%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_RadioLib + +## Перші налаштування і підключення до мережі + +T-Beam і інші модеми з підтримкою Bluetooth можуть бути налаштовані з додатку. Але цей спосіб, особисто в мене, працює погано. Тому я обрав варіант використання meshtastic cli утиліти(клієнту). + +Також варто зазначити що ви можете налаштувати і працювати з модемом через web клієнт: https://client.meshtastic.org/ + +### Встановлення meshtastic-cli + +Вам потрібен python3 і pip > 20. Перевірте свої версії і оновіть за необхідності: + +```bash +python3 --version +pip3 --version +``` + +Встановлюємо cli клієнт: + +```bash +pip3 install --upgrade pytap2 +pip3 install --upgrade meshtastic +``` + +Далі можна підключити модем до комп'ютера через USB і виконати наступну команду: + +```bash +meshtastic --info +``` + +Таким чином ви перевірите що все працює. + +### Налаштування модему. + +Для початку роботи з модемом вам необхідно виконати наступні дії: + +```bash +meshtastic --set-owner 'your node name' --set-owner-short 'NODE' +``` + +де `your node name` - це ваше ім'я в мережі, а `NODE` - це коротке ім'я, яке буде відображатися на екрані модему. Щось типу аватарки. Підтримується в тому числі і емодзі. + +Встановлюємо налаштування радіо: + +```bash +meshtastic --set lora.region UA_433 --set lora.modem_preset LONG_FAST +``` + +Після зміни кожного налаштування модем автоматично перезавантажиться. Параметри налаштувань можна об`єднувати в одну команду: + +```bash +meshtastic --set-owner 'your node name' --set-owner-short 'NODE' --set lora.region UA_433 --set lora.modem_preset LONG_FAST +``` + +### Підключення до мережі +Завантажте клієнт для вашої сторінки https://meshtastic.org/downloads + +І відскануйте QR код з налаштуваннями мережі. + +Для IOS використовуйте QR сканер в додатку камери. Для Android використовуйте вбудований в додаток Meshtastic сканер в налаштуваннях каналів. + +![QR код з налаштуваннями мережі](https://assada.dead.guru/storage/images/1690058019_image.png){.md-cover .md-img-r} + +Вітаю! Ви в мережі! Спробуйте написати щось в чат і ви обов`язково отримаєте відповідь якщо ваш пакет хтось "почув". Якщо ні, то спробуйте змінити місцезнаходження або використати антену з більшим коефіцієнтом підсилення. Приклади антен наведені тут: https://wikimesh.pp.ua/uk/%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D1%96_%D0%B0%D0%BD%D1%82%D0%B5%D0%BD%D0%B8 + +# Корисні посилання + +* https://wikimesh.pp.ua/uk/home - Українська документація +* https://meshtastic.org/- основний сайт проекту +* https://t.me/meshtastic_ua - Українська спільнота в Telegram +* https://mesh.0x21h.net - карта покриття (beta) +* https://mesh.in.ua/grafana/d/R4RChebVk/mesh?orgId=1&refresh=5s - Дашборд мережі +* https://t.me/meshtastic_lviv - спільнота міста Львів +* https://t.me/meshtastic_ua_chernivtsi - спільнота міста Чернівці +* https://t.me/meshtastic_ua_odesa - спільнота міста Одеса \ No newline at end of file diff --git a/hw/tbeam-firmware-ut3ums.md b/hw/tbeam-firmware-ut3ums.md new file mode 100644 index 0000000..ebd55a6 --- /dev/null +++ b/hw/tbeam-firmware-ut3ums.md @@ -0,0 +1,91 @@ +--- +Author: UT3UMS +Title: Прошивка Meshtastic модему TBEAM +Description: Прошивка TBEAM модему для роботи з Meshtastic +--- + +# Self build + +Для зборки проєкту нам знадобиться +[platformio](https://docs.platformio.org/en/latest/core/installation/shell-commands.html) +([PlatformIO · GitHub](https://github.com/platformio), open source) це +набір скриптів, конфігурацій, темплейтів, тощо для роботи +embedded-розробників. Щось на кшталт pip/npm. +`platformio.ini`{.verbatim} - конфігураційний файл в корені проєкту +визначає архітектуру, специфічні потреби, параметри компіляції. +Існтрумент `platformio`{.verbatim} або скорочено `pio`{.verbatim} +самостійно завантажує потрібний тулчейн, налаштовує і виконує збірку +прошивки та заливку артефактів збірки на пристрої. Без цього, я думаю, +збирати тулчейн для плати буде складніше. Особливо людям без досвіду в +embedded. + +Реокмендований офіційним сайтом спосіб встановлення platformio + +``` {#станом на <2023-07-22 Sat 00:43> це офіційні рекомендації команди platformio по встановленню існтурментарію .bash org-language="sh" eval="never"} +wget https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py -O get-platformio.py +python3 get-platformio.py + +# наступні кроки для того, щоб систем "знала" про pio, яке буде встановлене у директорю користувача +sudo ln -s ~/.platformio/penv/bin/pio /usr/local/bin/pio +# або додайте ~/.platformio/penv/bin/pio в змінну $PATH, як це зробити залежить від багатьох факторів вашої системи +``` + +Нам знадобиться вихідний код meshtastic, який ми будемо модифікувтаи. +Крім того я використовував деякі скрипти з директорії +`firmware/bin`{.verbatim}, але про це згодом. + +``` {#отримання вихідного коду meshtastic .bash org-language="sh" eval="never"} +git clone https://github.com/meshtastic/firmware.git && cd meshtastic && git submodule update --init +``` + +На цьому етапі вам має бути доступний код meshtastic. Для прикладу +[змінимо максимальну +потужність](https://wikimesh.pp.ua/uk/%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/%D0%97%D0%B1%D1%96%D0%BB%D1%8C%D1%88%D0%B5%D0%BD%D0%BD%D1%8F_%D0%BF%D0%BE%D1%82%D1%83%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%96) +передавача для мого регіону та [додаму українські +літери](https://wikimesh.pp.ua/uk/%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/%D0%A3%D0%B2%D1%96%D0%BC%D0%BA%D0%BD%D0%B5%D0%BD%D0%BD%D1%8F_%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D1%81%D1%8C%D0%BA%D0%BE%D1%97_%D0%BC%D0%BE%D0%B2%D0%B8) +у екранний шрифт. + +Трохи почитавши інтернет та сам файл конфігурації +`platformio.ini`{.verbatim} я знайшов два способи запустити збірку +проєкту: + +``` {#збірка з указанням оточення (environment) .bash org-language="sh" eval="never"} +pio run -e tbeam +``` + +або просто відредагувати `platformio.ini`{.verbatim} розкоментувавши +своє оточення і закоментувавши решту. У мене плата Lilygo Tbeam, тому у +моєму конфізі буде щось таке: + +``` example +[platformio] +default_envs = tbeam +``` + +Не зважаючи на успішний білд, команда прошивки +`pio run -t upload`{.verbatim} повернула незрозумілі помилки контрольних +сум. Можливо в цьому винне саме моє оточення - чув що робота esptool для +ядер :+ ще не стабільна. В будь-якому, на цьому кроці я вже маю артифакт +`firmware.bin`{.verbatim}. `pio`{.verbatim} поклав їх в піддиректорію +проєкту: `.pio/build/tbeam/firmware.bin`{.verbatim} + +``` {#meshtastic build + flash, .bash org-language="sh" eval="never"} +pio run -t upload +``` + +Намагаючись розібратися з прошивкою, я запустив +`esptool chip_id`{.verbatim}, программа звалилась на середині роботи, +через неможливість відкрити такий файл: +`/usr/lib/python3/dist-packages/esptool/targets/stub_flasher/stub_flasher_32.json`{.verbatim}. +Документація каже що це готові шаблони пам\'яті, які esptool закидує в +пристрій при прошивці. Простого підкладання файлу з офіційного +репозиторію на місце допомогла запустити `esptool`{.verbatim}, але +`pio`{.verbatim} все ще скаржився на md5. В решті решт я натрапив на +скріпт у директорії `./bin`{.verbatim}. Скріпт закінчився із +попередженнями та помилками, але прошивка пройшла успішно. Після +кофігурації присторю я побачив українську мову на дисплеї і зміг +виставити рівень 14dBm, а не дефолтні 12. + +``` {#Альтернативний спосіб прошивки .bash org-language="sh" eval="never"} +./bin/device-install.sh -f ../.pio/build/tbeam/firmware.bin +``` \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..b1c0e5d --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,92 @@ + + + +https://assada.dead.guru/ham +2023-07-09 + + +https://assada.dead.guru/ham/icom-705-aprs.md +2023-07-09 + + +https://assada.dead.guru/ham/pi-star-and-mmdvm.md +2023-07-09 + + +https://assada.dead.guru/ham/ham-in-ukraine.md +2023-07-09 + + +https://assada.dead.guru/ham/practical-signal-reports.md +2023-07-09 + + +https://assada.dead.guru/ham/gsm/gsm-start-and-imsi-cacth.md +2023-07-09 + + +https://assada.dead.guru/rc +2023-07-09 + + +https://assada.dead.guru/rc/crossfire.md +2023-07-09 + + +https://assada.dead.guru/rc/general.md +2023-07-09 + + +https://assada.dead.guru/rc/tx16s.md +2023-07-09 + + +https://assada.dead.guru/rc/fpv/general.md +2023-07-09 + + +https://assada.dead.guru/rc/model/swamp-thing.md +2023-07-09 + + +https://assada.dead.guru/life +2023-07-09 + + +https://assada.dead.guru/life/under_asphalt_pt1.md +2023-07-09 + + +https://assada.dead.guru/hw +2023-07-09 + + +https://assada.dead.guru/hw/anytone-d878uvII.md +2023-07-09 + + +https://assada.dead.guru/hw/flipper-zero.md +2023-07-09 + + +https://assada.dead.guru/hw/hackrf.md +2023-07-09 + + +https://assada.dead.guru/hw/quansheng_uv-k5.md +2023-07-09 + + +https://assada.dead.guru/hw/uniden-bcd436hp.md +2023-07-09 + + +https://assada.dead.guru/ham/meshtastic.md +2023-07-22 + + + +https://assada.dead.guru/hw/tbeam-firmware-ut3ums.md +2023-07-22 + + \ No newline at end of file