Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot setup device on isolated wifi network #247

Open
bentemple opened this issue Feb 3, 2025 · 3 comments
Open

Cannot setup device on isolated wifi network #247

bentemple opened this issue Feb 3, 2025 · 3 comments
Assignees
Labels
bug Something isn't working

Comments

@bentemple
Copy link

bentemple commented Feb 3, 2025

Describe the bug

When powering the device after powering, device enters boot-loop if setup on a wifi network without internet access

Steps to reproduce

  1. Flash factory firmware to device
  2. Connect device to an isolated wifi network without internet access
  3. Pair device to ESPHome in Home Assistant
  4. Verify device functionality in HA
  5. Unplug and re-plugin device power
  6. Device enters infinite boot-loop

Expected behavior

Device should function normally

Environment

I've tried both the stock 0.4.0 firmware, and the latest 0.1.0-beta0
The wifi network I'm using is setup with a firewall to deny all wan, and all lan requests except for to my HA instance IP address.
I'm using an mDNS reflector which correctly allows other ESPHome devices to connect, chromecasts, and the new voice PE from HA also works and was setup successfully on this isolated wifi network.

Additional context

I flashed the factory image via the ESPHome web installer, connected it to an isolated network with access to my HomeAssistant server
I added the device in the homeassistant ESPHome addon and verified all sensors showed up normally
Unplug power and power again
Device boots up and then is "lost" Lights stay white and you cannot factory reset the device with the button.

[15:54:56]ESP-ROM:esp32s3-20210327
[15:54:56]Build:Mar 27 2021
[15:54:56]rst:0x15 (USB_UART_CHIP_RESET),boot:0xa (SPI_FAST_FLASH_BOOT)
[15:54:56]Saved PC:0x42169a76
[15:54:56]SPIWP:0xee
[15:54:56]mode:DIO, clock div:1
[15:54:56]load:0x3fce3808,len:0x16c4
[15:54:56]load:0x403c9700,len:0xbc0
[15:54:56]load:0x403cc700,len:0x2e90
[15:54:56]entry 0x403c9950
[15:54:56]I (24) boot: ESP-IDF 4.4.8 2nd stage bootloader
[15:54:56]I (24) boot: compile time 15:29:51
[15:54:56]I (25) boot: Multicore bootloader
[15:54:56]I (26) boot: chip revision: v0.2
[15:54:56]I (30) boot.esp32s3: Boot SPI Speed : 80MHz
[15:54:56]I (35) boot.esp32s3: SPI Mode       : DIO
[15:54:56]I (40) boot.esp32s3: SPI Flash Size : 16MB
[15:54:56]I (45) boot: Enabling RNG early entropy source...
[15:54:56]I (50) boot: Partition Table:
[15:54:56]I (54) boot: ## Label            Usage          Type ST Offset   Length
[15:54:56]I (61) boot:  0 otadata          OTA data         01 00 00009000 00002000
[15:54:56]I (68) boot:  1 phy_init         RF data          01 01 0000b000 00001000
[15:54:56]I (76) boot:  2 app0             OTA app          00 10 00010000 007c0000
[15:54:56]I (83) boot:  3 app1             OTA app          00 11 007d0000 007c0000
[15:54:56]I (91) boot:  4 nvs              WiFi data        01 02 00f90000 0006d000
[15:54:56]I (98) boot: End of partition table
[15:54:56]I (102) esp_image: segment 0: paddr=00010020 vaddr=3c170020 size=159790h (1415056) map
[15:54:56]I (365) esp_image: segment 1: paddr=001697b8 vaddr=3fc9d800 size=04974h ( 18804) load
[15:54:56]I (369) esp_image: segment 2: paddr=0016e134 vaddr=40374000 size=01ee4h (  7908) load
[15:54:56]I (372) esp_image: segment 3: paddr=00170020 vaddr=42000020 size=16bf58h (1490776) map
[15:54:57]I (647) esp_image: segment 4: paddr=002dbf80 vaddr=40375ee4 size=17910h ( 96528) load
[15:54:57]I (678) boot: Loaded app from partition at offset 0x10000
[15:54:57]I (678) boot: Disabling RNG early entropy source...
[15:54:57]I (679) cpu_start: Multicore app
[15:54:57]I (682) opi psram: vendor id : 0x0d (AP)
[15:54:57]I (687) opi psram: dev id    : 0x02 (generation 3)
[15:54:57]I (692) opi psram: density   : 0x03 (64 Mbit)
[15:54:57]I (697) opi psram: good-die  : 0x01 (Pass)
[15:54:57]I (702) opi psram: Latency   : 0x01 (Fixed)
[15:54:57]I (707) opi psram: VCC       : 0x01 (3V)
[15:54:57]I (711) opi psram: SRF       : 0x01 (Fast Refresh)
[15:54:57]I (717) opi psram: BurstType : 0x01 (Hybrid Wrap)
[15:54:57]I (722) opi psram: BurstLen  : 0x01 (32 Byte)
[15:54:57]I (727) opi psram: Readlatency  : 0x02 (10 cycles@Fixed)
[15:54:57]I (733) opi psram: DriveStrength: 0x00 (1/1)
[15:54:57]I (739) MSPI Timing: PSRAM timing tuning index: 5
[15:54:57]I (744) spiram: Found 64MBit SPI RAM device
[15:54:57]I (748) spiram: SPI RAM mode: sram 80m
[15:54:57]I (753) spiram: PSRAM initialized, cache is in normal (1-core) mode.
[15:54:57]I (760) cpu_start: Pro cpu up.
[15:54:57]I (764) cpu_start: Starting app cpu, entry point is 0x40377974
[15:54:57]I (0) cpu_start: App cpu up.
[15:54:57]I (1196) spiram: SPI SRAM memory test OK
[15:54:57]I (1205) cpu_start: Pro cpu start user code
[15:54:57]I (1205) cpu_start: cpu freq: 240000000
[15:54:57]I (1205) cpu_start: Application information:
[15:54:57]I (1205) cpu_start: Project name:     satellite1
[15:54:57]I (1206) cpu_start: App version:      2024.12.2
[15:54:57]I (1206) cpu_start: Compile time:     Jan 22 2025 15:25:23
[15:54:57]I (1206) cpu_start: ELF file SHA256:  44ef37612638a0a3...
[15:54:57]I (1206) cpu_start: ESP-IDF:          4.4.8
[15:54:57]I (1206) cpu_start: Min chip rev:     v0.0
[15:54:57]I (1207) cpu_start: Max chip rev:     v0.99 
[15:54:57]I (1207) cpu_start: Chip rev:         v0.2
[15:54:57]I (1207) heap_init: Initializing. RAM available for dynamic allocation:
[15:54:57]I (1207) heap_init: At 3FCA8DE8 len 00040928 (258 KiB): D/IRAM
[15:54:57]I (1207) heap_init: At 3FCE9710 len 00005724 (21 KiB): STACK/DIRAM
[15:54:57]I (1208) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM
[15:54:57]I (1208) heap_init: At 600FE000 len 00002000 (8 KiB): RTCRAM
[15:54:57]I (1208) spiram: Adding pool of 8192K of external SPI memory to heap allocator
[15:54:57]I (1209) spi_flash: detected chip: gd
[15:54:57]I (1209) spi_flash: flash io: dio
[15:54:57]I (1212) sleep: Configure to isolate all GPIO pins in sleep state
[15:54:57]I (1212) sleep: Enable automatic switching of GPIO sleep configuration
[15:54:57]I (1213) coexist: coexist rom version e7ae62f
[15:54:57]I (1213) cpu_start: Starting scheduler on PRO CPU.
[15:54:57]I (0) cpu_start: Starting scheduler on APP CPU.
[15:54:57][W][esp-idf:000]: I (132) gpio: GPIO[45]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 
[15:54:57]
[15:54:57][E][safe_mode:086]: Boot loop detected. Proceeding to safe mode
[15:54:57][E][component:164]: Component safe_mode set Error flag: unspecified
[15:54:58][W][esp-idf:000]: I (2103) pp: pp rom version: e7ae62f
[15:54:58]
[15:54:58][W][esp-idf:000]: I (2104) net80211: net80211 rom version: e7ae62f
[15:54:58]
[15:54:58][W][esp-idf:000]: I (2106) wifi:
[15:54:58][W][esp-idf:000]: wifi driver task: 3fcf78c0, prio:23, stack:6656, core=0
[15:54:58][W][esp-idf:000]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2107) system_api: Base MAC address is not set
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2108) system_api: read default base MAC address from EFUSE
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2111) wifi:
[15:54:58][W][esp-idf:000][wifi]: wifi firmware version: ff661c3
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2112) wifi:
[15:54:58][W][esp-idf:000][wifi]: wifi certification version: v7.0
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2113) wifi:
[15:54:58][W][esp-idf:000][wifi]: config NVS flash: enabled
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2115) wifi:
[15:54:58][W][esp-idf:000][wifi]: config nano formating: disabled
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2116) wifi:
[15:54:58][W][esp-idf:000][wifi]: Init data frame dynamic rx buffer num: 512
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2118) wifi:
[15:54:58][W][esp-idf:000][wifi]: Init static rx mgmt buffer num: 5
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2119) wifi:
[15:54:58][W][esp-idf:000][wifi]: Init management short buffer num: 32
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2120) wifi:
[15:54:58][W][esp-idf:000][wifi]: Init dynamic tx buffer num: 32
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2122) wifi:
[15:54:58][W][esp-idf:000][wifi]: Init tx cache buffer num: 32
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2123) wifi:
[15:54:58][W][esp-idf:000][wifi]: Init static tx FG buffer num: 2
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2125) wifi:
[15:54:58][W][esp-idf:000][wifi]: Init static rx buffer size: 1600
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2126) wifi:
[15:54:58][W][esp-idf:000][wifi]: Init static rx buffer num: 16
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2127) wifi:
[15:54:58][W][esp-idf:000][wifi]: Init dynamic rx buffer num: 512
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000]: I (2129) wifi_init: rx ba win: 16
[15:54:58]
[15:54:58][W][esp-idf:000]: I (2130) wifi_init: tcpip mbox: 32
[15:54:58]
[15:54:58][W][esp-idf:000]: I (2130) wifi_init: udp mbox: 6
[15:54:58]
[15:54:58][W][esp-idf:000]: I (2131) wifi_init: tcp mbox: 18
[15:54:58]
[15:54:58][W][esp-idf:000]: I (2131) wifi_init: tcp tx win: 5760
[15:54:58]
[15:54:58][W][esp-idf:000]: I (2132) wifi_init: tcp rx win: 23360
[15:54:58]
[15:54:58][W][esp-idf:000]: I (2132) wifi_init: tcp mss: 1440
[15:54:58]
[15:54:58][W][esp-idf:000]: I (2133) wifi_init: WiFi/LWIP prefer SPIRAM
[15:54:58]
[15:54:58][W][esp-idf:000]: I (2133) wifi_init: WiFi IRAM OP enabled
[15:54:58]
[15:54:58][W][esp-idf:000]: I (2134) wifi_init: WiFi RX IRAM OP enabled
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2136) phy_init: phy_version 670,b7bc9b9,Apr 30 2024,10:54:13
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2170) wifi:
[15:54:58][W][esp-idf:000][wifi]: mode : sta (d8:3b:da:40:79:e8)
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2172) wifi:
[15:54:58][W][esp-idf:000][wifi]: enable tsf
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2174) wifi:
[15:54:58][W][esp-idf:000][wifi]: Set ps type: 1
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: I (2177) wifi:
[15:54:58][W][esp-idf:000][wifi]: Set ps type 1
[15:54:58]
[15:54:58][W][esp-idf:000][wifi]: 
[15:54:58]
[15:54:58][W][component:157]: Component wifi set Warning flag: scanning for networks
Terminal disconnected: NetworkError: The device has been lost.
@bentemple bentemple added the bug Something isn't working label Feb 3, 2025
@bentemple
Copy link
Author

bentemple commented Feb 4, 2025

Quite possibly user error of course

@gnumpi
Copy link
Collaborator

gnumpi commented Feb 4, 2025

Hey, thanks for reporting! It is probably related to a known issue in ESPhome which causes the device to reboot when a connection timeout occurs. The device checks for firmware updates on startups. I will bump to the newest ESPhome version soon, I think it includes a fix for this issue.
But, your issue reminds me that we need to improve our offline firmware update strategy!

@bentemple
Copy link
Author

bentemple commented Feb 5, 2025

Was just looking into how I could standup the update server docker locally. Doesn't seem that hard but then I have to update the local url etc..

Sounds exactly like that esphome bug. And super excited to hear you thinking about that as good support for local updates will make me (and probably many other HA users) very happy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants