6.1 KiB
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