Meshtastic
This commit is contained in:
91
hw/tbeam-firmware-ut3ums.md
Normal file
91
hw/tbeam-firmware-ut3ums.md
Normal file
@@ -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
|
||||
```
|
Reference in New Issue
Block a user