# Локальная сборка с помощью uv В этом репозитории `uv` используется для инструментов Python, а PlatformIO запускается через `uv run`. Эта страница посвящена сборке из исходников. Если вам нужна только готовая прошивка, чтобы прошить устройство, начните со страницы [Скачивание и прошивка релизов](./releases.md). Используйте эту страницу, когда изменяете прошивку, тестируете таргет перед релизом или собираете локальный артефакт, недоступный в разделе Releases. ## Настройка Из корня репозитория: ```bash uv sync ``` ## Полезные команды Список таргетов сборки: ```bash bash posadmesh-build.sh list ``` Обычная сборка PlatformIO для одного таргета: ```bash uv run pio run -e heltec_v4_repeater_observer uv run pio run -e heltec_v4_companion_radio_wifi uv run pio run -e heltec_v4_repeater_bridge_espnow uv run pio run -e heltec_v4_repeater_observer_espnow uv run pio run -e Xiao_S3_WIO_repeater_observer_mqtt_bridge ``` Прошивка таргета: ```bash uv run pio run -e heltec_v4_repeater_observer -t upload --upload-port /dev/tty.usbmodemXXXX ``` Монитор последовательного порта: ```bash uv run pio device monitor --port /dev/tty.usbmodemXXXX --baud 115200 ``` ## Локальные сборки в стиле релиза Если вам нужны те же метаданные версии, которые используются при выпуске релиза, сначала экспортируйте переменные версии. Companion Wi-Fi: ```bash export FIRMWARE_VERSION=v1.14.1 bash posadmesh-build.sh build-firmware heltec_v4_companion_radio_wifi ``` Обсервер: ```bash export FIRMWARE_VERSION=v1.15.0 export POSADMESH_VERSION=v2026.5.1 bash posadmesh-build.sh build-firmware heltec_v4_repeater_observer ``` Мост ESP-NOW репитера: ```bash export FIRMWARE_VERSION=v1.15.0 bash posadmesh-build.sh build-firmware heltec_v4_repeater_bridge_espnow ``` Обсервер ESP-NOW: ```bash export FIRMWARE_VERSION=v1.15.0 export POSADMESH_VERSION=v2026.5.1 bash posadmesh-build.sh build-firmware heltec_v4_repeater_observer_espnow ``` На выходе получаются артефакты с версиями в `out/`. Правило версионирования: - `companion-wifi` и `repeater-bridge-espnow` используют версию upstream MeshCore как `FIRMWARE_VERSION` - `observer-posadmesh`, `observer-posadmesh-bridge-espnow` и `observer-posadmesh-bridge-mqtt` используют версию upstream MeshCore как `FIRMWARE_VERSION` плюс версию релиза PosadMesh как `POSADMESH_VERSION` ## Поддерживаемые платы `repeater_observer` Это полные имена окружений PlatformIO, используемые для локальных сборок из исходников и для именования артефактов релизов. ```text Generic_E22_sx1262_repeater_observer Generic_E22_sx1268_repeater_observer Heltec_E213_repeater_observer Heltec_E290_repeater_observer Heltec_T190_repeater_observer heltec_tracker_v2_repeater_observer Heltec_v2_repeater_observer Heltec_v3_repeater_observer heltec_v4_repeater_observer heltec_v4_tft_repeater_observer Heltec_Wireless_Paper_repeater_observer Heltec_Wireless_Tracker_repeater_observer Heltec_WSL3_repeater_observer LilyGo_T3S3_sx1262_repeater_observer LilyGo_T3S3_sx1276_repeater_observer LilyGo_TBeam_1W_repeater_observer LilyGo_TDeck_repeater_observer LilyGo_Tlora_C6_repeater_observer M5Stack_Unit_C6L_repeater_observer Meshadventurer_sx1262_repeater_observer Meshadventurer_sx1268_repeater_observer Meshimi_repeater_observer nibble_screen_connect_repeater_observer RAK_3112_repeater_observer Station_G2_logging_repeater_observer Station_G2_repeater_observer T_Beam_S3_Supreme_SX1262_repeater_observer Tbeam_SX1262_repeater_observer Tbeam_SX1276_repeater_observer WHY2025_badge_repeater_observer Xiao_C6_repeater_observer Xiao_S3_LoRa2021F33-2G4_repeater_observer Xiao_S3_WIO_repeater_observer ``` ## Поддерживаемые платы мостов Таргеты мостов можно вывести списком из корня репозитория: ```bash bash posadmesh-build.sh list | grep '_repeater_bridge_espnow' bash posadmesh-build.sh list | grep '_repeater_observer_espnow' ``` Типичные примеры: ```text heltec_v4_repeater_bridge_espnow heltec_v4_repeater_observer_espnow Station_G2_repeater_bridge_espnow Station_G2_repeater_observer_espnow T_Beam_S3_Supreme_SX1262_repeater_bridge_espnow T_Beam_S3_Supreme_SX1262_repeater_observer_espnow ``` ## Поддерживаемые платы `repeater_observer_mqtt_bridge` Для каждой платы обсервера определён вариант сборки `mqtt_bridge`. Список доступных таргетов: ```bash bash posadmesh-build.sh list | grep '_repeater_observer_mqtt_bridge' ``` Прошивка моста предназначена для локального использования ESP-NOW-моста между близлежащими репитерами. Это не мост MQTT-over-WAN и не VPN-мост. ## Поддерживаемые платы `companion_radio_wifi` Это полные имена окружений PlatformIO, используемые для локальных сборок из исходников и для именования артефактов релизов. ```text heltec_tracker_v2_companion_radio_wifi Heltec_v2_companion_radio_wifi Heltec_v3_companion_radio_wifi heltec_v4_companion_radio_wifi heltec_v4_tft_companion_radio_wifi Heltec_WSL3_companion_radio_wifi LilyGo_TBeam_1W_companion_radio_wifi LilyGo_TLora_V2_1_1_6_companion_radio_wifi nibble_screen_connect_companion_radio_wifi RAK_3112_companion_radio_wifi Station_G2_companion_radio_wifi T_Beam_S3_Supreme_SX1262_companion_radio_wifi ThinkNode_M2_companion_radio_wifi ThinkNode_M5_companion_radio_wifi Xiao_S3_LoRa2021F33-2G4_companion_radio_wifi Xiao_S3_WIO_companion_radio_wifi ``` ## CLI companion Wi-Fi Текущие сборки companion Wi-Fi поддерживают сохраняемые команды восстановления Wi-Fi: - откройте монитор последовательного порта на скорости `115200` бод - перезагрузите устройство - в течение первых 8 секунд после загрузки зажмите пользовательскую кнопку, чтобы войти в `CLI Rescue` - дождитесь `========= CLI Rescue =========` - затем выполните приведённые ниже команды восстановления Wi-Fi из монитора последовательного порта ```text get wifi.status get wifi.ssid get wifi.powersaving set wifi.ssid set wifi.pwd set wifi.powersaving none|min|max ```