Summary
After configuring WiFi (SSID + password) through the on-device config portal, the
device correctly saves and later re-displays the stored SSID/password/node name
when reopening the portal — but on normal boot, the firmware never attempts a
WiFi connection at all. It goes straight from filesystem init to
"Firewall Mode: Waiting for WiFi before starting TCP interfaces" and stays there
indefinitely. No connection attempt, no auth failure, no timeout — just silence
on the WiFi front.
Reproduced on two separate builds:
- Firmware distributed via flasher.rns.moscow (Heltec V3 variant)
- Official v1.0.46 (Beta) from this repo, flashed fresh via flash.py
--use-system-esptool after a full erase (Erase flash before writing? y)
Same symptom on both, including after a completely clean flash with no prior
config/state carried over.
Steps to reproduce
- Flash rtnode_heltec_v3 (fresh/erased).
- On first boot (or via 5s button hold), enter the config portal.
- Enable WiFi, enter a valid 2.4GHz SSID and password, Save and Reboot.
- Confirm the portal shows "Configuration Saved."
- Device reboots. Serial log shows no WiFi connection attempt; OLED shows
"No WiFi" indefinitely.
- Re-enter config mode (5s hold) — SSID/password/node name are correctly
pre-filled, confirming the write did persist.
- Boot proceeds to normal RNS startup, LoRa comes up fine, but
"Firewall Mode: Waiting for WiFi before starting TCP interfaces" never
resolves.
Expected
Device should attempt WiFi.begin() with the stored credentials at boot (or
after config save), and either connect or log a clear failure reason.
Hardware
Heltec WiFi LoRa 32 V3 (ESP32-S3FN8, no PSRAM), 8MB flash.
[Boundary] Button hold >5s — rebooting into config mode
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x29 (SPI_FAST_FLASH_BOOT)
Saved PC:0x420625fc
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x10 (RTCWDT_RTC_RST),boot:0x29 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x41c
load:0x403c9700,len:0x9a8
load:0x403cc700,len:0x28ac
entry 0x403c98b8
[Boundary] Config mode requested via button hold
[Config] Starting configuration portal...
[Config] AP started: RTNode-Setup
[Config] IP: 10.0.0.1
[mDNS] AP up: rtnode.local
[Config] Portal ready — connect to WiFi: RTNode-Setup
[ ... repeated _handleRequest(): request handler not found — captive portal probes ... ]
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x29 (SPI_FAST_FLASH_BOOT)
Saved PC:0x420e62f2
[Boundary] Released BT controller memory
[Boundary] Provisioning check bypassed, modem installed
[Boundary] Loaded LoRa config from EEPROM
[Boundary] LoRa: freq=916625000 bw=250000 sf=11 cr=5 txp=22
Starting RNS...
00:16:09.496 [INF] Total memory: 324548
00:16:09.531 [INF] Starting Transport...
00:16:09.734 [INF] Transport mode is enabled
00:16:10.917 [WRN] Firewall Mode: Waiting for WiFi before starting TCP interfaces
[Boundary] Boot stable — bootloop counter cleared
[Boundary] Button hold >5s — rebooting into config mode
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x29 (SPI_FAST_FLASH_BOOT)
Saved PC:0x42062f2f
[Boundary] Config mode requested via button hold
[Config] Starting configuration portal...
[Config] AP started: RTNode-Setup
[Config] IP: 10.0.0.1
[mDNS] AP up: rtnode.local
[Config] Portal ready — connect to WiFi: RTNode-Setup
[ ... repeated _handleRequest(): request handler not found — captive portal probes ... ]
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x29 (SPI_FAST_FLASH_BOOT)
Saved PC:0x420e706a
[Boundary] Released BT controller memory
[Boundary] Provisioning check bypassed, modem installed
[Boundary] Loaded LoRa config from EEPROM
[Boundary] LoRa: freq=916625000 bw=250000 sf=11 cr=5 txp=22
Starting RNS...
01:01:29.158 [INF] Total memory: 324652
01:01:29.174 [INF] Starting Transport...
01:01:29.313 [INF] Transport mode is enabled
01:01:30.502 [WRN] Firewall Mode: Waiting for WiFi before starting TCP interfaces
[ 5381][E][Preferences.cpp:50] begin(): nvs_open failed: NOT_FOUND
01:01:30.538 [VRB] [Advertise] Device advertisement disabled (configure in portal to enable)
[Boundary] Boot stable — bootloop counter cleared
Workaround in use
Running WiFi disabled, LoRa-only, as a standalone RF repeater — confirmed
this works fine (Firewall Mode line no longer appears when WiFi is disabled).
Summary
After configuring WiFi (SSID + password) through the on-device config portal, the
device correctly saves and later re-displays the stored SSID/password/node name
when reopening the portal — but on normal boot, the firmware never attempts a
WiFi connection at all. It goes straight from filesystem init to
"Firewall Mode: Waiting for WiFi before starting TCP interfaces" and stays there
indefinitely. No connection attempt, no auth failure, no timeout — just silence
on the WiFi front.
Reproduced on two separate builds:
--use-system-esptool after a full erase (
Erase flash before writing? y)Same symptom on both, including after a completely clean flash with no prior
config/state carried over.
Steps to reproduce
"No WiFi" indefinitely.
pre-filled, confirming the write did persist.
"Firewall Mode: Waiting for WiFi before starting TCP interfaces" never
resolves.
Expected
Device should attempt WiFi.begin() with the stored credentials at boot (or
after config save), and either connect or log a clear failure reason.
Hardware
Heltec WiFi LoRa 32 V3 (ESP32-S3FN8, no PSRAM), 8MB flash.
[Boundary] Button hold >5s — rebooting into config mode
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x29 (SPI_FAST_FLASH_BOOT)
Saved PC:0x420625fc
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x10 (RTCWDT_RTC_RST),boot:0x29 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x41c
load:0x403c9700,len:0x9a8
load:0x403cc700,len:0x28ac
entry 0x403c98b8
[Boundary] Config mode requested via button hold
[Config] Starting configuration portal...
[Config] AP started: RTNode-Setup
[Config] IP: 10.0.0.1
[mDNS] AP up: rtnode.local
[Config] Portal ready — connect to WiFi: RTNode-Setup
[ ... repeated _handleRequest(): request handler not found — captive portal probes ... ]
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x29 (SPI_FAST_FLASH_BOOT)
Saved PC:0x420e62f2
[Boundary] Released BT controller memory
[Boundary] Provisioning check bypassed, modem installed
[Boundary] Loaded LoRa config from EEPROM
[Boundary] LoRa: freq=916625000 bw=250000 sf=11 cr=5 txp=22
Starting RNS...
00:16:09.496 [INF] Total memory: 324548
00:16:09.531 [INF] Starting Transport...
00:16:09.734 [INF] Transport mode is enabled
00:16:10.917 [WRN] Firewall Mode: Waiting for WiFi before starting TCP interfaces
[Boundary] Boot stable — bootloop counter cleared
[Boundary] Button hold >5s — rebooting into config mode
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x29 (SPI_FAST_FLASH_BOOT)
Saved PC:0x42062f2f
[Boundary] Config mode requested via button hold
[Config] Starting configuration portal...
[Config] AP started: RTNode-Setup
[Config] IP: 10.0.0.1
[mDNS] AP up: rtnode.local
[Config] Portal ready — connect to WiFi: RTNode-Setup
[ ... repeated _handleRequest(): request handler not found — captive portal probes ... ]
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0xc (RTC_SW_CPU_RST),boot:0x29 (SPI_FAST_FLASH_BOOT)
Saved PC:0x420e706a
[Boundary] Released BT controller memory
[Boundary] Provisioning check bypassed, modem installed
[Boundary] Loaded LoRa config from EEPROM
[Boundary] LoRa: freq=916625000 bw=250000 sf=11 cr=5 txp=22
Starting RNS...
01:01:29.158 [INF] Total memory: 324652
01:01:29.174 [INF] Starting Transport...
01:01:29.313 [INF] Transport mode is enabled
01:01:30.502 [WRN] Firewall Mode: Waiting for WiFi before starting TCP interfaces
[ 5381][E][Preferences.cpp:50] begin(): nvs_open failed: NOT_FOUND
01:01:30.538 [VRB] [Advertise] Device advertisement disabled (configure in portal to enable)
[Boundary] Boot stable — bootloop counter cleared
Workaround in use
Running WiFi disabled, LoRa-only, as a standalone RF repeater — confirmed
this works fine (Firewall Mode line no longer appears when WiFi is disabled).