Add Reticulum destination hash indicator at the top of the captive-portal
config page so users can identify the device.
- Store the 32-char hex destination hash in RTC_NOINIT memory after RNS
starts on a normal boot (survives software reboots into config mode)
- BoundaryConfig.h reads the RTC value and renders a styled hash box at
the top of the HTML page, above the config form
- Falls back to a friendly placeholder if the device has never completed
a normal boot (hash not yet assigned)
- Rebuild precompiled firmware for Heltec V3 and V4 boundary variants
MODE_ACCESS_POINT unconditionally blocks announce broadcasts in
Transport::outbound(), preventing local TCP clients from discovering
each other. Changing to MODE_GATEWAY allows announces to flow through
send_outgoing() which broadcasts to all connected clients.
Root cause: receiver's announce was stored in announce_table but never
rebroadcast on LocalTcpInterface, so sender could never find a path.
- flash.py: standalone flash utility with serial port listing, merge-bin,
GitHub Releases download, and esptool flash support
- Display.h: hide LAN row when Local TCP disabled, show local TCP port
instead of backbone port
- README.md: comprehensive documentation — Quick Start with 3 flash options,
OLED display layout, interface modes, routing customizations, path table
fix, interface name uniqueness, hardware rationale (PSRAM/flash)
- Release/boot_app0.bin: bundled for flash.py standalone use
- .gitignore: exclude merged firmware binary build artifact
Bridges LoRa mesh and TCP/WiFi backbone networks using microReticulum.
Based on microReticulum_Firmware with boundary mode additions:
- BoundaryMode.h: State management and EEPROM persistence
- BoundaryConfig.h: WiFi captive portal for configuration
- TcpInterface.h: TCP backbone interface with HDLC framing
- Display.h: Custom OLED layout with network status indicators
- Transport/Identity library patches for embedded memory constraints