notes/hw/tbeam-firmware-ut3ums.md
2023-07-22 23:48:53 +03:00

91 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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
```