Skip to content

WiFi config persists and displays correctly in portal, but device never attempts to connect at boot #40

Description

@ChrisGitH0b

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:

  1. Firmware distributed via flasher.rns.moscow (Heltec V3 variant)
  2. 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

  1. Flash rtnode_heltec_v3 (fresh/erased).
  2. On first boot (or via 5s button hold), enter the config portal.
  3. Enable WiFi, enter a valid 2.4GHz SSID and password, Save and Reboot.
  4. Confirm the portal shows "Configuration Saved."
  5. Device reboots. Serial log shows no WiFi connection attempt; OLED shows
    "No WiFi" indefinitely.
  6. Re-enter config mode (5s hold) — SSID/password/node name are correctly
    pre-filled, confirming the write did persist.
  7. 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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions