Changes since v1.0.5
v1.0.13 — Path discovery starvation fix
- Immediate PATH_RESPONSE for local clients: On ESP32, continuous TCP backbone data can starve the jobs() loop, causing path discovery timeouts. PATH_RESPONSE is now sent immediately for local client requests.
- Remove redundant boundary-mode announce echo blocking: The standard random_blob check already prevents echoes; the boundary-specific blocking was preventing correct path table updates.
- flash.py: Auto-downloads latest firmware from GitHub with local cache. New
--release and --offline flags.
v1.0.12 — MTU clamping (critical fix)
- Link MTU clamping: Clamp link MTU signalling in LINKREQUEST packets when forwarding through the transport node. Without this, TCP endpoints negotiate 8192-byte segments that exceed the V3's 1064-byte HDLC buffer, causing resource transfers to permanently stall at ~70%.
- Fixed MTU declaration: Set
FIXED_MTU=true on TcpInterface so Transport uses HW_MTU for clamping decisions.
- Oversized frame detection: Track truncated HDLC frames and drop them with a diagnostic log instead of silently delivering corrupt data.
- Echo-back prevention: Track which TCP client originated each inbound frame and skip that client in send_outgoing() to prevent flooding TCP buffers.
v1.0.8 — Heap stability
- Fix heap exhaustion from unbounded random_blobs accumulation.
v1.0.7 — Announce rebroadcast fix
- Fix LocalTcpInterface mode (AP→GATEWAY) to allow announce rebroadcasts.
v1.0.6 — Link establishment fix
- Fix link establishment through boundary node.
Firmware Binaries
| File |
Board |
Flash Size |
rnodethv3_firmware.bin |
Heltec WiFi LoRa 32 V3 |
8MB |
rnodethv4_firmware.bin |
Heltec WiFi LoRa 32 V4 |
16MB |
Flash with:
# Download flash.py and run — firmware downloads automatically
python flash.py --board v3 # or v4