Skip to content

2 Boards keep rebooting randomly on ethernet #87

Description

@woolmonkey

Hello
I have two cast-1 that are running over ethernet.
The both reboot randomly to release the active hotspot.

[05:24:09.452][S][text_sensor]: 'Network Connection' >> 'Ethernet'
[05:24:19.454][S][text_sensor]: 'Network Connection' >> 'Ethernet'
[05:24:29.457][S][text_sensor]: 'Network Connection' >> 'Ethernet'
[05:24:39.459][S][text_sensor]: 'Network Connection' >> 'Ethernet'
[05:24:46.181][I][safe_mode:154]: Boot seems successful; resetting boot loop counter
[05:24:46.760][S][sensor]: 'Uptime' >> 60 s
[05:24:47.674][S][sensor]: 'ESP Temperature' >> 62.9 °C
[05:24:47.842][D][preferences:254]: Writing 2 items: 1 cached, 1 written, 0 failed
[05:24:48.619][W][network:683]: Rebooting to fully release the active hotspot (one-time)
[05:24:48.733][D][esp-idf:000][BTU_TASK]: W (65922) BT_BTM: BTM_BleWriteAdvData, Partial data write into ADV
[05:24:48.734][D][esp-idf:000][BTU_TASK]: W (65923) BT_BTM: BTM_BleWriteScanRsp, Partial data write into ADV
[05:24:49.120][I][app:271]: Rebooting safely
INFO Processing expected disconnect from ESPHome API for kitchen-streamer @ 10.2.10.20
WARNING Disconnected from API
INFO Successfully resolved kitchen-streamer @ 10.2.10.20 in 0.000s

Activity

  1. bharvey88 commented on Sep 24, 2026

    @bharvey88
    Contributor

    Thanks for the report! We shipped a fix for random reboots over Ethernet in 26.9.21.1. The firmware was running low on memory while streaming, and this release frees some up. Which version are your two units on? If they're older, you can update from the CAST-1 installer page. Let us know if the reboots stop.

    If they keep rebooting after the update, please post a log that covers a full reboot, from a few minutes before it until the device is back up.

  2. woolmonkey commented on Sep 25, 2026

    @woolmonkey
    Author

    There are two crashes in here happend fairly close together so just included them in the same log dump. And believe I am running the latest firmware.

    INFO ESPHome 2026.9.0
    INFO Loaded validated config cache for kitchen-music.yaml, skipping validation.
    INFO Starting log output from 10.2.10.20 using esphome API
    INFO Successfully resolved kitchen-streamer @ 10.2.10.20 in 0.000s
    INFO Successfully connected to kitchen-streamer @ 10.2.10.20 in 2.029s
    INFO Successful handshake with kitchen-streamer @ 10.2.10.20 in 0.065s
    [06:24:42.532][I][app:151]: ESPHome version 2026.9.0 compiled on 2026-09-25 06:23:43 -0600
    [06:24:42.532][I][app:153]: Project ApolloAutomation.CAST-1 version 26.9.21.1
    [06:24:42.532][I][app:158]: ESP32 Chip: ESP32-S3 rev0.2, 2 core(s)
    [06:24:42.532][C][logger:216]: Logger:
    [06:24:42.532][C][logger:216]:   Max Level: DEBUG
    [06:24:42.532][C][logger:216]:   Initial Level: DEBUG
    [06:24:42.533][C][logger:223]:   Log Baud Rate: 115200
    [06:24:42.533][C][logger:223]:   Hardware UART: USB_SERIAL_JTAG
    [06:24:42.534][C][logger:232]:   Task Log Buffer Size: 768 bytes
    [06:24:42.534][C][logger:238]:   Level for 'sendspin': INFO
    [06:24:42.534][C][logger:238]:   Level for 'speaker_mixer': WARN
    [06:24:42.552][C][i2c:092]: I2C Bus:
    [06:24:42.553][C][i2c:093]:   SDA Pin: GPIO47
    [06:24:42.553][C][i2c:093]:   SCL Pin: GPIO48
    [06:24:42.553][C][i2c:093]:   Frequency: 50000 Hz
    [06:24:42.553][C][i2c:103]:   Recovery: bus successfully recovered
    [06:24:42.553][C][i2c:113]: Results from bus scan:
    [06:24:42.554][C][i2c:119]: Found device at address 0x4D
    [06:24:42.572][C][pcm5122:114]: Audio DAC:
    [06:24:42.573][C][pcm5122:115]:   Address: 0x4D
    [06:24:42.573][C][pcm5122:116]:   Bits per sample: 16
    [06:24:42.573][C][pcm5122:116]:   Analog gain: 0 dB
    [06:24:42.573][C][pcm5122:116]:   Channel mix: stereo
    [06:24:42.573][C][pcm5122:116]:   Volume range: -52.5 dB to 0.0 dB
    [06:24:42.573][C][pcm5122:116]:   Muted: YES
    [06:24:42.594][C][template.select:010]: Template Select 'WizMote On'
    [06:24:42.594][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:24:42.594][C][template.select:014]:   Optimistic: YES
    [06:24:42.594][C][template.select:014]:   Initial Option: Play
    [06:24:42.594][C][template.select:014]:   Restore Value: YES
    [06:24:42.611][C][template.select:010]: Template Select 'WizMote Off'
    [06:24:42.611][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:24:42.611][C][template.select:014]:   Optimistic: YES
    [06:24:42.611][C][template.select:014]:   Initial Option: Pause
    [06:24:42.611][C][template.select:014]:   Restore Value: YES
    [06:24:42.611][C][template.select:010]: Template Select 'WizMote Night'
    [06:24:42.612][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:24:42.614][C][template.select:014]:   Optimistic: YES
    [06:24:42.614][C][template.select:014]:   Initial Option: Toggle Light
    [06:24:42.614][C][template.select:014]:   Restore Value: YES
    [06:24:42.618][C][template.select:010]: Template Select 'WizMote Brightness Up'
    [06:24:42.636][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:24:42.636][C][template.select:014]:   Optimistic: YES
    [06:24:42.636][C][template.select:014]:   Initial Option: Volume Up
    [06:24:42.636][C][template.select:014]:   Restore Value: YES
    [06:24:42.636][C][template.select:010]: Template Select 'WizMote Brightness Down'
    [06:24:42.637][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:24:42.639][C][template.select:014]:   Optimistic: YES
    [06:24:42.639][C][template.select:014]:   Initial Option: Volume Down
    [06:24:42.639][C][template.select:014]:   Restore Value: YES
    [06:24:42.656][C][template.select:010]: Template Select 'WizMote Button 1'
    [06:24:42.659][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:24:42.659][C][template.select:014]:   Optimistic: YES
    [06:24:42.659][C][template.select:014]:   Initial Option: Previous Track
    [06:24:42.659][C][template.select:014]:   Restore Value: YES
    [06:24:42.676][C][template.select:010]: Template Select 'WizMote Button 2'
    [06:24:42.694][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:24:42.694][C][template.select:014]:   Optimistic: YES
    [06:24:42.694][C][template.select:014]:   Initial Option: Next Track
    [06:24:42.694][C][template.select:014]:   Restore Value: YES
    [06:24:42.694][C][template.select:010]: Template Select 'WizMote Button 3'
    [06:24:42.695][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:24:42.713][C][template.select:014]:   Optimistic: YES
    [06:24:42.713][C][template.select:014]:   Initial Option: Send HA Event
    [06:24:42.713][C][template.select:014]:   Restore Value: YES
    [06:24:42.713][C][template.select:010]: Template Select 'WizMote Button 4'
    [06:24:42.713][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:24:42.714][C][template.select:014]:   Optimistic: YES
    [06:24:42.714][C][template.select:014]:   Initial Option: Send HA Event
    [06:24:42.714][C][template.select:014]:   Restore Value: YES
    [06:24:42.732][C][template.select:010]: Template Select 'Firmware Channel'
    [06:24:42.732][C][template.select:156]:   Icon: 'mdi:source-branch'
    [06:24:42.732][C][template.select:014]:   Optimistic: YES
    [06:24:42.732][C][template.select:014]:   Initial Option: Stable
    [06:24:42.732][C][template.select:014]:   Restore Value: YES
    [06:24:42.750][C][template.text_sensor:016]: Template Sensor 'WizMote Status'
    [06:24:42.767][C][template.text_sensor:156]:   Icon: 'mdi:information'
    [06:24:42.767][C][template.text_sensor:016]: Template Sensor 'Network Connection'
    [06:24:42.767][C][template.text_sensor:156]:   Icon: 'mdi:network'
    [06:24:42.785][C][template.text_sensor:016]: Template Sensor 'Apollo Firmware Version'
    [06:24:42.802][C][gpio.binary_sensor:016]: GPIO Binary Sensor 'reset_button'
    [06:24:42.802][C][gpio.binary_sensor:131]:   Pin: GPIO0
    [06:24:42.802][C][gpio.binary_sensor:068]:   Mode: interrupt
    [06:24:42.803][C][gpio.binary_sensor:070]:   Interrupt Type: ANY_EDGE
    [06:24:42.820][C][uptime.sensor:017]: Uptime Sensor 'Uptime'
    [06:24:42.820][C][uptime.sensor:017]:   State Class: 'total_increasing'
    [06:24:42.820][C][uptime.sensor:017]:   Unit of Measurement: 's'
    [06:24:42.820][C][uptime.sensor:017]:   Accuracy Decimals: 0
    [06:24:42.820][C][uptime.sensor:165]:   Device Class: 'duration'
    [06:24:42.820][C][uptime.sensor:156]:   Icon: 'mdi:timer-outline'
    [06:24:42.821][C][uptime.sensor:019]:   Type: Seconds
    [06:24:42.839][C][esp32_rmt_led_strip:235]: ESP32 RMT LED Strip:
    [06:24:42.839][C][esp32_rmt_led_strip:235]:   Pin: 4
    [06:24:42.839][C][esp32_rmt_led_strip:239]:   RMT Symbols: 192
    [06:24:42.839][C][esp32_rmt_led_strip:241]:   Channel colors: GRB
    [06:24:42.839][C][esp32_rmt_led_strip:241]:   Max refresh rate: 0
    [06:24:42.839][C][esp32_rmt_led_strip:241]:   Number of LEDs: 4
    [06:24:42.889][S][update]: 'Firmware Update' >>
    [06:24:42.889][S][update]:   Current Version: 26.9.21.1
    [06:24:42.889][S][update]:   Latest Version: 26.9.21.1
    [06:24:42.922][C][template.text:062]: Template Text Input 'WizMote MAC Address'
    [06:24:42.922][C][template.text:156]:   Icon: 'mdi:remote'
    [06:24:42.923][C][template.text:063]:   Optimistic: YES
    [06:24:42.923][C][template.text:340]:   Update Interval: 60.000s
    [06:24:42.925][C][light:101]: Light 'RGB Light'
    [06:24:42.940][C][light:104]:   Default Transition Length: 0.0s
    [06:24:42.940][C][light:104]:   Gamma Correct: 2.80
    [06:24:42.940][C][template.switch:086]: Template Switch 'WizMote Auto-Discovery'
    [06:24:42.940][C][template.switch:086]:   Restore Mode: always OFF
    [06:24:42.940][C][template.switch:156]:   Icon: 'mdi:radar'
    [06:24:42.941][C][template.switch:055]:   Optimistic: YES
    [06:24:42.958][C][template.switch:086]: Template Switch 'Bluetooth Proxy'
    [06:24:42.958][C][template.switch:086]:   Restore Mode: restore defaults to OFF
    [06:24:42.958][C][template.switch:156]:   Icon: 'mdi:bluetooth'
    [06:24:42.958][C][template.switch:055]:   Optimistic: YES
    [06:24:42.976][C][restart.button:014]: Restart Button 'ESP Reboot'
    [06:24:42.993][C][restart.button:156]:   Icon: 'mdi:power-cycle'
    [06:24:42.993][C][factory_reset.switch:086]: Factory Reset Switch 'Factory Reset ESP'
    [06:24:42.993][C][factory_reset.switch:086]:   Restore Mode: always OFF
    [06:24:42.993][C][factory_reset.switch:156]:   Icon: 'mdi:restart-alert'
    [06:24:43.011][C][factory_reset.switch:086]: Factory Reset Switch 'factory_reset_switch'
    [06:24:43.011][C][factory_reset.switch:086]:   Restore Mode: always OFF
    [06:24:43.044][C][factory_reset.switch:156]:   Icon: 'mdi:restart-alert'
    [06:24:43.044][C][ethernet_info:016]: EthernetInfo IPAddress 'Ethernet IP Address'
    [06:24:43.044][C][wifi_info:016]: IP Address 'WiFi IP Address'
    [06:24:43.061][C][version.text_sensor:016]: Version Text Sensor 'ESPHome Version'
    [06:24:43.103][C][version.text_sensor:156]:   Icon: 'mdi:new-box'
    [06:24:43.110][C][bluetooth_proxy:172]: Bluetooth Proxy:
    [06:24:43.110][C][bluetooth_proxy:172]:   Active: YES
    [06:24:43.110][C][bluetooth_proxy:172]:   Connections: 3
    [06:24:43.110][C][bluetooth_proxy:172]:   Configured scan: active
    [06:24:43.110][C][bluetooth_proxy:172]:   Adapter MAC: 44:B1:76:DA:3E:92
    [06:24:43.128][C][psram:015]: PSRAM:
    [06:24:43.129][C][psram:018]:   Available: YES
    [06:24:43.130][C][psram:020]:   Size: 8192 KB
    [06:24:43.148][C][status:016]: Status Binary Sensor 'Online'
    [06:24:43.149][C][status:165]:   Device Class: 'connectivity'
    [06:24:43.157][C][internal_temperature:017]: Internal Temperature Sensor 'ESP Temperature'
    [06:24:43.157][C][internal_temperature:017]:   State Class: 'measurement'
    [06:24:43.157][C][internal_temperature:017]:   Unit of Measurement: '°C'
    [06:24:43.157][C][internal_temperature:017]:   Accuracy Decimals: 1
    [06:24:43.159][C][internal_temperature:165]:   Device Class: 'temperature'
    [06:24:43.215][C][resampler_speaker:050]: Resampler Speaker:
    [06:24:43.215][C][resampler_speaker:050]:   Target Bits Per Sample: 16
    [06:24:43.215][C][resampler_speaker:050]:   Target Sample Rate: 48000 Hz
    [06:24:43.232][C][resampler_speaker:050]: Resampler Speaker:
    [06:24:43.232][C][resampler_speaker:050]:   Target Bits Per Sample: 16
    [06:24:43.232][C][resampler_speaker:050]:   Target Sample Rate: 48000 Hz
    [06:24:43.249][C][audio_http_media_source:030]: Audio HTTP Media Source:
    [06:24:43.249][C][audio_http_media_source:030]:   Buffer Size: 500000 bytes
    [06:24:43.249][C][audio_http_media_source:030]:   Persistent Ring Buffer: NO
    [06:24:43.249][C][audio_http_media_source:030]:   Decoder Task Stack in PSRAM: NO
    [06:24:43.267][C][audio_http_media_source:030]: Audio HTTP Media Source:
    [06:24:43.267][C][audio_http_media_source:030]:   Buffer Size: 250000 bytes
    [06:24:43.267][C][audio_http_media_source:030]:   Persistent Ring Buffer: NO
    [06:24:43.267][C][audio_http_media_source:030]:   Decoder Task Stack in PSRAM: NO
    [06:24:43.268][S][sensor]: 'Uptime' >> 3 s
    [06:24:43.269][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:24:43.526][C][i2s_audio.speaker:043]: Speaker:
    [06:24:43.526][C][i2s_audio.speaker:043]:   Pin: 9
    [06:24:43.526][C][i2s_audio.speaker:043]:   Buffer duration: 100
    [06:24:43.527][C][i2s_audio.speaker.std:067]:   Communication format: std
    [06:24:43.528][C][i2s_audio.speaker.std:072]:   Slot bit width: 16
    [06:24:43.545][C][speaker_source_media_player:053]: Speaker Source Media Player:
    [06:24:43.545][C][speaker_source_media_player:053]:   Volume Increment: 0.05
    [06:24:43.545][C][speaker_source_media_player:053]:   Volume Min: 0.00
    [06:24:43.545][C][speaker_source_media_player:053]:   Volume Max: 1.00
    [06:24:43.563][C][esp32_ble:770]: BLE:
    [06:24:43.563][C][esp32_ble:770]:   MAC address: 44:B1:76:DA:3E:92
    [06:24:43.563][C][esp32_ble:770]:   IO Capability: none
    [06:24:43.569][C][esp32_ble_server:259]: ESP32 BLE Server:
    [06:24:43.569][C][esp32_ble_server:259]:   Max clients: 1
    [06:24:43.581][C][network:050]: Network:
    [06:24:43.581][C][network:050]:   TCP send buffer: 65534 bytes
    [06:24:43.588][C][esp32_improv.component:341]: ESP32 Improv:
    [06:24:43.598][C][esp32_ble_tracker:453]: BLE Tracker:
    [06:24:43.599][C][esp32_ble_tracker:454]:   Scan Duration: 300 s
    [06:24:43.599][C][esp32_ble_tracker:454]:   Scan Interval: 320.0 ms
    [06:24:43.599][C][esp32_ble_tracker:454]:   Scan Window: 320.0 ms
    [06:24:43.599][C][esp32_ble_tracker:454]:   Scan Type: ACTIVE
    [06:24:43.599][C][esp32_ble_tracker:454]:   Continuous Scanning: NO
    [06:24:43.601][C][esp32_ble_tracker:464]:   Connection Scan Window: 30.0 ms
    [06:24:43.602][C][esp32_ble_tracker:467]:   Scanner State: IDLE
    [06:24:43.602][C][esp32_ble_tracker:467]:   Connecting: 0, discovered: 0, disconnecting: 0, active: 0
    [06:24:43.620][C][bluetooth_connection:099]: Bluedroid GATT client 0
    [06:24:43.637][C][bluetooth_connection:099]: Bluedroid GATT client 1
    [06:24:43.654][C][bluetooth_connection:099]: Bluedroid GATT client 2
    [06:24:43.671][C][captive_portal:162]: Captive Portal:
    [06:24:43.688][C][ethernet:584]: Ethernet:
    [06:24:43.688][C][ethernet:584]:   Connected: YES
    [06:24:43.689][C][ethernet:904]:   IP Address: 10.2.10.20
    [06:24:43.689][C][ethernet:904]:   Hostname: 'kitchen-streamer'
    [06:24:43.689][C][ethernet:904]:   Subnet: 255.255.255.0
    [06:24:43.689][C][ethernet:904]:   Gateway: 10.2.10.1
    [06:24:43.689][C][ethernet:904]:   DNS1: 10.2.10.10
    [06:24:43.689][C][ethernet:904]:   DNS2: 0.0.0.0
    [06:24:43.689][C][ethernet:904]:   MAC Address: 44:B1:76:DA:3E:93
    [06:24:43.689][C][ethernet:904]:   Is Full Duplex: YES
    [06:24:43.689][C][ethernet:904]:   Link Speed: 100
    [06:24:43.691][C][ethernet:597]:   CLK Pin: 7
    [06:24:43.691][C][ethernet:597]:   MISO Pin: 11
    [06:24:43.691][C][ethernet:597]:   MOSI Pin: 12
    [06:24:43.691][C][ethernet:597]:   CS Pin: 6
    [06:24:43.692][C][ethernet:607]:   Interface: spi2
    [06:24:43.693][C][ethernet:615]:   IRQ Pin: 13
    [06:24:43.694][C][ethernet:617]:   Reset Pin: 21
    [06:24:43.694][C][ethernet:617]:   Clock Speed: 40 MHz
    [06:24:43.696][C][ethernet:632]:   Type: W5500
    [06:24:43.697][S][sensor]: 'ESP Temperature' >> 58.9 °C
    [06:24:43.714][C][web_server:418]: Web Server:
    [06:24:43.714][C][web_server:418]:   Address: 10.2.10.20:80
    [06:24:43.731][C][wifi:1582]: WiFi:
    [06:24:43.731][C][wifi:1582]:   Local MAC: 44:B1:76:DA:3E:90
    [06:24:43.731][C][wifi:1582]:   Connected: NO
    [06:24:43.732][C][wifi:1588]:   Disabled
    [06:24:43.750][C][esphome.ota:113]: Over-The-Air updates:
    [06:24:43.750][C][esphome.ota:113]:   Address: 10.2.10.20:3232
    [06:24:43.750][C][esphome.ota:113]:   Version: 2
    [06:24:43.750][C][esphome.ota:113]:   Encryption: offered, plaintext accepted
    [06:24:43.768][C][safe_mode:058]: Safe Mode:
    [06:24:43.768][C][safe_mode:058]:   Successful after: 60s
    [06:24:43.768][C][safe_mode:058]:   Invoke after: 10 attempts
    [06:24:43.768][C][safe_mode:058]:   Duration: 300s
    [06:24:43.769][C][safe_mode:079]:   Bootloader rollback: supported
    [06:24:43.787][C][http_request.ota:016]: Over-The-Air updates via HTTP request
    [06:24:43.804][C][web_server.ota:256]: Web Server OTA
    [06:24:43.821][C][api:271]: Server:
    [06:24:43.821][C][api:271]:   Address: 10.2.10.20:6053
    [06:24:43.821][C][api:271]:   Listen backlog: 4
    [06:24:43.821][C][api:271]:   Max connections: 5
    [06:24:43.822][C][api:278]:   Noise encryption: YES
    [06:24:43.840][C][improv_serial:085]: Improv Serial:
    [06:24:43.857][C][http_request:012]: HTTP Request:
    [06:24:43.857][C][http_request:012]:   Timeout: 4500ms
    [06:24:43.857][C][http_request:012]:   User-Agent: ESPHome/2026.9.0 (https://esphome.io)
    [06:24:43.857][C][http_request:012]:   Follow redirects: YES
    [06:24:43.857][C][http_request:012]:   Redirect limit: 3
    [06:24:43.859][C][http_request:020]:   Watchdog Timeout: 14500ms
    [06:24:43.860][C][http_request:024]:   Buffer Size RX: 5120
    [06:24:43.860][C][http_request:024]:   Buffer Size TX: 2048
    [06:24:43.860][C][http_request:024]:   Custom CA Certificate: NO
    [06:24:43.878][C][sendspin.hub:076]: Sendspin Hub:
    [06:24:43.878][C][sendspin.hub:076]:   Client ID: 44:B1:76:DA:3E:93
    [06:24:43.878][C][sendspin.hub:076]:   Task stack in PSRAM: NO
    [06:24:43.926][C][sendspin.text_sensor:016]: Sendspin 'Track Title'
    [06:24:43.944][C][sendspin.text_sensor:016]: Sendspin 'Artist'
    [06:24:43.961][C][sendspin.text_sensor:016]: Sendspin 'Album'
    [06:24:43.970][C][sendspin.media_source:031]: Sendspin Media Source: static_delay_adjustable=NO
    [06:24:43.978][C][sendspin.media_player:173]: Sendspin Media Player: volume_increment=0.05
    [06:24:43.996][C][mdns:259]: mDNS:
    [06:24:43.996][C][mdns:259]:   Hostname: kitchen-streamer
    [06:24:44.028][C][espnow:132]: espnow:
    [06:24:44.030][C][espnow:145]:   Own address: 44:B1:76:DA:3E:90
    [06:24:44.030][C][espnow:145]:   Version: v2
    [06:24:44.030][C][espnow:145]:   Wi-Fi channel: 1
    [06:24:44.031][C][espnow:151]:   Wi-Fi enabled: NO
    [06:24:44.032][D][api:255]: Accept 10.2.10.103
    [06:24:44.057][D][api.connection:2669]: Home Assistant 2026.9.3 (10.2.10.103): connected
    [06:24:44.077][S][text_sensor]: 'WizMote Status' >> 'No WizMote paired'
    [06:24:44.171][D][bluetooth_proxy:567]: Setting scanner mode to passive
    [06:24:47.040][S][light]: 'RGB Light' >> ON
    [06:24:47.040][S][light]:   Brightness: 100%
    [06:24:47.040][S][light]:   Red: 0%, Green: 100%, Blue: 0%
    [06:24:47.040][S][light]:   Effect: 'None'
    [06:24:52.036][S][light]: 'RGB Light' >> OFF
    [06:24:53.270][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:25:01.526][D][esp-idf:000][httpd]: D (21681) sendspin.ws_server: New client connection on socket 51
    [06:25:01.531][D][esp-idf:000][httpd]: D (21683) sendspin.ws_server: WebSocket upgrade complete on socket 51, delivering connection
    [06:25:01.532][D][esp-idf:000][httpd]: D (21684) sendspin.conn_mgr: Admitting new connection into the nursery
    [06:25:01.533][D][esp-idf:000][httpd]: D (26299) sendspin.client: Connected to server Music Assistant (d5369777-music-assistant) with id LaxUQD1XdiwvN72_DggGnoxzOjJRnWoO_5-Kdt7IYVY (reason: discovery)
    [06:25:01.535][D][esp-idf:000]: I (26305) sendspin.conn_mgr: Connection handshake complete: server_id=LaxUQD1XdiwvN72_DggGnoxzOjJRnWoO_5-Kdt7IYVY, connection_reason=discovery
    [06:25:01.545][D][esp-idf:000][httpd]: D (26311) sendspin.client: Stream Started
    [06:25:01.556][D][esp-idf:000][Sendspin]: I (26314) sendspin.sync_task: Processed new codec header: flac, 48000 Hz, 2 ch, 16-bit
    [06:25:01.571][D][sendspin.media_source:069]: sendspin_id: current
    [06:25:01.575][D][speaker_source_media_player:285]: State changed to PLAYING
    [06:25:01.604][D][ring_buffer:035]: Created ring buffer with size 19200
    [06:25:01.639][D][i2s_audio.speaker:070]: Starting
    [06:25:01.641][D][ring_buffer:035][speaker_task]: Created ring buffer with size 19200
    [06:25:01.674][S][media_player]: 'Player' >> PLAYING
    [06:25:01.674][S][media_player]:   Volume: 100%
    [06:25:02.444][D][sendspin.media_player:069]: State changed to PLAYING
    [06:25:02.446][D][sendspin.hub:181]: Persisted last played server hash: 0xF3E263C5
    [06:25:02.588][D][esp-idf:000]: D (27216) sendspin.client: Persisted last played server: LaxUQD1XdiwvN72_DggGnoxzOjJRnWoO_5-Kdt7IYVY (hash: 0xF3E263C5)
    [06:25:02.588][D][esp-idf:000]: D (27216) sendspin.client: Group update - state: playing, id: 5b11589d-e07f-40f3-8a2e-258ab8ee1498, name: 
    [06:25:02.588][S][media_player]: 'Sendspin Player' >> PLAYING
    [06:25:02.588][S][media_player]:   Volume: 100%
    [06:25:02.768][S][text_sensor]: 'Track Title' >> '-'
    [06:25:02.769][S][text_sensor]: 'Album' >> 'CJLD-FM 93.1 The One'
    [06:25:03.266][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:25:13.268][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:25:23.271][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:25:30.114][D][esp-idf:000][w5500_tsk]: E (54883) w5500.mac: no mem for receive buffer
    INFO Processing unexpected disconnect from ESPHome API for kitchen-streamer @ 10.2.10.20
    WARNING Disconnected from API
    INFO Successfully resolved kitchen-streamer @ 10.2.10.20 in 0.000s
    INFO Successfully connected to kitchen-streamer @ 10.2.10.20 in 0.001s
    INFO Successful handshake with kitchen-streamer @ 10.2.10.20 in 0.032s
    [06:26:02.668][E][esp32.crash:432]: *** CRASH DETECTED ON PREVIOUS BOOT ***
    [06:26:02.669][E][esp32.crash:437]:   Reason: Abort
    [06:26:02.669][E][esp32.crash:439]:   Crashed core: 1
    [06:26:02.669][E][esp32.crash:406]:   Captured by a different firmware build; addresses belong to that build's ELF
    [06:26:02.670][E][esp32.crash:407]:   pc: 0x40385A94
    [06:26:02.670][E][esp32.crash:400]:   bt0: 0x40385A91
    [06:26:02.671][E][esp32.crash:400]:   bt1: 0x40385A59
    [06:26:02.671][E][esp32.crash:400]:   bt2: 0x4038A089
    [06:26:02.672][E][esp32.crash:400]:   bt3: 0x420D6462
    [06:26:02.673][E][esp32.crash:400]:   bt4: 0x420CC9E5
    [06:26:02.673][E][esp32.crash:400]:   bt5: 0x420D6A3F
    [06:26:02.673][E][esp32.crash:400]:   bt6: 0x420D6CC5
    [06:26:02.674][E][esp32.crash:400]:   bt7: 0x420D6D11
    [06:26:02.674][E][esp32.crash:400]:   bt8: 0x420CBA9C
    [06:26:02.675][E][esp32.crash:400]:   bt9: 0x420CBB62
    [06:26:02.675][E][esp32.crash:400]:   bt10: 0x42039ADF
    [06:26:02.676][E][esp32.crash:400]:   bt11: 0x4203867D
    [06:26:02.677][E][esp32.crash:400]:   bt12: 0x42038BF1
    [06:26:02.677][E][esp32.crash:400]:   bt13: 0x42039561
    [06:26:02.677][E][esp32.crash:400]:   bt14: 0x4201656C
    [06:26:02.678][E][esp32.crash:400]:   bt15: 0x4200C993
    [06:26:04.741][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:26:14.729][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:26:24.732][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:26:34.157][I][safe_mode:154]: Boot seems successful; resetting boot loop counter
    [06:26:34.734][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:26:34.845][D][preferences:254]: Writing 2 items: 1 cached, 1 written, 0 failed
    [06:26:37.377][S][sensor]: 'ESP Temperature' >> 58.9 °C
    [06:26:39.170][S][sensor]: 'Uptime' >> 65 s
    [06:26:44.742][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:26:54.728][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:27:04.733][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:27:14.734][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:27:24.736][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:27:34.737][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:27:37.378][S][sensor]: 'ESP Temperature' >> 58.9 °C
    [06:27:39.172][S][sensor]: 'Uptime' >> 125 s
    [06:27:44.728][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:27:54.731][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:28:04.735][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:28:14.737][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:28:24.741][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:28:34.743][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:28:37.370][S][sensor]: 'ESP Temperature' >> 58.9 °C
    [06:28:39.163][S][sensor]: 'Uptime' >> 185 s
    [06:28:44.735][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:28:54.738][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:29:04.742][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:29:14.744][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:29:24.730][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:29:34.732][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:29:37.374][S][sensor]: 'ESP Temperature' >> 58.9 °C
    [06:29:39.168][S][sensor]: 'Uptime' >> 245 s
    [06:29:44.740][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:29:54.742][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:30:04.731][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:30:14.242][D][bluetooth_proxy:567]: Setting scanner mode to active
    [06:30:14.739][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:30:24.741][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:30:29.243][D][bluetooth_proxy:567]: Setting scanner mode to passive
    [06:30:34.733][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:30:34.959][S][text_sensor]: 'WizMote Status' >> 'No WizMote paired'
    [06:30:37.377][S][sensor]: 'ESP Temperature' >> 58.9 °C
    [06:30:39.171][S][sensor]: 'Uptime' >> 305 s
    [06:30:44.741][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    Reconnected to the dashboard; resuming logs…
    INFO ESPHome 2026.9.0
    INFO Loaded validated config cache for kitchen-music.yaml, skipping validation.
    INFO Starting log output from 10.2.10.20 using esphome API
    INFO Successfully resolved kitchen-streamer @ 10.2.10.20 in 0.000s
    INFO Successfully connected to kitchen-streamer @ 10.2.10.20 in 0.001s
    INFO Successful handshake with kitchen-streamer @ 10.2.10.20 in 0.059s
    [06:32:53.290][E][esp32.crash:432]: *** CRASH DETECTED ON PREVIOUS BOOT ***
    [06:32:53.424][E][esp32.crash:437]:   Reason: Abort
    [06:32:53.424][E][esp32.crash:439]:   Crashed core: 1
    [06:32:53.425][E][esp32.crash:406]:   Captured by a different firmware build; addresses belong to that build's ELF
    [06:32:53.425][E][esp32.crash:407]:   pc: 0x40385A94
    WARNING Decoded against a local build that no longer matches the firmware running on the device, so these frames may name the wrong lines.
    WARNING Decoded 0x40385a94: panic_abort at /COMPONENT_ESP_SYSTEM_DIR/panic.c:489
    [06:32:53.425][E][esp32.crash:400]:   bt0: 0x40385A91
    WARNING Decoded 0x40385a91: panic_abort at /COMPONENT_ESP_SYSTEM_DIR/panic.c:477
    [06:32:53.425][E][esp32.crash:400]:   bt1: 0x40385A59
    WARNING Decoded 0x40385a59: esp_system_abort at /COMPONENT_ESP_SYSTEM_DIR/port/esp_system_chip.c:87
    [06:32:53.425][E][esp32.crash:400]:   bt2: 0x4038A089
    WARNING Decoded 0x4038a089: __assert_func at /COMPONENT_NEWLIB_DIR/src/assert.c:81
    [06:32:53.425][E][esp32.crash:400]:   bt3: 0x420D6462
    WARNING Decoded 0x420d6462: sys_mutex_unlock at /COMPONENT_LWIP_DIR/port/freertos/sys_arch.c:79
    WARNING Decoded 0x420d6462: sys_mutex_unlock at /COMPONENT_LWIP_DIR/port/freertos/sys_arch.c:75
    [06:32:53.425][E][esp32.crash:400]:   bt4: 0x420CC9E5
    WARNING Decoded 0x420cc9e5: tcpip_send_msg_wait_sem at /COMPONENT_LWIP_DIR/lwip/src/api/tcpip.c:448
    [06:32:53.425][E][esp32.crash:400]:   bt5: 0x420D6A3F
    WARNING Decoded 0x420d6a3f: netconn_apimsg at /COMPONENT_LWIP_DIR/lwip/src/api/api_lib.c:134
    [06:32:53.425][E][esp32.crash:400]:   bt6: 0x420D6CC5
    WARNING Decoded 0x420d6cc5: netconn_write_vectors_partly at /COMPONENT_LWIP_DIR/lwip/src/api/api_lib.c:1067
    [06:32:53.425][E][esp32.crash:400]:   bt7: 0x420D6D11
    WARNING Decoded 0x420d6d11: netconn_write_partly at /COMPONENT_LWIP_DIR/lwip/src/api/api_lib.c:983
    [06:32:53.425][E][esp32.crash:400]:   bt8: 0x420CBA9C
    WARNING Decoded 0x420cba9c: lwip_send at /COMPONENT_LWIP_DIR/lwip/src/api/sockets.c:1457
    [06:32:53.425][E][esp32.crash:400]:   bt9: 0x420CBB62
    WARNING Decoded 0x420cbb62: lwip_write at /COMPONENT_LWIP_DIR/lwip/src/api/sockets.c:1793
    [06:32:53.425][E][esp32.crash:400]:   bt10: 0x42039ADF
    WARNING Decoded 0x42039adf: esphome::socket::BSDSocketImpl::write(void const*, unsigned int) at /IDF_BUILD/../src/esphome/components/socket/bsd_sockets_impl.h:107
    WARNING Decoded 0x42039adf: esphome::api::APIFrameHelper::write_raw_fast_buf_(void const*, unsigned short) at /IDF_BUILD/../src/esphome/components/api/api_frame_helper.h:248
    WARNING Decoded 0x42039adf: esphome::api::APINoiseFrameHelper::write_protobuf_packet(unsigned short, esphome::api::ProtoWriteBuffer) at /IDF_BUILD/../src/esphome/components/api/api_frame_helper_noise.cpp:502
    [06:32:53.425][E][esp32.crash:400]:   bt11: 0x4203867D
    WARNING Decoded 0x4203867d: esphome::api::APIConnection::send_buffer(esphome::api::ProtoWriteBuffer, unsigned short) at /IDF_BUILD/../src/esphome/components/api/api_connection.cpp:2281
    [06:32:53.425][E][esp32.crash:400]:   bt12: 0x42038BF1
    WARNING Decoded 0x42038bf1: esphome::api::APIConnection::process_batch_() at /IDF_BUILD/../src/esphome/components/api/api_connection.cpp:2392
    WARNING Decoded 0x42038bf1: esphome::api::APIConnection::process_batch_() at /IDF_BUILD/../src/esphome/components/api/api_connection.cpp:2343
    [06:32:53.425][E][esp32.crash:400]:   bt13: 0x42039561
    WARNING Decoded 0x42039561: esphome::api::APIConnection::loop() at /IDF_BUILD/../src/esphome/components/api/api_connection.cpp:318
    [06:32:53.425][E][esp32.crash:400]:   bt14: 0x4201656C
    WARNING Decoded 0x4201656c: esphome::api::APIServer::loop() at /IDF_BUILD/../src/esphome/components/api/api_server.cpp:178
    [06:32:53.425][E][esp32.crash:400]:   bt15: 0x4200C993
    WARNING Decoded 0x4200c993: esphome::Application::loop() at /IDF_BUILD/../src/esphome/core/application.h:743
    WARNING Decoded 0x4200c993: esphome::loop_task(void*) at /IDF_BUILD/../src/esphome/components/esp32/core.cpp:28
    [06:32:53.425][I][app:151]: ESPHome version 2026.9.0 compiled on 2026-09-25 06:11:12 -0600
    [06:32:53.425][I][app:153]: Project ApolloAutomation.CAST-1 version 26.9.21.1
    [06:32:53.425][I][app:158]: ESP32 Chip: ESP32-S3 rev0.2, 2 core(s)
    [06:32:53.425][C][logger:216]: Logger:
    [06:32:53.425][C][logger:216]:   Max Level: DEBUG
    [06:32:53.425][C][logger:216]:   Initial Level: DEBUG
    [06:32:53.426][C][logger:223]:   Log Baud Rate: 115200
    [06:32:53.426][C][logger:223]:   Hardware UART: USB_SERIAL_JTAG
    [06:32:53.426][C][logger:232]:   Task Log Buffer Size: 768 bytes
    [06:32:53.426][C][logger:238]:   Level for 'sendspin': INFO
    [06:32:53.426][C][logger:238]:   Level for 'speaker_mixer': WARN
    [06:32:53.426][C][i2c:092]: I2C Bus:
    [06:32:53.426][C][i2c:093]:   SDA Pin: GPIO47
    [06:32:53.426][C][i2c:093]:   SCL Pin: GPIO48
    [06:32:53.426][C][i2c:093]:   Frequency: 50000 Hz
    [06:32:53.426][C][i2c:103]:   Recovery: bus successfully recovered
    [06:32:53.426][C][i2c:113]: Results from bus scan:
    [06:32:53.426][C][i2c:119]: Found device at address 0x4D
    [06:32:53.426][C][pcm5122:114]: Audio DAC:
    [06:32:53.426][C][pcm5122:115]:   Address: 0x4D
    [06:32:53.426][C][pcm5122:116]:   Bits per sample: 16
    [06:32:53.426][C][pcm5122:116]:   Analog gain: 0 dB
    [06:32:53.426][C][pcm5122:116]:   Channel mix: stereo
    [06:32:53.426][C][pcm5122:116]:   Volume range: -52.5 dB to 0.0 dB
    [06:32:53.426][C][pcm5122:116]:   Muted: NO
    [06:32:53.426][C][template.select:010]: Template Select 'WizMote On'
    [06:32:53.427][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:32:53.427][C][template.select:014]:   Optimistic: YES
    [06:32:53.427][C][template.select:014]:   Initial Option: Play
    [06:32:53.427][C][template.select:014]:   Restore Value: YES
    [06:32:53.427][C][template.select:010]: Template Select 'WizMote Off'
    [06:32:53.427][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:32:53.427][C][template.select:014]:   Optimistic: YES
    [06:32:53.427][C][template.select:014]:   Initial Option: Pause
    [06:32:53.427][C][template.select:014]:   Restore Value: YES
    [06:32:53.427][C][template.select:010]: Template Select 'WizMote Night'
    [06:32:53.427][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:32:53.427][C][template.select:014]:   Optimistic: YES
    [06:32:53.427][C][template.select:014]:   Initial Option: Toggle Light
    [06:32:53.427][C][template.select:014]:   Restore Value: YES
    [06:32:53.429][C][template.select:010]: Template Select 'WizMote Brightness Up'
    [06:32:53.432][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:32:53.432][C][template.select:014]:   Optimistic: YES
    [06:32:53.432][C][template.select:014]:   Initial Option: Volume Up
    [06:32:53.432][C][template.select:014]:   Restore Value: YES
    [06:32:53.432][C][template.select:010]: Template Select 'WizMote Brightness Down'
    [06:32:53.432][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:32:53.434][C][template.select:014]:   Optimistic: YES
    [06:32:53.434][C][template.select:014]:   Initial Option: Volume Down
    [06:32:53.434][C][template.select:014]:   Restore Value: YES
    [06:32:53.449][C][template.select:010]: Template Select 'WizMote Button 1'
    [06:32:53.449][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:32:53.449][C][template.select:014]:   Optimistic: YES
    [06:32:53.449][C][template.select:014]:   Initial Option: Previous Track
    [06:32:53.449][C][template.select:014]:   Restore Value: YES
    [06:32:53.469][C][template.select:010]: Template Select 'WizMote Button 2'
    [06:32:53.469][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:32:53.469][C][template.select:014]:   Optimistic: YES
    [06:32:53.469][C][template.select:014]:   Initial Option: Next Track
    [06:32:53.469][C][template.select:014]:   Restore Value: YES
    [06:32:53.486][C][template.select:010]: Template Select 'WizMote Button 3'
    [06:32:53.488][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:32:53.488][C][template.select:014]:   Optimistic: YES
    [06:32:53.488][C][template.select:014]:   Initial Option: Send HA Event
    [06:32:53.488][C][template.select:014]:   Restore Value: YES
    [06:32:53.503][C][template.select:010]: Template Select 'WizMote Button 4'
    [06:32:53.505][C][template.select:156]:   Icon: 'mdi:gesture-tap-button'
    [06:32:53.506][C][template.select:014]:   Optimistic: YES
    [06:32:53.506][C][template.select:014]:   Initial Option: Send HA Event
    [06:32:53.506][C][template.select:014]:   Restore Value: YES
    [06:32:53.521][C][template.select:010]: Template Select 'Firmware Channel'
    [06:32:53.522][C][template.select:156]:   Icon: 'mdi:source-branch'
    [06:32:53.524][C][template.select:014]:   Optimistic: YES
    [06:32:53.524][C][template.select:014]:   Initial Option: Stable
    [06:32:53.524][C][template.select:014]:   Restore Value: YES
    [06:32:53.539][C][template.text_sensor:016]: Template Sensor 'WizMote Status'
    [06:32:53.541][C][template.text_sensor:156]:   Icon: 'mdi:information'
    [06:32:53.557][C][template.text_sensor:016]: Template Sensor 'Network Connection'
    [06:32:53.558][C][template.text_sensor:156]:   Icon: 'mdi:network'
    [06:32:53.574][C][template.text_sensor:016]: Template Sensor 'Apollo Firmware Version'
    [06:32:53.591][C][gpio.binary_sensor:016]: GPIO Binary Sensor 'reset_button'
    [06:32:53.592][C][gpio.binary_sensor:131]:   Pin: GPIO0
    [06:32:53.594][C][gpio.binary_sensor:068]:   Mode: interrupt
    [06:32:53.594][C][gpio.binary_sensor:070]:   Interrupt Type: ANY_EDGE
    [06:32:53.611][C][uptime.sensor:017]: Uptime Sensor 'Uptime'
    [06:32:53.611][C][uptime.sensor:017]:   State Class: 'total_increasing'
    [06:32:53.611][C][uptime.sensor:017]:   Unit of Measurement: 's'
    [06:32:53.611][C][uptime.sensor:017]:   Accuracy Decimals: 0
    [06:32:53.611][C][uptime.sensor:165]:   Device Class: 'duration'
    [06:32:53.613][C][uptime.sensor:156]:   Icon: 'mdi:timer-outline'
    [06:32:53.613][C][uptime.sensor:019]:   Type: Seconds
    [06:32:53.629][C][esp32_rmt_led_strip:235]: ESP32 RMT LED Strip:
    [06:32:53.629][C][esp32_rmt_led_strip:235]:   Pin: 4
    [06:32:53.630][C][esp32_rmt_led_strip:239]:   RMT Symbols: 192
    [06:32:53.632][C][esp32_rmt_led_strip:241]:   Channel colors: GRB
    [06:32:53.632][C][esp32_rmt_led_strip:241]:   Max refresh rate: 0
    [06:32:53.632][C][esp32_rmt_led_strip:241]:   Number of LEDs: 4
    [06:32:53.696][C][template.text:062]: Template Text Input 'WizMote MAC Address'
    [06:32:53.696][C][template.text:156]:   Icon: 'mdi:remote'
    [06:32:53.697][C][template.text:063]:   Optimistic: YES
    [06:32:53.698][C][template.text:340]:   Update Interval: 60.000s
    [06:32:53.714][C][light:101]: Light 'RGB Light'
    [06:32:53.716][C][light:104]:   Default Transition Length: 0.0s
    [06:32:53.716][C][light:104]:   Gamma Correct: 2.80
    [06:32:53.732][C][template.switch:086]: Template Switch 'WizMote Auto-Discovery'
    [06:32:53.732][C][template.switch:086]:   Restore Mode: always OFF
    [06:32:53.734][C][template.switch:156]:   Icon: 'mdi:radar'
    [06:32:53.734][C][template.switch:055]:   Optimistic: YES
    [06:32:53.751][C][template.switch:086]: Template Switch 'Bluetooth Proxy'
    [06:32:53.751][C][template.switch:086]:   Restore Mode: restore defaults to OFF
    [06:32:53.751][C][template.switch:156]:   Icon: 'mdi:bluetooth'
    [06:32:53.753][C][template.switch:055]:   Optimistic: YES
    [06:32:53.769][C][restart.button:014]: Restart Button 'ESP Reboot'
    [06:32:53.771][C][restart.button:156]:   Icon: 'mdi:power-cycle'
    [06:32:53.786][C][factory_reset.switch:086]: Factory Reset Switch 'Factory Reset ESP'
    [06:32:53.786][C][factory_reset.switch:086]:   Restore Mode: always OFF
    [06:32:53.788][C][factory_reset.switch:156]:   Icon: 'mdi:restart-alert'
    [06:32:53.804][C][factory_reset.switch:086]: Factory Reset Switch 'factory_reset_switch'
    [06:32:53.804][C][factory_reset.switch:086]:   Restore Mode: always OFF
    [06:32:53.806][C][factory_reset.switch:156]:   Icon: 'mdi:restart-alert'
    [06:32:53.822][C][ethernet_info:016]: EthernetInfo IPAddress 'Ethernet IP Address'
    [06:32:53.838][C][wifi_info:016]: IP Address 'WiFi IP Address'
    [06:32:53.855][C][version.text_sensor:016]: Version Text Sensor 'ESPHome Version'
    [06:32:53.857][C][version.text_sensor:156]:   Icon: 'mdi:new-box'
    [06:32:53.906][C][bluetooth_proxy:172]: Bluetooth Proxy:
    [06:32:53.906][C][bluetooth_proxy:172]:   Active: YES
    [06:32:53.906][C][bluetooth_proxy:172]:   Connections: 3
    [06:32:53.906][C][bluetooth_proxy:172]:   Configured scan: active
    [06:32:53.906][C][bluetooth_proxy:172]:   Adapter MAC: 44:B1:76:DA:3E:92
    [06:32:53.922][C][psram:015]: PSRAM:
    [06:32:53.924][C][psram:018]:   Available: YES
    [06:32:53.924][C][psram:020]:   Size: 8192 KB
    [06:32:53.940][C][status:016]: Status Binary Sensor 'Online'
    [06:32:53.942][C][status:165]:   Device Class: 'connectivity'
    [06:32:53.958][C][internal_temperature:017]: Internal Temperature Sensor 'ESP Temperature'
    [06:32:53.958][C][internal_temperature:017]:   State Class: 'measurement'
    [06:32:53.958][C][internal_temperature:017]:   Unit of Measurement: '°C'
    [06:32:53.958][C][internal_temperature:017]:   Accuracy Decimals: 1
    [06:32:53.959][C][internal_temperature:165]:   Device Class: 'temperature'
    [06:32:54.040][C][resampler_speaker:050]: Resampler Speaker:
    [06:32:54.040][C][resampler_speaker:050]:   Target Bits Per Sample: 16
    [06:32:54.040][C][resampler_speaker:050]:   Target Sample Rate: 48000 Hz
    [06:32:54.056][C][resampler_speaker:050]: Resampler Speaker:
    [06:32:54.056][C][resampler_speaker:050]:   Target Bits Per Sample: 16
    [06:32:54.056][C][resampler_speaker:050]:   Target Sample Rate: 48000 Hz
    [06:32:54.074][C][audio_http_media_source:030]: Audio HTTP Media Source:
    [06:32:54.074][C][audio_http_media_source:030]:   Buffer Size: 500000 bytes
    [06:32:54.074][C][audio_http_media_source:030]:   Persistent Ring Buffer: NO
    [06:32:54.074][C][audio_http_media_source:030]:   Decoder Task Stack in PSRAM: NO
    [06:32:54.091][C][audio_http_media_source:030]: Audio HTTP Media Source:
    [06:32:54.091][C][audio_http_media_source:030]:   Buffer Size: 250000 bytes
    [06:32:54.091][C][audio_http_media_source:030]:   Persistent Ring Buffer: NO
    [06:32:54.091][C][audio_http_media_source:030]:   Decoder Task Stack in PSRAM: NO
    [06:32:54.396][C][i2s_audio.speaker:043]: Speaker:
    [06:32:54.396][C][i2s_audio.speaker:043]:   Pin: 9
    [06:32:54.396][C][i2s_audio.speaker:043]:   Buffer duration: 100
    [06:32:54.397][C][i2s_audio.speaker.std:067]:   Communication format: std
    [06:32:54.398][C][i2s_audio.speaker.std:072]:   Slot bit width: 16
    [06:32:54.414][C][speaker_source_media_player:053]: Speaker Source Media Player:
    [06:32:54.414][C][speaker_source_media_player:053]:   Volume Increment: 0.05
    [06:32:54.414][C][speaker_source_media_player:053]:   Volume Min: 0.00
    [06:32:54.414][C][speaker_source_media_player:053]:   Volume Max: 1.00
    [06:32:54.431][C][esp32_ble:770]: BLE:
    [06:32:54.431][C][esp32_ble:770]:   MAC address: 44:B1:76:DA:3E:92
    [06:32:54.431][C][esp32_ble:770]:   IO Capability: none
    [06:32:54.448][C][esp32_ble_server:259]: ESP32 BLE Server:
    [06:32:54.448][C][esp32_ble_server:259]:   Max clients: 1
    [06:32:54.464][C][network:050]: Network:
    [06:32:54.464][C][network:050]:   TCP send buffer: 65534 bytes
    [06:32:54.481][C][esp32_improv.component:341]: ESP32 Improv:
    [06:32:54.498][C][esp32_ble_tracker:453]: BLE Tracker:
    [06:32:54.500][C][esp32_ble_tracker:454]:   Scan Duration: 300 s
    [06:32:54.500][C][esp32_ble_tracker:454]:   Scan Interval: 320.0 ms
    [06:32:54.500][C][esp32_ble_tracker:454]:   Scan Window: 320.0 ms
    [06:32:54.500][C][esp32_ble_tracker:454]:   Scan Type: PASSIVE
    [06:32:54.500][C][esp32_ble_tracker:454]:   Continuous Scanning: YES
    [06:32:54.501][C][esp32_ble_tracker:464]:   Connection Scan Window: 30.0 ms
    [06:32:54.501][C][esp32_ble_tracker:467]:   Scanner State: IDLE
    [06:32:54.501][C][esp32_ble_tracker:467]:   Connecting: 0, discovered: 0, disconnecting: 0, active: 0
    [06:32:54.517][C][bluetooth_connection:099]: Bluedroid GATT client 0
    [06:32:54.534][C][bluetooth_connection:099]: Bluedroid GATT client 1
    [06:32:54.551][C][bluetooth_connection:099]: Bluedroid GATT client 2
    [06:32:54.568][C][captive_portal:162]: Captive Portal:
    [06:32:54.585][C][ethernet:584]: Ethernet:
    [06:32:54.585][C][ethernet:584]:   Connected: YES
    [06:32:54.587][C][ethernet:904]:   IP Address: 10.2.10.20
    [06:32:54.587][C][ethernet:904]:   Hostname: 'kitchen-streamer'
    [06:32:54.587][C][ethernet:904]:   Subnet: 255.255.255.0
    [06:32:54.587][C][ethernet:904]:   Gateway: 10.2.10.1
    [06:32:54.587][C][ethernet:904]:   DNS1: 10.2.10.10
    [06:32:54.587][C][ethernet:904]:   DNS2: 0.0.0.0
    [06:32:54.587][C][ethernet:904]:   MAC Address: 44:B1:76:DA:3E:93
    [06:32:54.587][C][ethernet:904]:   Is Full Duplex: YES
    [06:32:54.587][C][ethernet:904]:   Link Speed: 100
    [06:32:54.588][C][ethernet:597]:   CLK Pin: 7
    [06:32:54.588][C][ethernet:597]:   MISO Pin: 11
    [06:32:54.588][C][ethernet:597]:   MOSI Pin: 12
    [06:32:54.588][C][ethernet:597]:   CS Pin: 6
    [06:32:54.588][C][ethernet:607]:   Interface: spi2
    [06:32:54.588][C][ethernet:615]:   IRQ Pin: 13
    [06:32:54.590][C][ethernet:617]:   Reset Pin: 21
    [06:32:54.590][C][ethernet:617]:   Clock Speed: 40 MHz
    [06:32:54.590][C][ethernet:632]:   Type: W5500
    [06:32:54.607][C][web_server:418]: Web Server:
    [06:32:54.607][C][web_server:418]:   Address: 10.2.10.20:80
    [06:32:54.624][C][wifi:1582]: WiFi:
    [06:32:54.624][C][wifi:1582]:   Local MAC: 44:B1:76:DA:3E:90
    [06:32:54.624][C][wifi:1582]:   Connected: NO
    [06:32:54.625][C][wifi:1588]:   Disabled
    [06:32:54.632][C][esphome.ota:113]: Over-The-Air updates:
    [06:32:54.632][C][esphome.ota:113]:   Address: 10.2.10.20:3232
    [06:32:54.632][C][esphome.ota:113]:   Version: 2
    [06:32:54.632][C][esphome.ota:113]:   Encryption: offered, plaintext accepted
    [06:32:54.639][C][safe_mode:058]: Safe Mode:
    [06:32:54.639][C][safe_mode:058]:   Successful after: 60s
    [06:32:54.639][C][safe_mode:058]:   Invoke after: 10 attempts
    [06:32:54.639][C][safe_mode:058]:   Duration: 300s
    [06:32:54.640][C][safe_mode:079]:   Bootloader rollback: support unknown
    [06:32:54.829][W][safe_mode:094]: OTA rollback detected! Rolled back from partition 'app0'
    [06:32:54.829][W][safe_mode:094]:  The device reset before the boot was marked successful
    [06:32:54.831][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:32:54.848][C][http_request.ota:016]: Over-The-Air updates via HTTP request
    [06:32:54.865][C][web_server.ota:256]: Web Server OTA
    [06:32:54.882][C][api:271]: Server:
    [06:32:54.882][C][api:271]:   Address: 10.2.10.20:6053
    [06:32:54.882][C][api:271]:   Listen backlog: 4
    [06:32:54.882][C][api:271]:   Max connections: 5
    [06:32:54.883][C][api:278]:   Noise encryption: YES
    [06:32:54.901][C][improv_serial:085]: Improv Serial:
    [06:32:54.918][C][http_request:012]: HTTP Request:
    [06:32:54.918][C][http_request:012]:   Timeout: 4500ms
    [06:32:54.918][C][http_request:012]:   User-Agent: ESPHome/2026.9.0 (https://esphome.io)
    [06:32:54.918][C][http_request:012]:   Follow redirects: YES
    [06:32:54.918][C][http_request:012]:   Redirect limit: 3
    [06:32:54.919][C][http_request:020]:   Watchdog Timeout: 14500ms
    [06:32:54.919][C][http_request:024]:   Buffer Size RX: 5120
    [06:32:54.919][C][http_request:024]:   Buffer Size TX: 2048
    [06:32:54.919][C][http_request:024]:   Custom CA Certificate: NO
    [06:32:54.936][C][sendspin.hub:076]: Sendspin Hub:
    [06:32:54.936][C][sendspin.hub:076]:   Client ID: 44:B1:76:DA:3E:93
    [06:32:54.936][C][sendspin.hub:076]:   Task stack in PSRAM: NO
    [06:32:54.986][C][sendspin.text_sensor:016]: Sendspin 'Track Title'
    [06:32:55.002][C][sendspin.text_sensor:016]: Sendspin 'Artist'
    [06:32:55.019][C][sendspin.text_sensor:016]: Sendspin 'Album'
    [06:32:55.032][C][sendspin.media_source:031]: Sendspin Media Source: static_delay_adjustable=NO
    [06:32:55.036][C][sendspin.media_player:173]: Sendspin Media Player: volume_increment=0.05
    [06:32:55.054][C][mdns:259]: mDNS:
    [06:32:55.054][C][mdns:259]:   Hostname: kitchen-streamer
    [06:32:55.087][C][espnow:132]: espnow:
    [06:32:55.089][C][espnow:145]:   Own address: 44:B1:76:DA:3E:90
    [06:32:55.089][C][espnow:145]:   Version: v2
    [06:32:55.089][C][espnow:145]:   Wi-Fi channel: 1
    [06:32:55.090][C][espnow:151]:   Wi-Fi enabled: NO
    [06:33:04.738][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:33:14.739][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    [06:33:24.742][S][text_sensor]: 'Network Connection' >> 'Ethernet'
    
  3. bharvey88 commented on Sep 25, 2026

    @bharvey88
    Contributor

    Thanks for the logs! Both crashes point at the device running out of internal memory right before it resets. The no mem for receive buffer line comes from the Ethernet chip failing to get memory for incoming data.

    One catch: the crash report says it was Captured by a different firmware build, so the decoded trace may point at the wrong code. To get one we can trust, could you:

    1. Add these sensors to kitchen-music.yaml, then compile and flash it once:

      debug:
        update_interval: 10s
      
      sensor:
        - platform: debug
          free:
            name: "Free Internal Memory"
          block:
            name: "Largest Free Block"
          min_free:
            name: "Minimum Free Internal Memory"
    2. Don't recompile or update it after that, and let it run until it reboots on its own.

    3. After the reboot, open the logs from the same machine you compiled on. Please post the full CRASH DETECTED ON PREVIOUS BOOT block, and a screenshot of the "Minimum Free Internal Memory" history from Home Assistant.

    If the crash block no longer says "Captured by a different firmware build", the trace will decode against the right code.

  4. bharvey88 commented on Oct 1, 2026

    @bharvey88
    Contributor

    Thanks for the logs. They matched what we reproduced on our bench, and the cause is now fixed in ESPHome 2026.9.1: received Ethernet data goes to PSRAM instead of internal RAM, which is what was running out.

    Since you compile your own config, update ESPHome to 2026.9.1 or newer and recompile. Nothing in your YAML needs to change. When it boots, the Ethernet section of the log should show RX frames: PSRAM.

    If you can keep the Minimum Free Internal Memory sensor in for a few days and let us know whether the reboots stop, that would confirm it on your units. The next CAST-1 release requires 2026.9.1.

  5. woolmonkey commented on Oct 2, 2026

    @woolmonkey
    Author

    Yes that explains why I haven't been able to reproduce it this morning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions