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

6.1 KiB
Raw Blame History

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