8000 ESPHOME Cant Update Speaker using ESP-IDF · Issue #6947 · esphome/issues · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

ESPHOME Cant Update Speaker using ESP-IDF #6947

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

Open
comet424 opened this issue Apr 17, 2025 · 2 comments
Open

ESPHOME Cant Update Speaker using ESP-IDF #6947

comet424 opened this issue Apr 17, 2025 · 2 comments

Comments

@comet424
Copy link
comet424 commented Apr 17, 2025

The problem

i just got the esphome update for 4.0 i updated all but 2 out of 3 of my speaker modules will not update to esphome 4.0 firmware they are stuck on 3.3 even though they upload... the 3rd the module is still

esp32:
  board: esp32dev
  framework:
    type: arduino

Which version of ESPHome has the issue?

2025.4.0

What type of installation are you using?

Home Assistant Add-on

Which version of Home Assistant has the issue?

2025.4.2

What platform are you using?

ESP32

Board

esp32

Component causing the issue

No response

YAML Config

so this will complie upload but yet states its still firmware 3.3 from april 2nd. so its not uploading or its not fixing the firmware date

##############
### Bedroom ###
##############
esphome:
  name: speaker-1
  friendly_name: "Speaker #1"

esp32:
  board: esp32dev
  framework:
    type: esp-idf
    

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "NojvwCefQii8YN3rIz/vBGtcth0xMBB4KFvt8/nfaM4="

ota:
  platform: esphome
  password: "00b8433143fa1e2b21ddaf8da034f8a4"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Speaker-1 Fallback Hotspot"
    password: "BHlK4SVkN5Cn"

captive_portal:
web_server:

i2s_audio:
  i2s_lrclk_pin: GPIO16
  i2s_bclk_pin: GPIO21

speaker:
  - platform: i2s_audio
    id: output_speaker
    i2s_dout_pin: GPIO17
    dac_type: external    
    bits_per_sample: 32bit
    channel: right
    buffer_duration: 60ms

media_player:
  - platform: speaker
    name: "ESPHome I2S Media Player"
    id: media_out
    announcement_pipeline:
      speaker: output_speaker
      format: WAV
    codec_support_enabled: false
    buffer_size: 6000
    on_pause:
      - logger.log: "Playback paused!"
    on_idle:
      - logger.log: "Playback finished!"



switch:
#####################
### Reboot Switch ###
#####################
  - platform: restart
    name: "Restart"

binary_sensor:
  - platform: status
    name: "Status"


text_sensor:
######################################################    
### Uptime Sesnor Template To Show In Hour Min Sec ###
######################################################
  - platform: template
    name: "Uptime"
    id: uptime_human
    icon: mdi:clock-start

sensor:
  - platform: uptime
    name: Uptime Sensor
    id: uptime_sensor_speaker_1
    update_interval: 60s
    on_raw_value:
      then:
        - text_sensor.template.publish:
            id: uptime_human
            state: !lambda |-
              int seconds = round(id(uptime_sensor_speaker_1).raw_state);
              int days = seconds / (24 * 3600);
              seconds = seconds % (24 * 3600);
              int hours = seconds / 3600;
              seconds = seconds % 3600;
              int minutes = seconds /  60;
              seconds = seconds % 60;
              return (
                (days ? to_string(days) + "d " : "") +
                (hours ? to_string(hours) + "h " : "") +
                (minutes ? to_string(minutes) + "m " : "") +
                (to_string(seconds) + "s")
              ).c_str();



this version works version works  least firmware is uploaded it says.. i havent tested if the audio is working right


esphome:
  name: speaker-3
  friendly_name: "Speaker #3"

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "JeAZ016MhMculWo1bzF32suAzbpcl6aSsZ8zdvdC1KU="

ota:
  platform: esphome
  password: "4cc9c6235242a1a67872c5e95f8a0e14"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Speaker-3 Fallback Hotspot"
    password: "0SakfjrJc3Pa"

captive_portal:
web_server:

i2s_audio:
  i2s_lrclk_pin: GPIO16
  i2s_bclk_pin: GPIO21

media_player:
  - platform: i2s_audio
    name: ESPHome I2S Media Player
    dac_type: external
    
    i2s_dout_pin: GPIO17
    mode: mono

switch:
#####################
### Reboot Switch ###
#####################
  - platform: restart
    name: "Restart"

binary_sensor:
  - platform: status
    name: "Status"

text_sensor:
######################################################    
### Uptime Sesnor Template To Show In Hour Min Sec ###
######################################################
  - platform: template
    name: "Uptime"
    id: uptime_human
    icon: mdi:clock-start



sensor:
  - platform: uptime
    name: Uptime Sensor
    id: uptime_sensor_speaker_3
    update_interval: 60s
    on_raw_value:
      then:
        - text_sensor.template.publish:
            id: uptime_human
            state: !lambda |-
              int seconds = round(id(uptime_sensor_speaker_3).raw_state);
              int days = seconds / (24 * 3600);
              seconds = seconds % (24 * 3600);
              int hours = seconds / 3600;
              seconds = seconds % 3600;
              int minutes = seconds /  60;
              seconds = seconds % 60;
              return (
                (days ? to_string(days) + "d " : "") +
                (hours ? to_string(hours) + "h " : "") +
                (minutes ? to_string(minutes) + "m " : "") +
                (to_string(seconds) + "s")
              ).c_str();

Anything in the logs that might be useful for us?

Speakers #1 here is the logs it wont go past  3.3

INFO ESPHome 2025.4.0
INFO Reading configuration /config/esphome/speaker-1.yaml...
INFO Generating C++ source...
INFO Updating https://github.com/espressif/esp-protocols.git@mdns-v1.8.2
INFO Compiling app...
Processing speaker-1 (board: esp32dev; framework: espidf; platform: https://github.com/pioarduino/platform-espressif32.git#51.03.07)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.50105.0 (5.1.5) 
 - tool-cmake @ 3.21.3 
 - tool-esptoolpy @ 4.8.1 
 - tool-mklittlefs @ 3.2.0 
 - tool-ninja @ 1.7.1 
 - tool-riscv32-esp-elf-gdb @ 12.1.0+20221002 
 - tool-xtensa-esp-elf-gdb @ 12.1.0+20221002 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-xtensa-esp32 @ 12.2.0+20230208
Reading CMake configuration...
Dependency Graph
|-- noise-c @ 0.1.6
|-- ArduinoJson @ 6.18.5
|-- esp-audio-libs @ 1.1.3
Compiling .pioenvs/speaker-1/src/main.cpp.o
In file included from /data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/i2s.h:23,
                 from src/esphome/components/i2s_audio/i2s_audio.h:5,
                 from src/esphome.h:28,
                 from src/main.cpp:3:
/data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/adc.h:19:2: warning: #warning "legacy adc driver is deprecated, please migrate to use esp_adc/adc_oneshot.h and esp_adc/adc_continuous.h for oneshot mode and continuous mode drivers respectively" [-Wcpp]
   19 | #warning "legacy adc driver is deprecated, please migrate to use esp_adc/adc_oneshot.h and esp_adc/adc_continuous.h for oneshot mode and continuous mode drivers respectively"
      |  ^~~~~~~
/data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/i2s.h:27:2: warning: #warning "This set of I2S APIs has been deprecated, please include 'driver/i2s_std.h', 'driver/i2s_pdm.h' or 'driver/i2s_tdm.h' instead. if you want to keep using the old APIs and ignore this warning, you can enable 'Suppress leagcy driver deprecated warning' option under 'I2S Configuration' menu in Kconfig" [-Wcpp]
   27 | #warning "This set of I2S APIs has been deprecated, \
      |  ^~~~~~~
Linking .pioenvs/speaker-1/firmware.elf
RAM:   [=         ]  10.7% (used 35068 bytes from 327680 bytes)
Flash: [=======   ]  65.3% (used 1197849 bytes from 1835008 bytes)
Building .pioenvs/speaker-1/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin([".pioenvs/speaker-1/firmware.bin"], [".pioenvs/speaker-1/firmware.elf"])
SHA digest in image updated
Wrote 0x1360d0 bytes to file /data/build/speaker-1/.pioenvs/speaker-1/firmware.factory.bin, ready to flash to offset 0x0
esp32_copy_ota_bin([".pioenvs/speaker-1/firmware.bin"], [".pioenvs/speaker-1/firmware.elf"])
========================= [SUCCESS] Took 8.20 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 192.168.20.184 port 3232...
INFO Connected to 192.168.20.184
INFO Uploading /data/build/speaker-1/.pioenvs/speaker-1/firmware.bin (1204432 bytes)
Uploading: [============================================================] 100% Done...

INFO Upload took 11.56 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.20.184 using esphome API
INFO Successfully connected to speaker-1 @ 192.168.20.184 in 11.281s
WARNING speaker-1 @ 192.168.20.184: Connection error occurred: speaker-1 @ 192.168.20.184: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (ESPHome Logs 2025.4.0)
WARNING Can't connect to ESPHome API for speaker-1 @ 192.168.20.184: speaker-1 @ 192.168.20.184: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (ESPHome Logs 2025.4.0) (EncryptionHelloAPIError)
INFO Trying to connect to speaker-1 @ 192.168.20.184 in the background
INFO Successfully connected to speaker-1 @ 192.168.20.184 in 0.007s
WARNING speaker-1 @ 192.168.20.184: Connection error occurred: speaker-1 @ 192.168.20.184: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (ESPHome Logs 2025.4.0)
INFO Successfully connected to speaker-1 @ 192.168.20.184 in 0.023s
WARNING speaker-1 @ 192.168.20.184: Connection error occurred: speaker-1 @ 192.168.20.184: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (ESPHome Logs 2025.4.0)
INFO Successfully connected to speaker-1 @ 192.168.20.184 in 0.129s
WARNING speaker-1 @ 192.168.20.184: Connection error occurred: speaker-1 @ 192.168.20.184: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (ESPHome Logs 2025.4.0)


Speaker #2

INFO ESPHome 2025.4.0
INFO Reading configuration /config/esphome/speaker-2.yaml...
INFO Generating C++ source...
INFO Updating https://github.com/espressif/esp-protocols.git@mdns-v1.8.2
INFO Compiling app...
Processing speaker-2 (board: esp32dev; framework: espidf; platform: https://github.com/pioarduino/platform-espressif32.git#51.03.07)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.50105.0 (5.1.5) 
 - tool-cmake @ 3.21.3 
 - tool-esptoolpy @ 4.8.1 
 - tool-mklittlefs @ 3.2.0 
 - tool-ninja @ 1.7.1 
 - tool-riscv32-esp-elf-gdb @ 12.1.0+20221002 
 - tool-xtensa-esp-elf-gdb @ 12.1.0+20221002 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-xtensa-esp32 @ 12.2.0+20230208
Reading CMake configuration...
Dependency Graph
|-- noise-c @ 0.1.6
|-- ArduinoJson @ 6.18.5
|-- esp-audio-libs @ 1.1.3
Compiling .pioenvs/speaker-2/src/main.cpp.o
In file included from /data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/i2s.h:23,
                 from src/esphome/components/i2s_audio/i2s_audio.h:5,
                 from src/esphome.h:28,
                 from src/main.cpp:3:
/data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/adc.h:19:2: warning: #warning "legacy adc driver is deprecated, please migrate to use esp_adc/adc_oneshot.h and esp_adc/adc_continuous.h for oneshot mode and continuous mode drivers respectively" [-Wcpp]
   19 | #warning "legacy adc driver is deprecated, please migrate to use esp_adc/adc_oneshot.h and esp_adc/adc_continuous.h for oneshot mode and continuous mode drivers respectively"
      |  ^~~~~~~
/data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/i2s.h:27:2: warning: #warning "This set of I2S APIs has been deprecated, please include 'driver/i2s_std.h', 'driver/i2s_pdm.h' or 'driver/i2s_tdm.h' instead. if you want to keep using the old APIs and ignore this warning, you can enable 'Suppress leagcy driver deprecated warning' option under 'I2S Configuration' menu in Kconfig" [-Wcpp]
   27 | #warning "This set of I2S APIs has been deprecated, \
      |  ^~~~~~~
Linking .pioenvs/speaker-2/firmware.elf
RAM:   [=         ]  10.7% (used 35068 bytes from 327680 bytes)
Flash: [=======   ]  65.3% (used 1197849 bytes from 1835008 bytes)
Building .pioenvs/speaker-2/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin([".pioenvs/speaker-2/firmware.bin"], [".pioenvs/speaker-2/firmware.elf"])
SHA digest in image updated
Wrote 0x1360d0 bytes to file /data/build/speaker-2/.pioenvs/speaker-2/firmware.factory.bin, ready to flash to offset 0x0
esp32_copy_ota_bin([".pioenvs/speaker-2/firmware.bin"], [".pioenvs/speaker-2/firmware.elf"])
========================= [SUCCESS] Took 8.29 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 192.168.20.194 port 3232...
INFO Connected to 192.168.20.194
INFO Uploading /data/build/speaker-2/.pioenvs/speaker-2/firmware.bin (1204432 bytes)
Uploading: [============================================================] 100% Done...

INFO Upload took 11.31 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.20.194 using esphome API
INFO Successfully connected to speaker-2 @ 192.168.20.194 in 11.306s
INFO Successful handshake with speaker-2 @ 192.168.20.194 in 0.078s
[11:13:59][I][app:100]: ESPHome version 2025.3.3 compiled on Apr  2 2025, 10:24:18
[11:13:59][C][wifi:600]: WiFi:
[11:13:59][C][wifi:428]:   Local MAC: D4:8A:FC:9D:E8:18
[11:13:59][C][wifi:433]:   SSID: [redacted]
[11:13:59][C][wifi:436]:   IP Address: 192.168.20.194
[11:13:59][C][wifi:440]:   BSSID: [redacted]
[11:13:59][C][wifi:441]:   Hostname: 'speaker-2'
[11:13:59][C][wifi:443]:   Signal strength: -54 dB ▂▄▆█
[11:13:59][C][wifi:447]:   Channel: 1
[11:13:59][C][wifi:448]:   Subnet: 255.255.255.0
[11:13:59][C][wifi:449]:   Gateway: 192.168.20.1
[11:13:59][C][wifi:450]:   DNS1: 192.168.20.1
[11:13:59][C][wifi:451]:   DNS2: 0.0.0.0
[11:13:59][C][logger:177]: Logger:
[11:13:59][C][logger:178]:   Max Level: DEBUG
[11:13:59][C][logger:179]:   Initial Level: DEBUG
[11:13:59][C][logger:181]:   Log Baud Rate: 115200
[11:13:59][C][logger:182]:   Hardware UART: UART0
[11:13:59][C][template.text_sensor:020]: Template Sensor 'Uptime'
[11:13:59][C][template.text_sensor:020]:   Icon: 'mdi:clock-start'
[11:13:59][C][uptime.sensor:033]: Uptime Sensor 'Uptime Sensor'
[11:13:59][C][uptime.sensor:033]:   Device Class: 'duration'
[11:13:59][C][uptime.sensor:033]:   State Class: 'total_increasing'
[11:13:59][C][uptime.sensor:033]:   Unit of Measurement: 's'
[11:13:59][C][uptime.sensor:033]:   Accuracy Decimals: 0
[11:13:59][C][uptime.sensor:033]:   Icon: 'mdi:timer-outline'
[11:13:59][C][uptime.sensor:034]:   Type: Seconds
[11:13:59][C][restart:068]: Restart Switch 'Restart'
[11:13:59][C][restart:070]:   Icon: 'mdi:restart'
[11:13:59][C][restart:091]:   Restore Mode: always OFF
[11:13:59][C][status:034]: Status Binary Sensor 'Status'
[11:13:59][C][status:034]:   Device Class: 'connectivity'
[11:13:59][C][captive_portal:089]: Captive Portal:
[11:13:59][C][web_server:285]: Web Server:
[11:13:59][C][web_server:286]:   Address: speaker-2.local:80
[11:13:59][C][mdns:116]: mDNS:
[11:13:59][C][mdns:117]:   Hostname: speaker-2
[11:13:59][C][esphome.ota:073]: Over-The-Air updates:
[11:13:59][C][esphome.ota:074]:   Address: speaker-2.local:3232
[11:13:59][C][esphome.ota:075]:   Version: 2
[11:13:59][C][esphome.ota:078]:   Password configured
[11:13:59][C][safe_mode:018]: Safe Mode:
[11:13:59][C][safe_mode:020]:   Boot considered successful after 60 seconds
[11:13:59][C][safe_mode:021]:   Invoke after 10 boot attempts
[11:13:59][C][safe_mode:023]:   Remain in safe mode for 300 seconds
[11:13:59][C][api:140]: API Server:
[11:13:59][C][api:141]:   Address: speaker-2.local:6053
[11:13:59][C][api:143]:   Using noise encryption: YES
[11:13:59][C][audio:225]: Audio:
[11:13:59][C][audio:247]:   External DAC channels: 1
[11:13:59][C][audio:248]:   I2S DOUT Pin: 17

Working Speaker #3 here is its logs

INFO ESPHome 2025.4.0
INFO Reading configuration /config/esphome/speaker-3.yaml...
INFO Starting log output from 192.168.20.182 using esphome API
INFO Successfully connected to speaker-3 @ 192.168.20.182 in 0.029s
INFO Successful handshake with speaker-3 @ 192.168.20.182 in 0.102s
[11:00:15][I][app:100]: ESPHome version 2025.4.0 compiled on Apr 17 2025, 10:15:25
[11:00:15][C][wifi:600]: WiFi:
[11:00:15][C][wifi:428]:   Local MAC: D4:8A:FC:9D:DC:64
[11:00:15][C][wifi:433]:   SSID: [redacted]
[11:00:15][C][wifi:436]:   IP Address: 192.168.20.182
[11:00:15][C][wifi:440]:   BSSID: [redacted]
[11:00:15][C][wifi:441]:   Hostname: 'speaker-3'
[11:00:15][C][wifi:443]:   Signal strength: -71 dB ▂▄▆█
[11:00:15][C][wifi:447]:   Channel: 11
[11:00:15][C][wifi:448]:   Subnet: 255.255.255.0
[11:00:15][C][wifi:449]:   Gateway: 192.168.20.1
[11:00:15][C][wifi:450]:   DNS1: 192.168.20.1
[11:00:15][C][wifi:451]:   DNS2: 0.0.0.0
[11:00:15][C][logger:177]: Logger:
[11:00:15][C][logger:178]:   Max Level: DEBUG
[11:00:15][C][logger:179]:   Initial Level: DEBUG
[11:00:15][C][logger:181]:   Log Baud Rate: 115200
[11:00:15][C][logger:182]:   Hardware UART: UART0
[11:00:15][C][template.text_sensor:020]: Template Sensor 'Uptime'
[11:00:15][C][template.text_sensor:020]:   Icon: 'mdi:clock-start'
[11:00:15][C][uptime.sensor:033]: Uptime Sensor 'Uptime Sensor'
[11:00:15][C][uptime.sensor:033]:   Device Class: 'duration'
[11:00:15][C][uptime.sensor:033]:   State Class: 'total_increasing'
[11:00:15][C][uptime.sensor:033]:   Unit of Measurement: 's'
[11:00:15][C][uptime.sensor:033]:   Accuracy Decimals: 0
[11:00:15][C][uptime.sensor:033]:   Icon: 'mdi:timer-outline'
[11:00:15][C][uptime.sensor:034]:   Type: Seconds
[11:00:15][C][restart:068]: Restart Switch 'Restart'
[11:00:15][C][restart:070]:   Icon: 'mdi:restart'
[11:00:15][C][restart:091]:   Restore Mode: always OFF
[11:00:15][C][status:034]: Status Binary Sensor 'Status'
[11:00:15][C][status:034]:   Device Class: 'connectivity'
[11:00:15][C][captive_portal:089]: Captive Portal:
[11:00:15][C][web_server:285]: Web Server:
[11:00:15][C][web_server:286]:   Address: speaker-3.local:80
[11:00:15][C][mdns:116]: mDNS:
[11:00:15][C][mdns:117]:   Hostname: speaker-3
[11:00:15][C][esphome.ota:073]: Over-The-Air updates:
[11:00:15][C][esphome.ota:074]:   Address: speaker-3.local:3232
[11:00:15][C][esphome.ota:075]:   Version: 2
[11:00:15][C][esphome.ota:078]:   Password configured
[11:00:15][C][safe_mode:018]: Safe Mode:
[11:00:15][C][safe_mode:020]:   Boot considered successful after 60 seconds
[11:00:15][C][safe_mode:021]:   Invoke after 10 boot attempts
[11:00:15][C][safe_mode:023]:   Remain in safe mode for 300 seconds
[11:00:15][C][api:140]: API Server:
[11:00:15][C][api:141]:   Address: speaker-3.local:6053
[11:00:15][C][api:143]:   Using noise encryption: YES
[11:00:15][C][audio:225]: Audio:
[11:00:15][C][audio:247]:   External DAC channels: 1
[11:00:15][C][audio:248]:   I2S DOUT Pin: 17
[11:00:16][D][text_sensor:064]: 'Uptime': Sending state '44m 17s'
[11:00:17][D][sensor:094]: 'Uptime Sensor': Sending state 2657.42603 s with 0 decimals of accuracy

Additional information

speaker one is throwing that encryption error.. but it gets that warning and number 2 is the same as 1.. so you can see the firmware... sometimes i can get the speaker #1 log to show ill add it when it comes back

@comet424
Copy link
Author
comet424 commented May 1, 2025

still cant upload.. even with the new esphome 2025.4.1 hopefully next esphome i be able to update

@comet424
Copy link
Author

wasnt able to update to 2025.4.2 still stuck on 2025.3.3 it will update but when it reboots its still on 3.3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant
0