No Wake - AUDIO_THREAD: Not found right

I’m new to the ESP32-S3 Box 3. I successfully installed the firmware from wake-word-voice-assistant/esp32-s3-box-3.yaml. With this firmware, wake word and voice work. Reciting the wake word wakes the device. Asking the device to activate an entity works (Turns on/off the requested switch or light).

Yesterday morning I updated esphome to version 2024.5.0. Since then, a few warnings and errors occur when the ESP32-S3 Box 3 first starts. The warnings and errors read;

[10:46:21][W][component:237]: Component voice_assistant took a long time for an operation (218 ms).
[10:46:21][W][component:238]: Components should block for at most 30 ms.
[10:46:21][D][esp32_ble:255]: Disabling BLE...
[10:46:21][D][esp-idf:000][BTU_TASK]: W (12643) BT_APPL: bta_dm_disable BTA_DISABLE_DELAY set to 200 ms

[10:46:21][W][component:237]: Component esp32_ble took a long time for an operation (212 ms).
[10:46:21][W][component:238]: Components should block for at most 30 ms.
[10:46:21][D][micro_wake_word:115]: Starting Microphone
[10:46:21][D][micro_wake_word:177]: State changed from START_MICROPHONE to STARTING_MICROPHONE
[10:46:21][D][esp-idf:000][read_task]: I (12863) I2S: DMA Malloc info, datalen=blocksize=512, dma_buf_count=8

[10:46:21][D][esp-idf:000][read_task]: I (12872) I2S: I2S0, MCLK output by GPIO2

[10:46:21][D][esp-idf:000][read_task]: I (12880) AUDIO_PIPELINE: link el->rb, el:0x3d05c484, tag:i2s, rb:0x3d05c898

[10:46:21][D][esp-idf:000][read_task]: I (12887) AUDIO_PIPELINE: link el->rb, el:0x3d05c5f8, tag:filter, rb:0x3d05e8d8

[10:46:21][D][esp-idf:000][read_task]: I (12894) AUDIO_ELEMENT: [i2s-0x3d05c484] Element task created

[10:46:21][D][esp-idf:000][read_task]: I (12902) AUDIO_THREAD: The filter task allocate stack on external memory

[10:46:21][D][esp-idf:000][read_task]: E (12908) AUDIO_THREAD: Not found right xTaskCreateRestrictedPinnedToCore.
Please enter IDF-PATH with "cd $IDF_PATH" and apply the IDF patch with "git apply $ADF_PATH/idf_patches/idf_4.4._freertos.patch" first


[10:46:21][D][esp-idf:000][read_task]: E (12917) AUDIO_THREAD: Error creating RestrictedPinnedToCore filter

[10:46:21][D][esp-idf:000][read_task]: E (12924) AUDIO_ELEMENT: [filter] audio_thread_create failed

[10:46:21][D][esp-idf:000][read_task]: I (12931) AUDIO_ELEMENT: [raw-0x3d05c728] Element task created

[10:46:21][D][esp-idf:000][read_task]: I (12940) AUDIO_PIPELINE: Func:audio_pipeline_run, Line:359, MEM Total:16465159 Bytes, Inter:79372 Bytes, Dram:79372 Bytes


[10:46:21][D][esp-idf:000][i2s]: I (12946) AUDIO_ELEMENT: [i2s] AEL_MSG_CMD_RESUME,state:1

[10:46:21][D][esp-idf:000][read_task]: W (12951) AUDIO_ELEMENT: [filter] Element has not create when AUDIO_ELEMENT_RESUME

[10:46:21][D][esp-idf:000][read_task]: E (12958) AUDIO_PIPELINE: audio_pipeline_resume failed

[10:46:21][W][micro_wake_word:157]: Wake word is already running
[10:46:23][D][esp-idf:000][read_task]: W (14965) AUDIO_ELEMENT: [i2s-0x3d05c484] Element task destroy timeout[2000]

[10:46:23][D][esp-idf:000][read_task]: W (14971) AUDIO_ELEMENT: [filter] Element has not create when AUDIO_ELEMENT_TERMINATE

Code;

substitutions:
  name: esp32-s3-box-3
  friendly_name: ESP32 S3 Box 3
  loading_illustration_file: https://github.com/esphome/firmware/raw/main/voice-assistant/casita/loading_320_240.png
  idle_illustration_file: https://github.com/esphome/firmware/raw/main/voice-assistant/casita/idle_320_240.png
  listening_illustration_file: https://github.com/esphome/firmware/raw/main/voice-assistant/casita/listening_320_240.png
  thinking_illustration_file: https://github.com/esphome/firmware/raw/main/voice-assistant/casita/thinking_320_240.png
  replying_illustration_file: https://github.com/esphome/firmware/raw/main/voice-assistant/casita/replying_320_240.png
  error_illustration_file: https://github.com/esphome/firmware/raw/main/voice-assistant/casita/error_320_240.png

  loading_illustration_background_color: "000000"
  idle_illustration_background_color: "000000"
  listening_illustration_background_color: "FFFFFF"
  thinking_illustration_background_color: "FFFFFF"
  replying_illustration_background_color: "FFFFFF"
  error_illustration_background_color: "000000"

  voice_assist_idle_phase_id: "1"
  voice_assist_listening_phase_id: "2"
  voice_assist_thinking_phase_id: "3"
  voice_assist_replying_phase_id: "4"
  voice_assist_not_ready_phase_id: "10"
  voice_assist_error_phase_id: "11"
  voice_assist_muted_phase_id: "12"

  # These unqiue characters have been extracted from every test file of every language available on https://github.com/home-assistant/intents (14 March 2024)
  allowed_characters: " !#%'()+,-./0123456789:;<>?@ABCDEFGHIJKLMNOPQRSTUVWYZ[]_abcdefghijklmnopqrstuvwxyz{|}°²³µ¿ÁÂÄÅÉÖÚßàáâãäåæçèéêëìíîðñòóôõöøùúûüýþāăąćčďĐđēėęěğĮįıļľŁłńňőřśšťũūůűųźŻżŽžơưșțΆΈΌΐΑΒΓΔΕΖΗΘΚΜΝΠΡΣΤΥΦάέήίαβγδεζηθικλμνξοπρςστυφχψωϊόύώАБВГДЕЖЗИКЛМНОПРСТУХЦЧШЪЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяёђєіїјљњћאבגדהוזחטיכלםמןנסעפץצקרשת،ءآأإئابةتجحخدذرزسشصضطظعغفقكلمنهوىيٹپچڈکگںھہیےংকচতধনফবযরলশষস়ািু্చయలిెొ్ംഅആഇഈഉഎഓകഗങചജഞടഡണതദധനപഫബഭമയരറലളവശസഹാിീുൂെേൈ്ൺൻർൽൾაბგდევზთილმნოპრსტუფქყშჩცძჭხạảấầẩậắặẹẽếềểệỉịọỏốồổỗộớờởợụủứừửữựỳ—、一上不个中为主乾了些亮人任低佔何作供依侧係個側偵充光入全关冇冷几切到制前動區卧厅厨及口另右吊后吗启吸呀咗哪唔問啟嗎嘅嘛器圍在场執場外多大始安定客室家密寵对將小少左已帘常幫幾库度庫廊廚廳开式後恆感態成我戲戶户房所扇手打执把拔换掉控插摄整斯新明是景暗更最會有未本模機檯櫃欄次正氏水沒没洗活派温測源溫漏潮激濕灯為無煙照熱燈燥物狀玄现現瓦用發的盞目着睡私空窗立笛管節簾籬紅線红罐置聚聲脚腦腳臥色节著行衣解設調請謝警设调走路車车运連遊運過道邊部都量鎖锁門閂閉開關门闭除隱離電震霧面音頂題顏颜風风食餅餵가간감갔강개거게겨결경고공과관그금급기길깥꺼껐꼽나난내네놀누는능니다닫담대더데도동됐되된됨둡드든등디때떤뜨라래러렇렌려로료른를리림링마많명몇모무문물뭐바밝방배변보부불블빨뽑사산상색서설성세센션소쇼수스습시신실싱아안않알았애야어얼업없었에여연열옆오온완외왼요운움워원위으은을음의이인일임입있작잠장재전절정제져조족종주줄중줘지직진짐쪽차창천최추출충치침커컴켜켰쿠크키탁탄태탬터텔통트튼티파팬퍼폰표퓨플핑한함해했행혀현화활후휴힘,?"

  micro_wake_word_model: okay_nabu

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  name_add_mac_suffix: false
  platformio_options:
    board_build.flash_mode: dio
  project:
    name: esphome.voice-assistant
    version: "2.0"
  min_version: 2023.11.5
  on_boot:
    priority: 600
    then:
      - script.execute: draw_display
      - delay: 30s
      - if:
          condition:
            lambda: return id(init_in_progress);
          then:
            - lambda: id(init_in_progress) = false;
            - script.execute: draw_display

esp32:
  board: esp32s3box
  flash_size: 16MB
  framework:
    type: esp-idf
    sdkconfig_options:
      CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240: "y"
      CONFIG_ESP32S3_DATA_CACHE_64KB: "y"
      CONFIG_ESP32S3_DATA_CACHE_LINE_64B: "y"
      CONFIG_AUDIO_BOARD_CUSTOM: "y"
      CONFIG_ESP32_S3_BOX_3_BOARD: "y"
    components:
      - name: esp32_s3_box_3_board
        source: github://jesserockz/esp32-s3-box-3-board@main
        refresh: 0s

psram:
  mode: octal
  speed: 80MHz

external_components:
  - source: github://pr#5230
    components: esp_adf
    refresh: 0s

api:
  encryption:
    key: ChwtaeieUCD3cc5YcYE7WQhsptx7PeiLOPjG3+BBCTE=
  on_client_connected:
    - script.execute: draw_display
  on_client_disconnected:
    - script.execute: draw_display

ota:
logger:
  hardware_uart: USB_SERIAL_JTAG

dashboard_import:
  package_import_url: github://esphome/firmware/wake-word-voice-assistant/esp32-s3-box-3.yaml@main

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.86.208
    gateway: 192.168.86.1
    subnet: 255.255.255.0
  ap:
  on_connect:
    - script.execute: draw_display
    - delay: 5s  # Gives time for improv results to be transmitted
    - ble.disable:
  on_disconnect:
    - script.execute: draw_display
    - ble.enable:

improv_serial:

esp32_improv:
  authorizer: none

button:
  - platform: factory_reset
    id: factory_reset_btn
    name: Factory reset

i2c:
  - id: bus_a
    sda: GPIO08
    scl: GPIO18
    scan: true

  - sda: GPIO41
    scl: GPIO40
    id: bus_b

sensor:
  - platform: aht10
    i2c_id: bus_b
    variant: AHT20
    temperature:
      name: "Temperature"
    humidity:
      name: "Humidity"
    update_interval: 60s

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO1
      inverted: true
    name: "Mute"
    disabled_by_default: true
    entity_category: diagnostic

  - platform: gpio
    pin:
      number: GPIO0
      mode: INPUT_PULLUP
      inverted: true
    name: Top Left Button
    disabled_by_default: true
    entity_category: diagnostic
    on_multi_click:
      - timing:
          - ON for at least 10s
        then:
          - button.press: factory_reset_btn

output:
  - platform: ledc
    pin: GPIO47
    id: backlight_output

light:
  - platform: monochromatic
    id: led
    name: LCD Backlight
    entity_category: config
    output: backlight_output
    restore_mode: RESTORE_DEFAULT_ON
    default_transition_length: 250ms

esp_adf:
  board: esp32s3box3

microphone:
  - platform: esp_adf
    id: box_mic

speaker:
  - platform: esp_adf
    id: box_speaker

micro_wake_word:
  model: ${micro_wake_word_model}
  on_wake_word_detected:
    - voice_assistant.start:
        wake_word: !lambda return wake_word;

voice_assistant:
  id: va
  microphone: box_mic
  speaker: box_speaker
  use_wake_word: true
  noise_suppression_level: 2
  auto_gain: 31dBFS
  volume_multiplier: 2.0
  vad_threshold: 3
  on_listening:
    - lambda: id(voice_assistant_phase) = ${voice_assist_listening_phase_id};
    - text_sensor.template.publish:
        id: text_request
        state: "..."
    - text_sensor.template.publish:
        id: text_response
        state: "..."
    - script.execute: draw_display
  on_stt_vad_end:
    - lambda: id(voice_assistant_phase) = ${voice_assist_thinking_phase_id};
    - script.execute: draw_display
  on_stt_end:
    - text_sensor.template.publish:
        id: text_request
        state: !lambda return x;
    - script.execute: draw_display
  on_tts_start:
    - text_sensor.template.publish:
        id: text_response
        state: !lambda return x;
  on_tts_stream_start:
    - lambda: id(voice_assistant_phase) = ${voice_assist_replying_phase_id};
    - script.execute: draw_display
  on_tts_stream_end:
    - lambda: id(voice_assistant_phase) = ${voice_assist_idle_phase_id};
    - script.execute: draw_display
  on_end:
    - if:
        condition:
          and:
            - switch.is_off: mute
            - lambda: return id(wake_word_engine_location).state == "On device";
        then:
          - wait_until:
              not:
                voice_assistant.is_running:
          - micro_wake_word.start:
  on_error:
    - if:
        condition:
          lambda: return !id(init_in_progress);
        then:
          - lambda: id(voice_assistant_phase) = ${voice_assist_error_phase_id};
          - script.execute: draw_display
          - delay: 1s
          - if:
              condition:
                switch.is_off: mute
              then:
                - lambda: id(voice_assistant_phase) = ${voice_assist_idle_phase_id};
              else:
                - lambda: id(voice_assistant_phase) = ${voice_assist_muted_phase_id};
          - script.execute: draw_display
  on_client_connected:
    - if:
        condition:
          switch.is_off: mute
        then:
          - wait_until:
              not: ble.enabled
          - if:
              condition:
                lambda: return id(wake_word_engine_location).state == "In Home Assistant";
              then:
                - lambda: id(va).set_use_wake_word(true);
                - voice_assistant.start_continuous:
          - if:
              condition:
                lambda: return id(wake_word_engine_location).state == "On device";
              then:
                - micro_wake_word.start
          - lambda: id(voice_assistant_phase) = ${voice_assist_idle_phase_id};
        else:
          - lambda: id(voice_assistant_phase) = ${voice_assist_muted_phase_id};
    - lambda: id(init_in_progress) = false;
    - script.execute: draw_display
  on_client_disconnected:
    - if:
        condition:
          lambda: return id(wake_word_engine_location).state == "In Home Assistant";
        then:
          - lambda: id(va).set_use_wake_word(false);
          - voice_assistant.stop:
    - if:
        condition:
          lambda: return id(wake_word_engine_location).state == "On device";
        then:
          - micro_wake_word.stop
    - lambda: id(voice_assistant_phase) = ${voice_assist_not_ready_phase_id};
    - script.execute: draw_display

script:
  - id: draw_display
    then:
      - if:
          condition:
            lambda: return !id(init_in_progress);
          then:
            - if:
                condition:
                  wifi.connected:
                then:
                  - if:
                      condition:
                        api.connected:
                      then:
                        - lambda: |
                            switch(id(voice_assistant_phase)) {
                              case ${voice_assist_listening_phase_id}:
                                id(s3_box_lcd).show_page(listening_page);
                                id(s3_box_lcd).update();
                                break;
                              case ${voice_assist_thinking_phase_id}:
                                id(s3_box_lcd).show_page(thinking_page);
                                id(s3_box_lcd).update();
                                break;
                              case ${voice_assist_replying_phase_id}:
                                id(s3_box_lcd).show_page(replying_page);
                                id(s3_box_lcd).update();
                                break;
                              case ${voice_assist_error_phase_id}:
                                id(s3_box_lcd).show_page(error_page);
                                id(s3_box_lcd).update();
                                break;
                              case ${voice_assist_muted_phase_id}:
                                id(s3_box_lcd).show_page(muted_page);
                                id(s3_box_lcd).update();
                                break;
                              case ${voice_assist_not_ready_phase_id}:
                                id(s3_box_lcd).show_page(no_ha_page);
                                id(s3_box_lcd).update();
                                break;
                              default:
                                id(s3_box_lcd).show_page(idle_page);
                                id(s3_box_lcd).update();
                            }
                      else:
                        - display.page.show: no_ha_page
                        - component.update: s3_box_lcd
                else:
                  - display.page.show: no_wifi_page
                  - component.update: s3_box_lcd
          else:
            - display.page.show: initializing_page
            - component.update: s3_box_lcd

switch:
  - platform: template
    name: Display conversation
    id: display_conversation
    optimistic: true
    restore_mode: RESTORE_DEFAULT_ON
    entity_category: config

  - platform: template
    name: Mute
    id: mute
    optimistic: true
    restore_mode: RESTORE_DEFAULT_OFF
    entity_category: config
    on_turn_off:
      - if:
          condition:
            lambda: return !id(init_in_progress);
          then:
            - lambda: id(voice_assistant_phase) = ${voice_assist_idle_phase_id};
            - if:
                condition:
                  not:
                    - voice_assistant.is_running
                then:
                  - if:
                      condition:
                        lambda: return id(wake_word_engine_location).state == "In Home Assistant";
                      then:
                        - lambda: id(va).set_use_wake_word(true);
                        - voice_assistant.start_continuous
                  - if:
                      condition:
                        lambda: return id(wake_word_engine_location).state == "On device";
                      then:
                        - micro_wake_word.start
            - script.execute: draw_display
    on_turn_on:
      - if:
          condition:
            lambda: return !id(init_in_progress);
          then:
            - lambda: id(va).set_use_wake_word(false);
            - voice_assistant.stop
            - micro_wake_word.stop
            - lambda: id(voice_assistant_phase) = ${voice_assist_muted_phase_id};
            - script.execute: draw_display

select:
  - platform: template
    entity_category: config
    name: Wake word engine location
    id: wake_word_engine_location
    optimistic: true
    restore_value: true
    options:
      - In Home Assistant
      - On device
    initial_option: On device
    on_value:
      - wait_until:
          lambda: return id(voice_assistant_phase) == ${voice_assist_muted_phase_id} || id(voice_assistant_phase) == ${voice_assist_idle_phase_id};
      - if:
          condition:
            lambda: return x == "In Home Assistant";
          then:
            - micro_wake_word.stop
            - delay: 500ms
            - if:
                condition:
                  switch.is_off: mute
                then:
                  - lambda: id(va).set_use_wake_word(true);
                  - voice_assistant.start_continuous:
      - if:
          condition:
            lambda: return x == "On device";
          then:
            - lambda: id(va).set_use_wake_word(false);
            - voice_assistant.stop
            - delay: 500ms
            - micro_wake_word.start

globals:
  - id: init_in_progress
    type: bool
    restore_value: false
    initial_value: "true"
  - id: voice_assistant_phase
    type: int
    restore_value: false
    initial_value: ${voice_assist_not_ready_phase_id}

image:
  - file: ${error_illustration_file}
    id: casita_error
    resize: 320x240
    type: RGB24
    use_transparency: true
  - file: ${idle_illustration_file}
    id: casita_idle
    resize: 320x240
    type: RGB24
    use_transparency: true
  - file: ${listening_illustration_file}
    id: casita_listening
    resize: 320x240
    type: RGB24
    use_transparency: true
  - file: ${thinking_illustration_file}
    id: casita_thinking
    resize: 320x240
    type: RGB24
    use_transparency: true
  - file: ${replying_illustration_file}
    id: casita_replying
    resize: 320x240
    type: RGB24
    use_transparency: true
  - file: ${loading_illustration_file}
    id: casita_initializing
    resize: 320x240
    type: RGB24
    use_transparency: true
  - file: https://github.com/esphome/firmware/raw/main/voice-assistant/error_box_illustrations/error-no-wifi.png
    id: error_no_wifi
    resize: 320x240
    type: RGB24
    use_transparency: true
  - file: https://github.com/esphome/firmware/raw/main/voice-assistant/error_box_illustrations/error-no-ha.png
    id: error_no_ha
    resize: 320x240
    type: RGB24
    use_transparency: true

font:
  - file:
      type: gfonts
      family: Figtree
      weight: 300
      italic: true
    glyphs: ${allowed_characters}
    id: font_request
    size: 15
  - file:
      type: gfonts
      family: Figtree
      weight: 300
    glyphs: ${allowed_characters}
    id: font_response
    size: 15

text_sensor:
  - id: text_request
    platform: template
    on_value:
      lambda: |-
        if(id(text_request).state.length()>32) {
          std::string name = id(text_request).state.c_str();
          std::string truncated = esphome::str_truncate(name.c_str(),31);
          id(text_request).state = (truncated+"...").c_str();
        }

  - id: text_response
    platform: template
    on_value:
      lambda: |-
        if(id(text_response).state.length()>32) {
          std::string name = id(text_response).state.c_str();
          std::string truncated = esphome::str_truncate(name.c_str(),31);
          id(text_response).state = (truncated+"...").c_str();
        }

color:
  - id: idle_color
    hex: ${idle_illustration_background_color}
  - id: listening_color
    hex: ${listening_illustration_background_color}
  - id: thinking_color
    hex: ${thinking_illustration_background_color}
  - id: replying_color
    hex: ${replying_illustration_background_color}
  - id: loading_color
    hex: ${loading_illustration_background_color}
  - id: error_color
    hex: ${error_illustration_background_color}

spi:
  clk_pin: 7
  mosi_pin: 6

display:
  - platform: ili9xxx
    id: s3_box_lcd
    model: S3BOX
    data_rate: 40MHz
    cs_pin: 5
    dc_pin: 4
    reset_pin:
      number: 48
      inverted: true
    update_interval: never
    pages:
      - id: idle_page
        lambda: |-
          it.fill(id(idle_color));
          it.image((it.get_width() / 2), (it.get_height() / 2), id(casita_idle), ImageAlign::CENTER);
      - id: listening_page
        lambda: |-
          it.fill(id(listening_color));
          it.image((it.get_width() / 2), (it.get_height() / 2), id(casita_listening), ImageAlign::CENTER);
      - id: thinking_page
        lambda: |-
          it.fill(id(thinking_color));
          it.image((it.get_width() / 2), (it.get_height() / 2), id(casita_thinking), ImageAlign::CENTER);
          if (id(display_conversation).state) {
            it.filled_rectangle(20 , 20 , 280 , 30 , Color::WHITE );
            it.rectangle(20 , 20 , 280 , 30 , Color::BLACK );
            it.printf(30, 25, id(font_request), Color::BLACK, "%s", id(text_request).state.c_str());
          }
      - id: replying_page
        lambda: |-
          it.fill(id(replying_color));
          it.image((it.get_width() / 2), (it.get_height() / 2), id(casita_replying), ImageAlign::CENTER);
          if (id(display_conversation).state) {
            it.filled_rectangle(20 , 20 , 280 , 30 , Color::WHITE );
            it.rectangle(20 , 20 , 280 , 30 , Color::BLACK );
            it.filled_rectangle(20 , 190 , 280 , 30 , Color::WHITE );
            it.rectangle(20 , 190 , 280 , 30 , Color::BLACK );
            it.printf(30, 25, id(font_request), Color::BLACK, "%s", id(text_request).state.c_str());
            it.printf(30, 195, id(font_response), Color::BLACK, "%s", id(text_response).state.c_str());
          }
      - id: error_page
        lambda: |-
          it.fill(id(error_color));
          it.image((it.get_width() / 2), (it.get_height() / 2), id(casita_error), ImageAlign::CENTER);
      - id: no_ha_page
        lambda: |-
          it.image((it.get_width() / 2), (it.get_height() / 2), id(error_no_ha), ImageAlign::CENTER);
      - id: no_wifi_page
        lambda: |-
          it.image((it.get_width() / 2), (it.get_height() / 2), id(error_no_wifi), ImageAlign::CENTER);
      - id: initializing_page
        lambda: |-
          it.fill(id(loading_color));
          it.image((it.get_width() / 2), (it.get_height() / 2), id(casita_initializing), ImageAlign::CENTER);
      - id: muted_page
        lambda: |-
          it.fill(Color::BLACK);

A partial log following compile and start up follows;

Microsoft Windows [Version 10.0.22631.3593]
(c) Microsoft Corporation. All rights reserved.

C:\Users\rcbla>cd C:\Users\rcbla\OneDrive\Home_Assistant\ESP32\ESP32_S3_Box_3\

C:\Users\rcbla\OneDrive\Home_Assistant\ESP32\ESP32_S3_Box_3>esphome run ESP32_S3_Box_3_V05152024.01.yaml
INFO ESPHome 2024.5.0
INFO Reading configuration ESP32_S3_Box_3_V05152024.01.yaml...
INFO Updating https://github.com/esphome/esphome.git@pull/5230/head
WARNING GPIO0 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Generating C++ source...
INFO Updating https://github.com/jesserockz/esp32-s3-box-3-board.git@main
INFO Updating https://github.com/espressif/[email protected]
INFO Updating submodules (components/esp-sr, components/esp-adf-libs) for https://github.com/espressif/[email protected]
INFO Updating https://github.com/espressif/[email protected]
INFO Updating https://github.com/espressif/esp-tflite-micro@None
INFO Compiling app...
Processing esp32-s3-box-3 (board: esp32s3box; framework: espidf; platform: platformio/[email protected])
------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32s3box.html
PLATFORM: Espressif 32 (5.4.0) > Espressif ESP32-S3-Box
HARDWARE: ESP32S3 240MHz, 320KB RAM, 16MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-espidf @ 3.40407.0 (4.4.7)
 - tool-cmake @ 3.16.4
 - tool-esptoolpy @ 1.40400.0 (4.4.0)
 - tool-idf @ 1.0.1
 - tool-mconf @ 1.4060000.20190628 (406.0.0)
 - tool-ninja @ 1.9.0
 - toolchain-esp32ulp @ 2.35.0-20220830
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
 - toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5
Reading CMake configuration...
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ off, Compatibility ~ soft
Found 3 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Improv @ 1.2.3
|-- noise-c @ 0.1.4
Building in release mode
Retrieving maximum program size .pioenvs\esp32-s3-box-3\firmware.elf
Checking size .pioenvs\esp32-s3-box-3\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [==        ]  18.5% (used 60764 bytes from 327680 bytes)
Flash: [=====     ]  48.6% (used 3951113 bytes from 8126464 bytes)
====================================================== [SUCCESS] Took 57.02 seconds ======================================================
INFO Successfully compiled program.
INFO Connecting to 192.168.86.208
INFO Uploading .esphome\build\esp32-s3-box-3\.pioenvs\esp32-s3-box-3\firmware.bin (3951472 bytes)
Uploading: [============================================================] 100% Done...

INFO Upload took 13.14 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.86.208 using esphome API
INFO Successfully connected to esp32-s3-box-3 @ 192.168.86.208 in 7.072s
INFO Successful handshake with esp32-s3-box-3 @ 192.168.86.208 in 0.854s
[10:46:18][I][app:100]: ESPHome version 2024.5.0 compiled on May 15 2024, 17:16:43
[10:46:18][I][app:102]: Project esphome.voice-assistant version 2.0
[10:46:18][C][wifi:580]: WiFi:
[10:46:18][C][wifi:408]:   Local MAC: 3C:84:27:05:AE:0C
[10:46:18][C][wifi:413]:   SSID: 'SuperDoodle'
[10:46:18][C][wifi:416]:   IP Address: 192.168.86.208
[10:46:18][C][wifi:420]:   BSSID: B0:E4:D5:5A:57:E1
[10:46:18][C][wifi:421]:   Hostname: 'esp32-s3-box-3'
[10:46:18][C][wifi:423]:   Signal strength: -43 dB ▂▄▆█
[10:46:18][C][wifi:427]:   Channel: 11
[10:46:18][C][wifi:428]:   Subnet: 255.255.255.0
[10:46:18][C][wifi:429]:   Gateway: 192.168.86.1
[10:46:18][C][wifi:430]:   DNS1: 0.0.0.0
[10:46:18][C][wifi:431]:   DNS2: 0.0.0.0
[10:46:18][C][logger:185]: Logger:
[10:46:18][C][logger:186]:   Level: DEBUG
[10:46:18][C][logger:188]:   Log Baud Rate: 115200
[10:46:18][C][i2c.idf:075]: I2C Bus:
[10:46:18][C][i2c.idf:076]:   SDA Pin: GPIO41
[10:46:18][C][i2c.idf:077]:   SCL Pin: GPIO40
[10:46:18][C][i2c.idf:078]:   Frequency: 50000 Hz
[10:46:18][C][i2c.idf:084]:   Recovery: bus successfully recovered
[10:46:18][I][i2c.idf:094]: Results from i2c bus scan:
[10:46:18][I][i2c.idf:100]: Found i2c device at address 0x28
[10:46:18][I][i2c.idf:100]: Found i2c device at address 0x38
[10:46:18][C][spi:068]: SPI bus:
[10:46:18][C][spi:069]:   CLK Pin: GPIO7
[10:46:18][C][spi:070]:   SDI Pin:
[10:46:18][C][spi:071]:   SDO Pin: GPIO6
[10:46:18][C][spi:076]:   Using HW SPI: SPI2_HOST
[10:46:18][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'Mute'
[10:46:18][C][gpio.binary_sensor:016]:   Pin: GPIO1
[10:46:18][C][gpio.binary_sensor:015]: GPIO Binary Sensor 'Top Left Button'
[10:46:18][C][gpio.binary_sensor:016]:   Pin: GPIO0
[10:46:18][C][ledc.output:173]: LEDC Output:
[10:46:18][C][ledc.output:174]:   Pin GPIO47
[10:46:18][C][ledc.output:175]:   LEDC Channel: 0
[10:46:18][C][ledc.output:176]:   PWM Frequency: 1000.0 Hz
[10:46:18][C][ledc.output:177]:   Phase angle: 0.0°
[10:46:18][C][ledc.output:178]:   Bit depth: 14
[10:46:18][C][template.select:065]: Template Select 'Wake word engine location'
[10:46:18][C][template.select:066]:   Update Interval: 60.0s
[10:46:18][C][template.select:069]:   Optimistic: YES
[10:46:18][C][template.select:070]:   Initial Option: On device
[10:46:18][C][template.select:071]:   Restore Value: YES
[10:46:18][C][template.text_sensor:020]: Template Sensor 'text_request'
[10:46:18][C][template.text_sensor:020]: Template Sensor 'text_response'
[10:46:18][C][ili9xxx:075]: ili9xxx
[10:46:18][C][ili9xxx:075]:   Rotations: 0 °
[10:46:18][C][ili9xxx:075]:   Dimensions: 320px x 240px
[10:46:18][C][ili9xxx:076]:   Width Offset: 0
[10:46:18][C][ili9xxx:077]:   Height Offset: 0
[10:46:18][C][ili9xxx:083]:   Color mode: 16bit
[10:46:18][C][ili9xxx:092]:   Data rate: 40MHz
[10:46:18][C][ili9xxx:094]:   Reset Pin: GPIO48
[10:46:18][C][ili9xxx:095]:   CS Pin: GPIO5
[10:46:18][C][ili9xxx:096]:   DC Pin: GPIO4
[10:46:18][C][ili9xxx:098]:   Color order: BGR
[10:46:18][C][ili9xxx:099]:   Swap_xy: NO
[10:46:18][C][ili9xxx:100]:   Mirror_x: YES
[10:46:18][C][ili9xxx:101]:   Mirror_y: YES
[10:46:18][C][ili9xxx:106]:   Update Interval: never
[10:46:19][C][light:103]: Light 'LCD Backlight'
[10:46:19][C][light:105]:   Default Transition Length: 0.2s
[10:46:19][C][light:106]:   Gamma Correct: 2.80
[10:46:19][C][template.switch:068]: Template Switch 'Display conversation'
[10:46:19][C][template.switch:091]:   Restore Mode: restore defaults to ON
[10:46:19][C][template.switch:057]:   Optimistic: YES
[10:46:19][C][template.switch:068]: Template Switch 'Mute'
[10:46:19][C][template.switch:091]:   Restore Mode: restore defaults to OFF
[10:46:19][C][template.switch:057]:   Optimistic: YES
[10:46:19][C][psram:020]: PSRAM:
[10:46:19][C][psram:021]:   Available: YES
[10:46:19][C][psram:024]:   Size: 16383 KB
[10:46:19][C][factory_reset.button:011]: Factory Reset Button 'Factory reset'
[10:46:19][C][factory_reset.button:011]:   Icon: 'mdi:restart-alert'
[10:46:19][C][aht10:160]: AHT10:
[10:46:19][C][aht10:161]:   Address: 0x38
[10:46:19][C][aht10:165]:   Temperature 'Temperature'
[10:46:19][C][aht10:165]:     Device Class: 'temperature'
[10:46:19][C][aht10:165]:     State Class: 'measurement'
[10:46:19][C][aht10:165]:     Unit of Measurement: '°C'
[10:46:19][C][aht10:165]:     Accuracy Decimals: 2
[10:46:19][C][aht10:166]:   Humidity 'Humidity'
[10:46:19][C][aht10:166]:     Device Class: 'humidity'
[10:46:19][C][aht10:166]:     State Class: 'measurement'
[10:46:19][C][aht10:166]:     Unit of Measurement: '%'
[10:46:19][C][esp32_ble:374]: ESP32 BLE:
[10:46:19][C][esp32_ble:376]:   MAC address: 3C:84:27:05:AE:0E
[10:46:19][C][esp32_ble:377]:   IO Capability: none
[10:46:19][C][esp32_ble_server:200]: ESP32 BLE Server:
[10:46:19][C][esp32_improv.component:261]: ESP32 Improv:
[10:46:19][C][esp32_improv.component:266]:   Status Indicator: 'NO'
[10:46:19][C][mdns:115]: mDNS:
[10:46:19][C][mdns:116]:   Hostname: esp32-s3-box-3
[10:46:19][C][ota:096]: Over-The-Air Updates:
[10:46:19][C][ota:097]:   Address: 192.168.86.208:3232
[10:46:19][C][ota:103]:   OTA version: 2.
[10:46:19][C][api:139]: API Server:
[10:46:19][C][api:140]:   Address: 192.168.86.208:6053
[10:46:19][C][api:142]:   Using noise encryption: YES
[10:46:19][C][improv_serial:032]: Improv Serial:
[10:46:19][C][micro_wake_word:057]: microWakeWord:
[10:46:19][C][micro_wake_word:058]:   Wake Word: okay nabu
[10:46:19][C][micro_wake_word:059]:   Probability cutoff: 0.500
[10:46:19][C][micro_wake_word:060]:   Sliding window size: 10
[10:46:20][D][micro_wake_word:177]: State changed from IDLE to START_MICROPHONE