- добавлен ручной workflow Gitea Actions (.gitea/workflows/build-mqtt-firmwares.yml): сборка MQTT-прошивок на сервере и публикация релиза - добавлен posadmesh-tools/publish-gitea-release.sh для выгрузки собранных файлов в релиз Gitea (идемпотентно, фильтр по треку) - README: происхождение проекта переписано (форк EastMesh, доработка энтузиастов из Сергиева Посада, ориентация на meshcoretel.ru), добавлены раздел «Отличия от upstream MeshCore» и журнал «Изменения в проекте» - убраны упоминания Австралии, ссылки на eastmesh.au и региональные материалы; руководство по прошивке переведено на файлы релизов и esptool.py - posadmesh-build.sh: вывод PlatformIO очищается от \r — на Windows групповые команды сборки не находили ни одной цели; companion-команды удалены, добавлены build-mqtt-firmwares и list-mqtt - release-notes.yml: треки repeater-mqtt*, запись 2026.10.0 дополнена удалением companion и исправлением сборки, companion-wifi помечен как снятый с выпуска - AGENTS.md: правило дописывать изменения в README - .gitignore: .pio-home
153 lines
5.7 KiB
Markdown
153 lines
5.7 KiB
Markdown
# Локальная сборка с помощью uv
|
||
|
||
В этом репозитории `uv` используется для инструментов Python, а PlatformIO запускается через `uv run`.
|
||
|
||
Эта страница посвящена сборке из исходников. Если вам нужна только готовая прошивка, чтобы прошить устройство, начните со страницы [Скачивание и прошивка релизов](./releases.md).
|
||
|
||
Используйте эту страницу, когда изменяете прошивку, тестируете таргет перед релизом или собираете локальный артефакт, недоступный в разделе Releases.
|
||
|
||
Если сборка на своей машине не нужна, те же MQTT-прошивки можно собрать на сервере ручным workflow Gitea Actions (**Actions → Build MQTT firmwares → Run workflow**): он принимает версии `FIRMWARE_VERSION` и `POSADMESH_VERSION`, группу сборки (`all`, `uplink`, `espnow`, `bridge` или один таргет) и умеет сразу создать релиз Gitea с собранными файлами. Подробности — в [RELEASE.md](../RELEASE.md).
|
||
|
||
## Настройка
|
||
|
||
Из корня репозитория:
|
||
|
||
```bash
|
||
uv sync
|
||
```
|
||
|
||
## Полезные команды
|
||
|
||
Список таргетов сборки:
|
||
|
||
```bash
|
||
bash posadmesh-build.sh list
|
||
```
|
||
|
||
Обычная сборка PlatformIO для одного таргета:
|
||
|
||
```bash
|
||
uv run pio run -e heltec_v4_repeater_mqtt
|
||
uv run pio run -e heltec_v4_repeater_bridge_espnow
|
||
uv run pio run -e heltec_v4_repeater_mqtt_espnow
|
||
uv run pio run -e Xiao_S3_WIO_repeater_mqtt_bridge
|
||
```
|
||
|
||
Прошивка таргета:
|
||
|
||
```bash
|
||
uv run pio run -e heltec_v4_repeater_mqtt -t upload --upload-port /dev/tty.usbmodemXXXX
|
||
```
|
||
|
||
Монитор последовательного порта:
|
||
|
||
```bash
|
||
uv run pio device monitor --port /dev/tty.usbmodemXXXX --baud 115200
|
||
```
|
||
|
||
## Локальные сборки в стиле релиза
|
||
|
||
Если вам нужны те же метаданные версии, которые используются при выпуске релиза, сначала экспортируйте переменные версии.
|
||
|
||
MQTT-репитер:
|
||
|
||
```bash
|
||
export FIRMWARE_VERSION=v1.15.0
|
||
export POSADMESH_VERSION=v2026.5.1
|
||
bash posadmesh-build.sh build-firmware heltec_v4_repeater_mqtt
|
||
```
|
||
|
||
Мост ESP-NOW репитера:
|
||
|
||
```bash
|
||
export FIRMWARE_VERSION=v1.15.0
|
||
bash posadmesh-build.sh build-firmware heltec_v4_repeater_bridge_espnow
|
||
```
|
||
|
||
MQTT-репитер ESP-NOW:
|
||
|
||
```bash
|
||
export FIRMWARE_VERSION=v1.15.0
|
||
export POSADMESH_VERSION=v2026.5.1
|
||
bash posadmesh-build.sh build-firmware heltec_v4_repeater_mqtt_espnow
|
||
```
|
||
|
||
На выходе получаются артефакты с версиями в `out/`.
|
||
|
||
Правило версионирования:
|
||
|
||
- `repeater-bridge-espnow` использует версию upstream MeshCore как `FIRMWARE_VERSION`
|
||
- `repeater-mqtt`, `repeater-mqtt-espnow` и `repeater-mqtt-bridge` используют версию upstream MeshCore как `FIRMWARE_VERSION` плюс версию релиза PosadMesh как `POSADMESH_VERSION`
|
||
|
||
## Поддерживаемые платы `repeater_mqtt`
|
||
|
||
Это полные имена окружений PlatformIO, используемые для локальных сборок из исходников и для именования артефактов релизов.
|
||
|
||
```text
|
||
Generic_E22_sx1262_repeater_mqtt
|
||
Generic_E22_sx1268_repeater_mqtt
|
||
Heltec_E213_repeater_mqtt
|
||
Heltec_E290_repeater_mqtt
|
||
Heltec_T190_repeater_mqtt
|
||
heltec_tracker_v2_repeater_mqtt
|
||
Heltec_v2_repeater_mqtt
|
||
Heltec_v3_repeater_mqtt
|
||
heltec_v4_repeater_mqtt
|
||
heltec_v4_tft_repeater_mqtt
|
||
Heltec_Wireless_Paper_repeater_mqtt
|
||
Heltec_Wireless_Tracker_repeater_mqtt
|
||
Heltec_WSL3_repeater_mqtt
|
||
LilyGo_T3S3_sx1262_repeater_mqtt
|
||
LilyGo_T3S3_sx1276_repeater_mqtt
|
||
LilyGo_TBeam_1W_repeater_mqtt
|
||
LilyGo_TDeck_repeater_mqtt
|
||
LilyGo_Tlora_C6_repeater_mqtt
|
||
M5Stack_Unit_C6L_repeater_mqtt
|
||
Meshadventurer_sx1262_repeater_mqtt
|
||
Meshadventurer_sx1268_repeater_mqtt
|
||
Meshimi_repeater_mqtt
|
||
nibble_screen_connect_repeater_mqtt
|
||
RAK_3112_repeater_mqtt
|
||
Station_G2_logging_repeater_mqtt
|
||
Station_G2_repeater_mqtt
|
||
T_Beam_S3_Supreme_SX1262_repeater_mqtt
|
||
Tbeam_SX1262_repeater_mqtt
|
||
Tbeam_SX1276_repeater_mqtt
|
||
WHY2025_badge_repeater_mqtt
|
||
Xiao_C6_repeater_mqtt
|
||
Xiao_S3_LoRa2021F33-2G4_repeater_mqtt
|
||
Xiao_S3_WIO_repeater_mqtt
|
||
```
|
||
|
||
## Поддерживаемые платы мостов
|
||
|
||
Таргеты мостов можно вывести списком из корня репозитория:
|
||
|
||
```bash
|
||
bash posadmesh-build.sh list | grep '_repeater_bridge_espnow'
|
||
bash posadmesh-build.sh list | grep '_repeater_mqtt_espnow'
|
||
```
|
||
|
||
Типичные примеры:
|
||
|
||
```text
|
||
heltec_v4_repeater_bridge_espnow
|
||
heltec_v4_repeater_mqtt_espnow
|
||
Station_G2_repeater_bridge_espnow
|
||
Station_G2_repeater_mqtt_espnow
|
||
T_Beam_S3_Supreme_SX1262_repeater_bridge_espnow
|
||
T_Beam_S3_Supreme_SX1262_repeater_mqtt_espnow
|
||
```
|
||
|
||
## Поддерживаемые платы `repeater_mqtt_bridge`
|
||
|
||
Для каждой платы MQTT-репитера определён вариант сборки `mqtt_bridge`.
|
||
|
||
Список доступных таргетов:
|
||
|
||
```bash
|
||
bash posadmesh-build.sh list | grep '_repeater_mqtt_bridge'
|
||
```
|
||
|
||
Прошивка моста предназначена для локального использования ESP-NOW-моста между близлежащими репитерами. Это не мост MQTT-over-WAN и не VPN-мост.
|