6.1 KiB
Author, Title, Description
| Author | Title | Description |
|---|---|---|
| UT3UMS | Прошивка Meshtastic модему TBEAM | Прошивка TBEAM модему для роботи з Meshtastic |
Self build
Для зборки проєкту нам знадобиться
platformio
(PlatformIO · GitHub, open source) це
набір скриптів, конфігурацій, темплейтів, тощо для роботи
embedded-розробників. Щось на кшталт pip/npm.
platformio.ini{.verbatim} - конфігураційний файл в корені проєкту
визначає архітектуру, специфічні потреби, параметри компіляції.
Існтрумент platformio{.verbatim} або скорочено pio{.verbatim}
самостійно завантажує потрібний тулчейн, налаштовує і виконує збірку
прошивки та заливку артефактів збірки на пристрої. Без цього, я думаю,
збирати тулчейн для плати буде складніше. Особливо людям без досвіду в
embedded.
Реокмендований офіційним сайтом спосіб встановлення platformio
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}, але про це згодом.
git clone https://github.com/meshtastic/firmware.git && cd meshtastic && git submodule update --init
На цьому етапі вам має бути доступний код meshtastic. Для прикладу змінимо максимальну потужність передавача для мого регіону та додаму українські літери у екранний шрифт.
Трохи почитавши інтернет та сам файл конфігурації
platformio.ini{.verbatim} я знайшов два способи запустити збірку
проєкту:
pio run -e tbeam
або просто відредагувати platformio.ini{.verbatim} розкоментувавши
своє оточення і закоментувавши решту. У мене плата Lilygo Tbeam, тому у
моєму конфізі буде щось таке:
[platformio]
default_envs = tbeam
Не зважаючи на успішний білд, команда прошивки
pio run -t upload{.verbatim} повернула незрозумілі помилки контрольних
сум. Можливо в цьому винне саме моє оточення - чув що робота esptool для
ядер :+ ще не стабільна. В будь-якому, на цьому кроці я вже маю артифакт
firmware.bin{.verbatim}. pio{.verbatim} поклав їх в піддиректорію
проєкту: .pio/build/tbeam/firmware.bin{.verbatim}
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.
./bin/device-install.sh -f ../.pio/build/tbeam/firmware.bin