Standalone PlatformIO project using MeshCore as a library. Features: - Heltec LoRa32 V3 support (ESP32-S3 + SX1262) - OLED display integration - OTA firmware updates via WiFi - Serial CLI for configuration Uses symlinked MeshCore library from ../MeshCore
2.1 KiB
2.1 KiB
Flashing the Firmware
USB Serial Flashing
Prerequisites
- USB cable connected to Heltec board
- User in
uucpordialoutgroup (for/dev/ttyUSB*access)
Flash Command
# Build and flash
pio run -t upload
# Flash to specific port
pio run -t upload --upload-port /dev/ttyUSB0
Using the Stable Device Path
USB device numbers can change. Use the stable path instead:
pio run -t upload --upload-port /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
Boot Mode Issues
If flashing fails, manually enter bootloader mode:
- Hold BOOT button
- Press RST button
- Release BOOT button
- Run
pio run -t upload
OTA Updates
Over-The-Air updates let you flash wirelessly after initial USB flash.
Step 1: Enter OTA Mode
Connect to serial console:
screen /dev/ttyUSB0 115200
Type:
start ota
Response:
Started: http://192.168.4.1/update
Step 2: Connect to WiFi
The repeater creates an open access point:
- SSID:
MeshCore-OTA - Password: (none)
Connect your computer/phone to this network.
Step 3: Upload Firmware
- Open browser to
http://192.168.4.1/update - Click "Choose File"
- Select
.pio/build/heltec_v3_repeater/firmware.bin - Click "Update"
- Wait for upload and reboot (~30 seconds)
OTA Endpoints
| URL | Purpose |
|---|---|
http://192.168.4.1/ |
Device info page |
http://192.168.4.1/update |
ElegantOTA firmware upload |
http://192.168.4.1/log |
View packet log (if enabled) |
Exiting OTA Mode
OTA mode stays active until reboot. To exit without updating:
- Press the RST button, or
- Power cycle the device
Verifying the Flash
After flashing, connect to serial:
screen /dev/ttyUSB0 115200
Press RST to see boot messages:
Repeater ID: AABBCCDD...
Type ver to check firmware version:
ver
-> MeshCore v1.10.0 (Jan 25 2025)
Exit Screen
To exit the screen session:
Ctrl+athenktheny(kill session)- Or
Ctrl+athend(detach, keeps session running)