Skip to content

v1.0.13: MTU clamping, path discovery fix, echo-back prevention

Choose a tag to compare

@jrl290 jrl290 released this 28 Feb 20:03
· 179 commits to main since this release

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