Перейти до основного вмісту
обережно

Це спосіб прошивки модему в "ручному" режимі при умові проблем з platformio аддону в VSCode.

Опис проекту та інструкції по прошивці від автора проекту можна знайти тут meshtastic.md

Self build

Для збірки проєкту нам знадобиться platformio (PlatformIO · GitHub, open source) це набір скриптів, конфігурацій, темплейтів, тощо для роботи embedded-розробників. Щось на кшталт pip/npm. platformio.ini - конфігураційний файл в корені проєкту визначає архітектуру, специфічні потреби, параметри компіляції. Існтрумент platformio або скорочено pio самостійно завантажує потрібний тулчейн, налаштовує і виконує збірку прошивки та заливку артефактів збірки на пристрої. Без цього, я думаю, збирати тулчейн для плати буде складніше. Особливо людям без досвіду в embedded.

Реокмендований офіційним сайтом спосіб встановлення platformio

#станом на <2023-07-22 Sat 00:43> це офіційні рекомендації команди 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, але про це згодом.

#отримання вихідного коду meshtastic
git clone https://github.com/meshtastic/firmware.git && cd meshtastic && git submodule update --init

На цьому етапі вам має бути доступний код meshtastic. Для прикладу змінимо максимальну потужність передавача для мого регіону та додаму українські літери у екранний шрифт.

Трохи почитавши інтернет та сам файл конфігурації platformio.ini я знайшов два способи запустити збірку проєкту:

#збірка з указанням оточення (environment)
pio run -e tbeam

або просто відредагувати platformio.ini розкоментувавши своє оточення і закоментувавши решту. У мене плата Lilygo Tbeam, тому у моєму конфізі буде щось таке:

[platformio]
default_envs = tbeam

Не зважаючи на успішний білд, команда прошивки pio run -t upload повернула незрозумілі помилки контрольних сум. Можливо в цьому винне саме моє оточення - чув що робота esptool для ядер :+ ще не стабільна. В будь-якому, на цьому кроці я вже маю артифакт firmware.bin. pio поклав їх в піддиректорію проєкту: .pio/build/tbeam/firmware.bin

#meshtastic build + flash
pio run -t upload

Намагаючись розібратися з прошивкою, я запустив esptool chip_id, программа звалилась на середині роботи, через неможливість відкрити такий файл: /usr/lib/python3/dist-packages/esptool/targets/stub_flasher/stub_flasher_32.json. Документація каже що це готові шаблони пам'яті, які esptool закидує в пристрій при прошивці. Простого підкладання файлу з офіційного репозиторію на місце допомогла запустити esptool, але pio все ще скаржився на md5. В решті решт я натрапив на скріпт у директорії ./bin. Скріпт закінчився із попередженнями та помилками, але прошивка пройшла успішно. Після кофігурації присторю я побачив українську мову на дисплеї і зміг виставити рівень 14dBm, а не дефолтні 12.

#Альтернативний спосіб прошивки
./bin/device-install.sh -f ../.pio/build/tbeam/firmware.bin