This repo uses uv for Python tooling and runs PlatformIO through uv run.
From the repo root:
uv sync
List build targets:
bash build.sh list
Plain PlatformIO build for a single target:
uv run pio run -e heltec_v4_repeater_mqtt
uv run pio run -e heltec_v4_companion_radio_wifi
Flash a target:
uv run pio run -e heltec_v4_repeater_mqtt -t upload --upload-port /dev/tty.usbmodemXXXX
Serial monitor:
uv run pio device monitor --port /dev/tty.usbmodemXXXX --baud 115200
If you want the same version metadata used by the release workflows, export the version variables first.
Companion WiFi:
export FIRMWARE_VERSION=v1.14.1
bash build.sh build-firmware heltec_v4_companion_radio_wifi
Repeater MQTT:
export FIRMWARE_VERSION=v1.14.1
export EASTMESH_VERSION=v1.0.1
bash build.sh build-firmware heltec_v4_repeater_mqtt
This produces versioned artifacts in out/.
repeater_mqtt BoardsT_Beam_S3_Supreme_SX1262_repeater_mqtt
LilyGo_TLora_V2_1_1_6_repeater_mqtt
LilyGo_TBeam_1W_repeater_mqtt
Xiao_C3_repeater_mqtt
RAK_3112_repeater_mqtt
Tbeam_SX1262_repeater_mqtt
Heltec_E290_repeater_mqtt
Tbeam_SX1276_repeater_mqtt
Heltec_E213_repeater_mqtt
Heltec_Wireless_Tracker_repeater_mqtt
M5Stack_Unit_C6L_repeater_mqtt
LilyGo_TDeck_repeater_mqtt
Station_G2_repeater_mqtt
Station_G2_logging_repeater_mqtt
LilyGo_T3S3_sx1262_repeater_mqtt
Meshadventurer_sx1262_repeater_mqtt
Meshadventurer_sx1268_repeater_mqtt
Heltec_Wireless_Paper_repeater_mqtt
heltec_v4_repeater_mqtt
heltec_v4_tft_repeater_mqtt
heltec_tracker_v2_repeater_mqtt
Heltec_v3_repeater_mqtt
Heltec_WSL3_repeater_mqtt
LilyGo_T3S3_sx1276_repeater_mqtt
Heltec_v2_repeater_mqtt
nibble_screen_connect_repeater_mqtt
Tenstar_C3_sx1262_repeater_mqtt
Tenstar_C3_sx1268_repeater_mqtt
Heltec_ct62_repeater_mqtt
Xiao_S3_WIO_repeater_mqtt
Generic_E22_sx1262_repeater_mqtt
Generic_E22_sx1268_repeater_mqtt
Notes:
*_repeater_mqtt_ experimental C6-style envs exist in the repo but are not listed here as primary EastMesh targetsXiao_C3_repeater_mqtt disables the web panel to stay within flash limitscompanion_radio_wifi BoardsXiao_S3_WIO_companion_radio_wifi
Heltec_v3_companion_radio_wifi
Heltec_WSL3_companion_radio_wifi
LilyGo_TBeam_1W_companion_radio_wifi
RAK_3112_companion_radio_wifi
LilyGo_TLora_V2_1_1_6_companion_radio_wifi
ThinkNode_M5_companion_radio_wifi
Xiao_C3_companion_radio_wifi
heltec_tracker_v2_companion_radio_wifi
heltec_v4_companion_radio_wifi
heltec_v4_tft_companion_radio_wifi
Station_G2_companion_radio_wifi
ThinkNode_M2_companion_radio_wifi
nibble_screen_connect_companion_radio_wifi
Heltec_v2_companion_radio_wifi
T_Beam_S3_Supreme_SX1262_companion_radio_wifi
Current companion WiFi builds support persisted WiFi rescue commands:
get wifi.status
get wifi.ssid
get wifi.powersaving
set wifi.ssid <ssid>
set wifi.pwd <password>
set wifi.powersaving none|min|max